金融衍生工具-实验指导书-2015-2016-1_第1页
金融衍生工具-实验指导书-2015-2016-1_第2页
金融衍生工具-实验指导书-2015-2016-1_第3页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、金融衍生工具 实验指导书电子科技大学经济与管理学院 教师姓名 夏晖2015 年 12 月第一部分 实验教学概述本课程实验总体介绍1、实验教学要求:本实验是金融衍生工具课程的实验课程,其目的是要求学生通过完成本 实验,达到熟悉金融市场、理解和熟练掌握金融衍生工具中的期权定价原理 和各种数值定价方法,培养学生编程独立解决问题的能力,为今后从事金融数量 分析工作奠定基础。2、实验内容简介:本实验课程由 3 个实验项目组成:(1) 期权定价的蒙特卡罗模拟和有限差分方法为设计性实验(2) 风险价值 VaR 的计算为设计性实验(3) 资产组合保险策略模拟及分析为综合性实验3、本课程适用专业:本课程适用于金

2、融学、金融工程专业。4、考核方式: 编写的程序和实验结果以作业的方式提交给任课老师,实验完成情况计入金融衍生工 具课程习题作业的考核。5、总学时:本实验共计 8 学时。6、教材名称及教材性质(统编) :本实验以“ John C. Hull. Options, Futures and Other Derivatives. 4th Edition, Prentice-Hall, 2000; 清华大学出版社 , 影印版 , 2002.”为辅导教材。7、参考资料:1. Keith Cuthbertson, Dirk Nitzsche. Financial Engineering Derivatives

3、 and Risk Management.John Wiley & Sons, Ltd, 2001. 中译本:张陶伟 , 彭永江译 . 金融衍生工具 衍生品与风 险管理 . 中国人民大学出版社 , 2004.第二部分 实验项目指导实验项目 1一、基本情况1、实验项目名称: 期权定价的蒙特卡罗和有限差分方法2、实验项目的目的和要求:目的: 使学生熟悉蒙特卡罗和有限差分方法的应用。要求:(1)利用 Matlab 软件编写蒙特卡罗仿真程序求解期权价格;(2)利用 Matlab 软件编写有限差分程序求解期权价格。3、实验内容:根据实验作业的要求,完成下面的实验内容:(1)采用蒙特卡罗模拟方法编

4、程计算欧式回望期权的价格;(2)采用有限差分方法编程计算欧式奇异期权的价格;(3)采用对偶变量技术和控制变量技术提高蒙特卡罗计算的精度,分析有限 差分定价结果可能不收敛的原因,并尝试画出初始时刻( t = 0)Delta 随股票价格 变动的图形。4、项目需用仪器设备名称:计算机和 Matlab 或 Excel。5、所需主要元器件及耗材:无。6、学时数: 3二、本实验项目知识点蒙特卡罗模拟方法:根据几何布朗运动公式:St S,St t St ?S t S t 或 S(t t) S(t) e ? /2 t t对无股息股票,可令 ? r,r 为无风险利率,N (0,1) ,根据以下步骤进行模拟计算。

5、1. Simulate 1 path for the stock price in a risk neutral world2. Calculate the payoff from the stock option3. Repeat steps 1 and 2 many times to get many sample payoff4. Calculate mean payoff5. Discount mean payoff at risk free rate to get an estimate of the value of theoption有限差分方法:根据 BS 偏微分方程:f rS

6、 f 122S2S2rf内含有限差分法令fi, j 1fi,j 1fi,j 12fi,j2SS2S2,j t i ,上式为:外推有限差分方法:2Saj fi,j 1 bj fi,j cj fii,j 1i 1, jajbj220.5rj t 0.5 2 j2 t221 2 j2 t r t220.5rj t 0.5 2 j2 tcj+1, j,有tSti 1,j 1令 f?i 1,j 1 ?i 1,j 1cj ?i 1,j 1S2a*j11rt0.5rj t 0.5 2 j2 tbj 1 r t1 2 j2 tcj11rt0.5rj t 0.5 2 j2 ti +1, j 1三、实验操作步骤(

7、1) 蒙特卡罗模拟:考虑标的物资产为某股票的欧式亚式期权,股票当前的 价格为 50,波动率为 40%,无风险利率为 5%,期权到期期限为 1 年,期权发行到 现在已经 3 个月了,剩余期限还有 9 个月,且期权发行到现在为止股票的平均价 格为 55。求该期权的价格。股票平均价格由每天收盘价的平均值来计算。用蒙特卡罗方法生成股价样本路径。程序如下:function s=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);for

8、i=2:N_T+1s(:,i)=s(:,i-1).*exp(r-0.5*sigma2)*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')计算结果如下:120100806040200 20 40 60 80 100 120 140 160 180 200求解以上亚式期权的价格:function price=my_asian_op

9、tion_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(S

10、T-Smin,0),而欧式回望看跌期权 在到期日的现金流为 max(Smax-ST,0)实验作业: 考虑标的物资产为某股票的欧式回望期权, 股票当前的价格为 50, 波动率为 40% ,无风险利率为 5% ,期权到期期限为 1 年,期权发行到现在已经 3 个月了,剩余期限还有 9 个月,且期权发行到现在为止股票的最低价格为 45,最 高价格为 55。分别求欧式回望看涨和看跌期权的价格。尝试使用对偶变量技术和 控制变量技术来减小期权价格的标准误差。(2) 采用显式 (外推)有限差分方法求美式看跌期权的价值, 相关参数如下: 股票现价为 50,执行价格为 50,无风险利率为 10,期限为 5 个月

11、,股票收益的 波动率为 40。Matlab 程序如下:clear allds=5;dt=1/24;sigma=0.4;r=0.1;x=50;for j=1:21f(11,j)=max(x-ds*(j-1),0);endfor i=1:11f(i,21)=0;endfor i=1:11f(i,1)=x;endfor i=10:-1:1for j=20:-1:2a=1/(1+dt*r)*(0.5*sigma2*dt*(j-1)2-0.5*r*(j-1)*dt); b=1/(1+dt*r)*(1-sigma2*dt*(j-1)2);c=1/(1+dt*r)*(0.5*r*(j-1)*dt+0.5*s

12、igma2*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 endrotf=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) 计算结果如下:0 10 20 30 40 50 60 70 80 90 1000.40.20-0.2-0.

13、4-0.6-0.8-1实验作业:考虑标的物资产为某购票的欧式期权,股票当前的价格为50,波动率为 40% ,无风险利率为 5% ,期权到期期限为 1 年,到期日期权的现金流入 下:5,ST60fTminmax( ST50,0), 2,40ST602, ST40求该欧式期权的理论价格。 通过增加时间的阶段数N 和股价的阶段数 M 来提高计算精度,并分析计算结果可能不收敛的原因。尝试画出初始时刻( t = 0)该期权 价格的 Delta 随股票价格变动的图形。四、对实验所需软件的熟悉和了解重点:蒙特卡罗仿真和有限差分方法难点: Mablab 编程教学方法:教师先对实验所需的基础知识(编程技术、随机

14、数的产生)进行讲 解和演示,由学生完成实验。五、实验报告填写要求掌握蒙特卡罗模拟的方法和步骤,以及有限差分方法的基本原理,明确实验 目的,掌握实验内容和具体的实验步骤,用 Mablab 编程实现期权定价,并根据实 验大纲的要求和标准实验报告书的内容及格式,按期提交实验报告。10实验项目 2一、基本情况1、实验项目名称:风险价值 VaR 的计算2、实验项目的目的和要求:目的: 使学生掌握 VaR的计算方法要求:(1)理解 VaR 基本概念(2)掌握历史模拟法(3)掌握模型构建法3、实验内容:根据教师提供的资产组合 VaR计算过程,计算资产组合的 10 天展望期置信水 平 99% 的 VaR,要求

15、:(1)通过历史模拟法计算组合 VaR;(2)通过模型构建法计算组合 VaR;(3)分析两种方法计算结果差异的原因。4、项目需用仪器设备名称:计算机、 Matlab 和 Excel。5、所需主要元器件及耗材:无。6、学时数: 3二、本实验项目知识点VaR 指在正常市场条件下和一定的置信水平上, 测算出给定时间内资产组 合价值预期发生的最坏情况的损失。假设 W0 为初始投 资组 合的 价值 ,10 天后 投资 组合 的价 值为 : W W0(1 r ) ,并且 E(r) , var( r ) ;? 为 10 天后投资组合在为置信水平为 c 的情况下的最小价值。 r?为在置信水平上最小回报率,有

16、W? W0(1 r?) 。VaR可表示为: VaR W0 W? r?W0 。其中,置信水平 c ? f(W)dWW?1 c f(W)dW , f (W) 为资产组合11价值分布的密度函数。由于未来数据尚未发生,历史模拟方法计算 VaR 的核心思想是历史将会 重演,即利用过去的数据模拟市场变量的未来变化。 然后根据市场变量的未来 价格水平对头寸进行重新估计,计算出头寸的价值变化(损益) 。最后,将组 合的损益从最小到最大排序, 得到资产组合未来价值的损益分布, 通过给定置 信度下的分位数求出 VaR。采用模型构建方法计算 VaR 的基本思想是利用证券组合的价值函数与市 场变量间的近似关系,推断市

17、场变量的统计分布(方差 -协方差矩阵),进而简 化 VaR 的计算。该方法的数据易于收集,计算方法简单,计算速度快,也比 较容易为监管机构接受。 模型构建方法的缺点是对未来资产组合价值的分布假 设过强。三、实验操作步骤资产组合是总价值 1000 万的三只基金,包括 400 万博时主题行业 (160505)、300 万嘉实沪深 300(160706)以及 300万南方绩优成长 (202003)。 历史数据是 2007-2008 年的基金日收盘价, 数据文件名为 funddata.xls。计算该 资产组合在 10 天展望期,置信水平 99%条件下的 VaR。(1) 数据准备%读取数据data,te

18、xtdata,raw=xlsread('funddata.xls');funddata=data;% 将数据保存在 funddata.mat 文件中save funddata funddata%载入数据load funddata%funddata 的数据序列%'Hs300',' 博时主题 ','嘉实 300','南方绩优 '2) 历史模拟法 bszt=funddata (:,2);12js300=funddata (:,3);nfjy=funddata (:,4);daynum=length(funddata);%

19、计算模拟情境下资产组合明天可能的损失for i=1:daynum-1num(i)=i;loss(i)=400.*bszt(i+1)./bszt(i)+300.*js300(i+1)./js300(i)+300.*nfjy(i+1)./nfjy(i)-1000;endascend=sort(loss);onevar=-interp1(num,ascend,(daynum-1).*0.01)tenvar=sqrt(10).*onevar计算结果如下:onevar =56.2933tenvar =178.01513) 模型构建法%将资产价格转换为资产收益率Rate=price2ret(funddat

20、a);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);13%计算日均收益期望、日收益率的标准差BsPortReturn=mean(funddata2008(:,1);BsPortRisk=std(

21、funddata2008(:,1);JsPortReturn=mean(funddata2008(:,2);JsPortRisk=std(funddata2008(:,2);NfPortReturn=mean(funddata2008(:,3);NfPortRisk=std(funddata2008(:,3); %计算资产组合的日均收益期望、日收益率的标准差 ExpReturn=BsPortReturn JsPortReturn NfPortReturn;ExpCovariance=cov(funddata2008);PortWts=0.4 0.3 0.3;PortRisk, PortRetu

22、rn=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)P

23、ortVar= portvrisk(PortReturn, PortRisk, RiskThreshold,1000)Tenvar=sqrt(10).*PortVar 计算结果如下: BsValueAtRisk2008 = 21.6607JsValueAtRisk2008 =21.8380NfValueAtRisk2008 =15.5779PortVar =58.2315Tenvar =184.144114结果说明:“ BsValueAtRisk2008=21.6607”表示 2008 年博时主题在置信度阈 值为 1%的 VaR 值,即每个交易日在 99%置信水平下的单日最大损失为 21.66

24、07。 另外,单独计算的三只基金的 1 天展望期置信水平 99%的 VaR 加总为 59.0766,大 于三只基金组成的资产组合的 1天置信水平 99%的 VaR(58.2315),说明资产组合 会造成部分风险被分散化解。最后,用模型构建法计算的 VaR 比历史模拟法计算 的 VaR偏大,是由于模型构建法只用了 2008 年数据,而 2008年各只基金比 2007 年表现明显差,因此,计算的 VaR 较大。实验作业:自行构造包括至少三种资产的投资组合,并收集最近 2 年相关历 史数据,采用历史模拟法和模型构建法分别计算资产组合的 10 天展望期置信水平 99% 的 VaR,要体现通过资产组合投

25、资可以分散化解部分风险,并分析两种方法 计算结果差异的原因。四、对实验所需软件的熟悉和了解重点:理解 VaR的基本原理、计算方法;难点: Matlab 编程;教学方法 :在基于课堂教学的基础上,教师演示。五、实验报告填写要求掌握 VaR 概念和历史模拟方法和模型构建方法计算 VaR,明确实验目的,掌 握实验内容和具体的实验步骤,用 Matlab 编程完成本实验的具体内容,根据实验 大纲的要求和标准实验报告书的内容及格式,按时提交实验报告。15实验项目 3一、基本情况1、实验项目名称:资产组合保险策略模拟及分析2、实验项目的目的和要求:目的: 使学生掌握固定比例投资组合保险策略 CPPI 设计方

26、法及分析过程 要求:(1)使学生熟悉资产组合保险策略的基本原理;(2)熟练掌握资产组合保险策略的设计及分析过程。3、实验内容:(1)编写正态分布的随机数发生程序;(2)估计波动率;(3)资产组合价值动态模拟。4、项目需用仪器设备名称:计算机和 Matlab 和 Excel。5、所需主要元器件及耗材:无。6、学时数: 2 课时本实验项目知识点组合保险策略按构成主要分为基于期权的投资组合保险策略( Option-Based Portfolio Insurance, OBPI )和固定比例投资组合保险策略( Constant Proportion Portfolio Insurance, CPPI)

27、,这是两种广泛应用的投资组合保险策略。基于期权的投资组合保险产品使用债券和期权组合构建产品, 这样构建方法 与股票挂钩产品中的保本票据的构建方法一致。 在利率较低或者期权价格较高的 情况下,基于期权的投资组合保险策略较难实现。OBPI 策略原理: 假定市场无磨擦(即无交易成本和税收) 、资产无限可分、 无卖空限制、 可以相同的无风险连续复利 rf借贷。在一个无套利的分析框架, 欧 式看跌期权( Put Option)的 Black-Scholes 定价模型为:p XerT t N( d2) StN( d1)(1)其中,ln St X r f 2 2 Td2 d1T式中, St是当前 t时刻股票

28、价格, X是期权的执行价格; rf是连续复利下的的无16 风险利率, T 期权的到期时间, 是股票价格的波动率。 N ( )是累积正态分布函 数。式( 1)等式两边同时加 St 可得:2)St pt St N(d1) X e r T t N( d2)式( 2)的意义是,期初拥有数量为 W St N(d1) X e r T t N( d2) 资金的 投资者,把 St N ( d1)资金投入风险资产(股票或指数基金) ,把 X e r T t N( d2)投入无风险资产(国债) ,等价于把所有资金投入风险资产 St和购买了一个以 St 为标的资产的卖权,卖权具有对风险资产保险的作用,其中风险资产的

29、比例为:3)St N(d1)St N(d1)St N(d1) X e r T t N( d2)Stpt无风险资产比例为:X e r T t N( d2)1 wt2tSt pt随着时间 t 和 St 的变化,投资者可根据式 (3)动态调整风险资产的比例 wt, 即,当风险资产价格上涨时, 增大投资于风险资产的比例 wt;当风险资产价格下 跌时,降低投资于风险资产的比例 wt。另一种通用的保本策略是固定比例投资组合保险策略 CPPI,它也是通过动 态调整投资组合无风险品种与风险品种的投资比例, 达到既规避高收益投资品种 价格下跌的风险,又享受到其价格上涨的收益。CPPI 策略的基本公式如下:FtA

30、0 e r T t( 4)Et max(0,M t (At Ft )(5)Gt At Et( 6)式中,At表示 t时刻投资组合的资产价值; Et 表示 t 时刻可投资于风险资产 的上限; Gt 表示 t 时刻可投资于无风险资产的下限; Mt 表示 t 时刻的风险乘数; Ft 表示 t时刻组合的安全底线; 为初始风险控制水平(保本线) ;(T-t)为产品剩 余期限; r 为无风险收益率。CPPI 策略模型涉及风险控制水平(保本线) 、风险乘数、资产配置调整周期 等多个关键参数。波动率的估计: 通常使用股价历史资料求得的收益率标准差(历史波动率) 作为风险资产的波动率。 历史波动率的基本假设是相

31、信过去的波动性会延续到未 来,且不会产生大幅变动, 因此用过去资料算出的波动率可视为未来的股价波动 率。常用的估算历史波动率的方法有 GARCH 类模型、移动平均法、 指数平滑法 等。本实验采用历史数据的样本标准差来估计波动率,参见 B_S 公式有关波动 率的小节。17三、实验操作步骤假设某金融产品采用组合保险策略 CPPI 进行资产投资: (1)风险资产为沪深 300 指数组合; (2)无风险资产为国债,国债利率为 3;(3) 产品保本率为 100%;(4) 调整周期为 10 天;(5) 调整组合的单位交易成本为 c 0.0002;(6) 初始资金 W 1,000 百万元;(7) 产品期限为

32、 1 年(250 个交易日)。固定比例组合保险策略 CPPI的Matlab 函数CPPIStr.m:functionF,E,A,G,SumTradeFee,portFreez=CPPIStr(PortValue,Riskmulti,GuarantRatio,Trad eDayTimeLong,TradeDayOfYear,adjustCycle,RisklessReturn,TradeFee,SData) %2015-12-24%intput:%PortValue:产品组合初始价值;%Riskmulti :CPPI策略的风险乘数;%GuarantRatio:产品的保本率; %TradeDayT

33、imeLong:产品期限,以交易日计算; %TradeDayOfYear:模拟每年的交易日,大致为 250天;%adjustCycle:调整周期;%RisklessReturn:无风险利率;%TradeFee:风险资产的交易费用;%SData is simulation index data%output%F:t时刻安全底线; E:t时刻可投资于风险资产的上限;%A: t时刻组合价值; G:t 时刻可投资于无风险资产的上限。%SumTradeFee:总交易费用%portFreez default is 0, if portFreez=1, portfolio freez there would

34、 have norisk-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/TradeDay OfYear);E(1)=max(0,Riskmulti*(A(1)-F(1);G(1)=A(1)-E(1

35、);% es New Roman;font-family:Times New Roman;,l=17,c=ri portFreez=0; %if portFreez=1, portfolio freez there would have no risk-investment %for i=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*PortV

36、alue*exp(-RisklessReturn*(TradeDayTimeLong-i+1)/Trade DayOfYear);if mod(i-1,adjustCycle)=0temp=E(i);E(i)=max(0, Riskmulti*(A(i)-F(i) );SumTradeFee=SumTradeFee + TradeFee*abs(E(i)-temp); G(i)=A(i)-E(i)-TradeFee*abs(E(i)-temp);endif E(i)=0A(i)=G(i); portFreez=1;endend函数 RandnPrice.m:生成均值方差为 mu,sigma的正

37、态分布的随机收益率。 function Price=RandnPrice(Price0,mu,sigma,N)Rate=normrnd(mu,sigma,N,1);%使用 cumprod函数进行累乘 Price=Price0*cumprod(Rate+1);CPPI策略模拟: %初始参数设置%set valuePortValue=100; %Portfoilo ValueRiskmulti=2; GuarantRatio=1.00;TradeDayTimeLong=250;TradeDayOfYear=250; adjustCycle=10;RisklessReturn=0.03;TradeFee=0.0002; %根据参数生成符合布朗运动的收益率序列 %to generate random numberMean=1.2(1/TradeDayOfYear)-1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论