金融衍生工具实验指导书1.docx
- 文档编号:27582786
- 上传时间:2023-07-03
- 格式:DOCX
- 页数:24
- 大小:224.65KB
金融衍生工具实验指导书1.docx
《金融衍生工具实验指导书1.docx》由会员分享,可在线阅读,更多相关《金融衍生工具实验指导书1.docx(24页珍藏版)》请在冰豆网上搜索。
金融衍生工具实验指导书1
《金融衍生工具》实验指导书
电子科技大学经济与管理学院教师姓名夏晖
2015年12月
第一部分实验教学概述
本课程实验总体介绍
1、实验教学要求:
本实验是《金融衍生工具》课程的实验课程,其目的是要求学生通过完成本实验,达到熟悉金融市场、理解和熟练掌握《金融衍生工具》中的期权定价原理和各种数值定价方法,培养学生编程独立解决问题的能力,为今后从事金融数量分析工作奠定基础。
2、实验内容简介:
本实验课程由3个实验项目组成:
(1)期权定价的蒙特卡罗模拟和有限差分方法为设计性实验
(2)风险价值VaR的计算为设计性实验
(3)资产组合保险策略模拟及分析为综合性实验
3、本课程适用专业:
本课程适用于金融学、金融工程专业。
4、考核方式:
编写的程序和实验结果以作业的方式提交给任课老师,实验完成情况计入《金融衍生工具》课程习题作业的考核。
5、总学时:
本实验共计8学时。
6、教材名称及教材性质(统编):
本实验以“JohnC.Hull.Options,FuturesandOtherDerivatives.4thEdition,Prentice-Hall,2000;清华大学出版社,影印版,2002.”为辅导教材。
7、参考资料:
1.KeithCuthbertson,DirkNitzsche.FinancialEngineering–DerivativesandRiskManagement.JohnWiley&Sons,Ltd,2001.中译本:
张陶伟,彭永江译.金融衍生工具——衍生品与风险管理.中国人民大学出版社,2004.
第二部分实验项目指导
实验项目1
一、基本情况
1、实验项目名称:
期权定价的蒙特卡罗和有限差分方法
2、实验项目的目的和要求:
目的:
使学生熟悉蒙特卡罗和有限差分方法的应用。
要求:
(1)利用Matlab软件编写蒙特卡罗仿真程序求解期权价格;
(2)利用Matlab软件编写有限差分程序求解期权价格。
3、实验内容:
根据实验作业的要求,完成下面的实验内容:
(1)采用蒙特卡罗模拟方法编程计算欧式回望期权的价格;
(2)采用有限差分方法编程计算欧式奇异期权的价格;
(3)采用对偶变量技术和控制变量技术提高蒙特卡罗计算的精度,分析有限差分定价结果可能不收敛的原因,并尝试画出初始时刻(t=0)Delta随股票价格变动的图形。
4、项目需用仪器设备名称:
计算机和Matlab或Excel。
5、所需主要元器件及耗材:
无。
6、学时数:
3
二、本实验项目知识点
蒙特卡罗模拟方法:
根据几何布朗运动公式:
或
对无股息股票,可令
,r为无风险利率,
,根据以下步骤进行模拟计算。
1.Simulate1pathforthestockpriceinariskneutralworld
2.Calculatethepayofffromthestockoption
3.Repeatsteps1and2manytimestogetmanysamplepayoff
4.Calculatemeanpayoff
5.Discountmeanpayoffatriskfreeratetogetanestimateofthevalueoftheoption
有限差分方法:
根据B—S偏微分方程:
内含有限差分法
令
,上式为:
外推有限差分方法:
令
,有
三、实验操作步骤
(1)蒙特卡罗模拟:
考虑标的物资产为某股票的欧式亚式期权,股票当前的价格为50,波动率为40%,无风险利率为5%,期权到期期限为1年,期权发行到现在已经3个月了,剩余期限还有9个月,且期权发行到现在为止股票的平均价格为55。
求该期权的价格。
股票平均价格由每天收盘价的平均值来计算。
用蒙特卡罗方法生成股价样本路径。
程序如下:
functions=my_monto_carlo_path(s0,sigma,T,r,N_T,N_path)
deltaT=T/N_T;
s=zeros(N_path,N_T+1);
s(:
1)=s0;
eta=randn(N_path,N_T);
fori=2:
N_T+1
s(:
i)=s(:
i-1).*exp((r-0.5*sigma^2)*deltaT+sigma*sqrt(deltaT)*eta(:
i-1));
end
:
主程序如下
s=my_monto_carlo_path(50,0.4,3/4,0.05,round(250*3/4),200);
h=figure;
set(h,'color','w')
plot(s')
计算结果如下:
求解以上亚式期权的价格:
functionprice=my_asian_option_mc(ASt,r,sigma,t,T,K,St,N_T,N_path)
s=my_monto_carlo_path(St,sigma,T-t,r,N_T,N_path);
AST=t/T*ASt+(T-t)/T*mean(s,2);
f_T=max(AST-K,0);
price=mean(f_T)*exp(-r*(T-t));
end
在MATLAB命令窗口输入:
price=my_asian_option_mc(55,0.05,0.4,0.25,1,50,50,round(250*3/4),1e5)
得到期权的价格为:
price=
3.8897
欧式回望看涨期权在到期日的现金流为max(ST-Smin,0),而欧式回望看跌期权在到期日的现金流为max(Smax-ST,0)。
实验作业:
考虑标的物资产为某股票的欧式回望期权,股票当前的价格为50,波动率为40%,无风险利率为5%,期权到期期限为1年,期权发行到现在已经3个月了,剩余期限还有9个月,且期权发行到现在为止股票的最低价格为45,最高价格为55。
分别求欧式回望看涨和看跌期权的价格。
尝试使用对偶变量技术和控制变量技术来减小期权价格的标准误差。
(2)采用显式(外推)有限差分方法求美式看跌期权的价值,相关参数如下:
股票现价为50,执行价格为50,无风险利率为10%,期限为5个月,股票收益的波动率为40%。
Matlab程序如下:
clearall
ds=5;
dt=1/24;
sigma=0.4;
r=0.1;
x=50;
forj=1:
21
f(11,j)=max(x-ds*(j-1),0);
end
fori=1:
11
f(i,21)=0;
end
fori=1:
11
f(i,1)=x;
end
fori=10:
-1:
1
forj=20:
-1:
2
a=[1/(1+dt*r)]*(0.5*sigma^2*dt*(j-1)^2-0.5*r*(j-1)*dt);
b=[1/(1+dt*r)]*(1-sigma^2*dt*(j-1)^2);
c=[1/(1+dt*r)]*(0.5*r*(j-1)*dt+0.5*sigma^2*dt*(j-1)^2);
f(i,j)=a*f(i+1,j-1)+b*f(i+1,j)+c*f(i+1,j+1);
f(i,j)=max(f(i,j),x-(j-1)*ds);
end
end
rotf=f'
s=(0:
ds:
100)';
value=interp1(s,rotf(:
1),50)
delta=diff(rotf(:
1))/ds;
h=figure;
set(h,'color','w')
plot(s(2:
end),delta)
计算结果如下:
实验作业:
考虑标的物资产为某购票的欧式期权,股票当前的价格为50,波动率为40%,无风险利率为5%,期权到期期限为1年,到期日期权的现金流入下:
求该欧式期权的理论价格。
通过增加时间的阶段数N和股价的阶段数M来提高计算精度,并分析计算结果可能不收敛的原因。
尝试画出初始时刻(t=0)该期权价格的Delta随股票价格变动的图形。
四、对实验所需软件的熟悉和了解
重点:
蒙特卡罗仿真和有限差分方法
难点:
Mablab编程
教学方法:
教师先对实验所需的基础知识(编程技术、随机数的产生)进行讲解和演示,由学生完成实验。
五、实验报告填写要求
掌握蒙特卡罗模拟的方法和步骤,以及有限差分方法的基本原理,明确实验目的,掌握实验内容和具体的实验步骤,用Mablab编程实现期权定价,并根据实验大纲的要求和标准实验报告书的内容及格式,按期提交实验报告。
实验项目2
一、基本情况
1、实验项目名称:
风险价值VaR的计算
2、实验项目的目的和要求:
目的:
使学生掌握VaR的计算方法
要求:
(1)理解VaR基本概念
(2)掌握历史模拟法
(3)掌握模型构建法
3、实验内容:
根据教师提供的资产组合VaR计算过程,计算资产组合的10天展望期置信水平99%的VaR,要求:
(1)通过历史模拟法计算组合VaR;
(2)通过模型构建法计算组合VaR;
(3)分析两种方法计算结果差异的原因。
4、项目需用仪器设备名称:
计算机、Matlab和Excel。
5、所需主要元器件及耗材:
无。
6、学时数:
3
二、本实验项目知识点
VaR指在正常市场条件下和一定的置信水平上,测算出给定时间内资产组合价值预期发生的最坏情况的损失。
假设W0为初始投资组合的价值,10天后投资组合的价值为:
,,并且
;Ŵ为10天后投资组合在为置信水平为c的情况下的最小价值。
为在置信水平上最小回报率,有
。
VaR可表示为:
。
其中,置信水平
,
为资产组合价值分布的密度函数。
由于未来数据尚未发生,历史模拟方法计算VaR的核心思想是历史将会重演,即利用过去的数据模拟市场变量的未来变化。
然后根据市场变量的未来价格水平对头寸进行重新估计,计算出头寸的价值变化(损益)。
最后,将组合的损益从最小到最大排序,得到资产组合未来价值的损益分布,通过给定置信度下的分位数求出VaR。
采用模型构建方法计算VaR的基本思想是利用证券组合的价值函数与市场变量间的近似关系,推断市场变量的统计分布(方差-协方差矩阵),进而简化VaR的计算。
该方法的数据易于收集,计算方法简单,计算速度快,也比较容易为监管机构接受。
模型构建方法的缺点是对未来资产组合价值的分布假设过强。
三、实验操作步骤
资产组合是总价值1000万的三只基金,包括400万博时主题行业(160505)、300万嘉实沪深300(160706)以及300万南方绩优成长(202003)。
历史数据是2007-2008年的基金日收盘价,数据文件名为funddata.xls。
计算该资产组合在10天展望期,置信水平99%条件下的VaR。
(1)数据准备
%读取数据
[data,textdata,raw]=xlsread('funddata.xls');
funddata=data;
%将数据保存在funddata.mat文件中
savefunddatafunddata
%载入数据
loadfunddata
%funddata的数据序列
%'Hs300','博时主题','嘉实300','南方绩优'
(2)历史模拟法
bszt=funddata(:
2);
js300=funddata(:
3);
nfjy=funddata(:
4);
daynum=length(funddata);
%计算模拟情境下资产组合明天可能的损失
fori=1:
daynum-1
num(i)=i;
loss(i)=400.*bszt(i+1)./bszt(i)+300.*js300(i+1)./js300(i)+300.*nfjy(i+1)./nfjy(i)-1000;
end
ascend=sort(loss);
onevar=-interp1(num,ascend,(daynum-1).*0.01)
tenvar=sqrt(10).*onevar
计算结果如下:
onevar=
56.2933
tenvar=
178.0151
(3)模型构建法
%将资产价格转换为资产收益率
Rate=price2ret(funddata);
bszt=Rate(:
2);
js300=Rate(:
3);
nfjy=Rate(:
4);
%每年交易日数量,
%若一共488个数据,假设前244个为2007年数据,后244为2008年数据
daynum=fix(length(Rate)/2);
%计算2008Var值
funddata2008=[bszt(daynum+1:
2*daynum)js300(daynum+1:
2*daynum)nfjy(daynum+1:
2*daynum)];
%计算日均收益期望、日收益率的标准差
BsPortReturn=mean(funddata2008(:
1));
BsPortRisk=std(funddata2008(:
1));
JsPortReturn=mean(funddata2008(:
2));
JsPortRisk=std(funddata2008(:
2));
NfPortReturn=mean(funddata2008(:
3));
NfPortRisk=std(funddata2008(:
3));
%计算资产组合的日均收益期望、日收益率的标准差
ExpReturn=[BsPortReturnJsPortReturnNfPortReturn];
ExpCovariance=cov(funddata2008);
PortWts=[0.40.30.3];
[PortRisk,PortReturn]=portstats(ExpReturn,ExpCovariance,PortWts);
%置信水平99%
RiskThreshold=0.01;
BsValueAtRisk2008=portvrisk(BsPortReturn,BsPortRisk,RiskThreshold,400)
JsValueAtRisk2008=portvrisk(JsPortReturn,JsPortRisk,RiskThreshold,300)
NfValueAtRisk2008=portvrisk(NfPortReturn,NfPortRisk,RiskThreshold,300)
PortVar=portvrisk(PortReturn,PortRisk,RiskThreshold,1000)
Tenvar=sqrt(10).*PortVar
计算结果如下:
BsValueAtRisk2008=
21.6607
JsValueAtRisk2008=
21.8380
NfValueAtRisk2008=
15.5779
PortVar=
58.2315
Tenvar=
184.1441
结果说明:
“BsValueAtRisk2008=21.6607”表示2008年博时主题在置信度阈值为1%的VaR值,即每个交易日在99%置信水平下的单日最大损失为21.6607。
另外,单独计算的三只基金的1天展望期置信水平99%的VaR加总为59.0766,大于三只基金组成的资产组合的1天置信水平99%的VaR(58.2315),说明资产组合会造成部分风险被分散化解。
最后,用模型构建法计算的VaR比历史模拟法计算的VaR偏大,是由于模型构建法只用了2008年数据,而2008年各只基金比2007年表现明显差,因此,计算的VaR较大。
实验作业:
自行构造包括至少三种资产的投资组合,并收集最近2年相关历史数据,采用历史模拟法和模型构建法分别计算资产组合的10天展望期置信水平99%的VaR,要体现通过资产组合投资可以分散化解部分风险,并分析两种方法计算结果差异的原因。
四、对实验所需软件的熟悉和了解
重点:
理解VaR的基本原理、计算方法;
难点:
Matlab编程;
教学方法:
在基于课堂教学的基础上,教师演示。
五、实验报告填写要求
掌握VaR概念和历史模拟方法和模型构建方法计算VaR,明确实验目的,掌握实验内容和具体的实验步骤,用Matlab编程完成本实验的具体内容,根据实验大纲的要求和标准实验报告书的内容及格式,按时提交实验报告。
实验项目3
一、基本情况
1、实验项目名称:
资产组合保险策略模拟及分析
2、实验项目的目的和要求:
目的:
使学生掌握固定比例投资组合保险策略CPPI设计方法及分析过程
要求:
(1)使学生熟悉资产组合保险策略的基本原理;
(2)熟练掌握资产组合保险策略的设计及分析过程。
3、实验内容:
(1)编写正态分布的随机数发生程序;
(2)估计波动率;
(3)资产组合价值动态模拟。
4、项目需用仪器设备名称:
计算机和Matlab和Excel。
5、所需主要元器件及耗材:
无。
6、学时数:
2课时
二、本实验项目知识点
组合保险策略按构成主要分为基于期权的投资组合保险策略(Option-BasedPortfolioInsurance,OBPI)和固定比例投资组合保险策略(ConstantProportionPortfolioInsurance,CPPI),这是两种广泛应用的投资组合保险策略。
基于期权的投资组合保险产品使用债券和期权组合构建产品,这样构建方法与股票挂钩产品中的保本票据的构建方法一致。
在利率较低或者期权价格较高的情况下,基于期权的投资组合保险策略较难实现。
OBPI策略原理:
假定市场无磨擦(即无交易成本和税收)、资产无限可分、无卖空限制、可以相同的无风险连续复利rf借贷。
在一个无套利的分析框架,欧式看跌期权(PutOption)的Black-Scholes定价模型为:
(1)
其中,
式中,St是当前t时刻股票价格,X是期权的执行价格;rf是连续复利下的的无风险利率,T期权的到期时间,σ是股票价格的波动率。
N()是累积正态分布函数。
式
(1)等式两边同时加St可得:
(2)
式
(2)的意义是,期初拥有数量为
资金的投资者,把
资金投入风险资产(股票或指数基金),把
投入无风险资产(国债),等价于把所有资金投入风险资产St和购买了一个以St为标的资产的卖权,卖权具有对风险资产保险的作用,其中风险资产的比例为:
(3)
无风险资产比例为:
随着时间t和St的变化,投资者可根据式(3)动态调整风险资产的比例wt,即,当风险资产价格上涨时,增大投资于风险资产的比例wt;当风险资产价格下跌时,降低投资于风险资产的比例wt。
另一种通用的保本策略是固定比例投资组合保险策略CPPI,它也是通过动态调整投资组合无风险品种与风险品种的投资比例,达到既规避高收益投资品种价格下跌的风险,又享受到其价格上涨的收益。
CPPI策略的基本公式如下:
(4)
(5)
(6)
式中,At表示t时刻投资组合的资产价值;Et表示t时刻可投资于风险资产的上限;Gt表示t时刻可投资于无风险资产的下限;Mt表示t时刻的风险乘数;Ft表示t时刻组合的安全底线;λ为初始风险控制水平(保本线);(T-t)为产品剩余期限;r为无风险收益率。
CPPI策略模型涉及风险控制水平(保本线)、风险乘数、资产配置调整周期等多个关键参数。
波动率的估计:
通常使用股价历史资料求得的收益率标准差(历史波动率)作为风险资产的波动率。
历史波动率的基本假设是相信过去的波动性会延续到未来,且不会产生大幅变动,因此用过去资料算出的波动率可视为未来的股价波动率。
常用的估算历史波动率的方法有GARCH类模型、移动平均法、指数平滑法等。
本实验采用历史数据的样本标准差来估计波动率,参见B_S公式有关波动率的小节。
三、实验操作步骤
假设某金融产品采用组合保险策略CPPI进行资产投资:
(1)风险资产为沪深300指数组合;
(2)无风险资产为国债,国债利率为3%;
(3)产品保本率为100%;
(4)调整周期为10天;
(5)调整组合的单位交易成本为c=0.0002;
(6)初始资金W=1,000百万元;
(7)产品期限为1年(250个交易日)。
固定比例组合保险策略CPPI的Matlab函数CPPIStr.m:
function[F,E,A,G,SumTradeFee,portFreez]=CPPIStr(PortValue,Riskmulti,GuarantRatio,TradeDayTimeLong,TradeDayOfYear,adjustCycle,RisklessReturn,TradeFee,SData)
%2015-12-24
%intput:
%PortValue:
产品组合初始价值;
%Riskmulti:
CPPI策略的风险乘数;
%GuarantRatio:
产品的保本率;
%TradeDayTimeLong:
产品期限,以交易日计算;
%TradeDayOfYear:
模拟每年的交易日,大致为250天;
%adjustCycle:
调整周期;
%RisklessReturn:
无风险利率;
%TradeFee:
风险资产的交易费用;
%SDataissimulationindexdata
%output
%F:
t时刻安全底线;E:
t时刻可投资于风险资产的上限;
%A:
t时刻组合价值;G:
t时刻可投资于无风险资产的上限。
%SumTradeFee:
总交易费用
%portFreezdefaultis0,ifportFreez=1,portfoliofreeztherewouldhavenorisk--investment
%%
SumTradeFee=0;
F=zeros(1,TradeDayTimeLong+1);
E=zeros(1,TradeDayTimeLong+1);
A=zeros(1,TradeDayTimeLong+1);
G=zeros(1,TradeDayTimeLong+1);
A
(1)=PortValue;
F
(1)=GuarantRatio*PortValue*exp(-RisklessReturn*TradeDayTimeLong/TradeDayOfYear);
E
(1)=max(0,Riskmulti*(A
(1)-F
(1)));
G
(1)=A
(1)-E
(1);
%%
portFreez=0;%ifportFreez=1,portfoliofreeztherewouldhavenorisk--investment
%%
fori=2:
TradeDayTimeLong+1
E(i)=E(i-1)*(1+(SData(i)-SData(i-1))/(SData(i-1)));
G(i)=G(i-1)*(1+RisklessReturn/TradeDayOfYear);
A(i)=E(i)+G(i);
F(i)=GuarantRatio*PortValue*exp(-RisklessReturn*(TradeDayTimeLong-i+1)/TradeDayOfYear);
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 金融 衍生 工具 实验 指导书