期权实验课实验报告_第1页
期权实验课实验报告_第2页
期权实验课实验报告_第3页
期权实验课实验报告_第4页
期权实验课实验报告_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、学号 姓名 专业期权实验课实验报告一、实验目的利用excel实现期权的二叉树和B-S定价,利用MATLAB实现期权的二叉树定价,对三种方法进行比较。二、实验过程假设当前股价S0=13.57,无风险收益率(连续复利)r=0.0286,波动率标准差=0.4996距到期日时间T(年)=0.2521,起始时间为2015/6/1,期权到期时间为2015/9/1,股票分别在2015/7/1和2015/8/1发放2元股息。(一) 期权二叉树定价的excel实现 本表可实现至多256步二叉树对有或无红利的欧式或美式的看涨或看跌期权的价格计算。1、基本数据输入区图1 基本数据输入区基本数据输入区包含当前股价S0

2、、无风险收益率r(连续复利)、距到期日时间T(年)、波动率标准差、执行价格K、计算步数(<=256)、期权类型选择、起始时间、到期时间、计数规则。(1)距到期日时间T(年)通过YEARFRAC公式自动计算而得,对应的输入数据为起始时间、到期时间、计数规则(E4:E6),使用绝对地址。计数规则通过选择控件实现,如图2所示。选择开发工具 -> 插入 -> 列表框(窗体控件),在F6:F10分别输入“US (NASD) 30/360”、“实际天数/实际天数”、“实际天数/360”、“实际天数/365”、“欧洲30/360”,右键列表框,点击设置控件格式,如图2所示,在数据源区域选择

3、F6:F10,单元格链接选择G6,均使用绝对地址,下拉显示项数输入5,则选择控件设置完毕。在选择控件下拉选项中选择“US (NASD) 30/360”,发现G6显示为1,实际“US (NASD) 30/360”在YEARFRAC函数中对应0,故在E6中输入公式=$G$6-1。为使界面整洁,将F6:F10、G6中的内容颜色设置为页面背景颜色,从而将内容隐藏。图2 选择控件设置(2)期权类型选择使用组合控件,设置方式与选择空间类似。最终结果链接至C8,点击看涨期权时,C8=1,点击看跌期权时C8=-1。2、风险中性定价参数上升因子,下降因子=1/u,风险中性概率,分别在B10:B12中输入公式:=

4、EXP(C5*SQRT(C4/C7)、=1/C10、=(EXP(C3*C4/C7)-C11)/(C10-C11)。3、股息有红利时,在每个股息发放日将未来的股息折现到该时点,再将该折现值复利到直到下一个股息发放日之间的每一步,并将该值加到对应步数的无红利股价上,得到有红利的总股价。表格设置至多4次股息。折现因子1,2,3,4分别表示将未来现金流折现到起始时期,第一个股息发放日,第二个股息发放日,第三个股息发放日。图3 股息如图3,C15=IF(C14="","",YEARFRAC($E$4,C14,$E$6),表示如果C14为空,即期间不发放红利,此期权

5、为无红利期权,则C15也为空,股息部分均为空;如果C14不为空,且日期在起始时间和到期时间之间(否则会提示“输入非日期或者输入日期超出期权有效期外!”,如图4所示),此期权为有红利期权,距离起始时间的期限为第一个股息发放日按E6输入的日期计算方式至期权起始日之间的年数,C16=IF(C$14="","",EXP(-$C$3*SUM($C$15:C$15),表示有红利时,以C3的无风险利率为折现率,第一个股息发放日到起始时间的折现因子。图4 日期错误提示在2015/8/1,D15=IF(D14="","",YEARF

6、RAC(C14,D14,$E$6),表示第二个股息发放日到第一个股息发放日之间的期限,D16=IF(D$14="","",EXP(-$C$3*SUM($C$15:D$15)表示第二个股息发放日到起始日期的折现因子,D17=IF(D$14="","",EXP(-$C$3*SUM($D$15:D$15)表示第二个股息发放日到第一个股息发放日的折现因子,以此类推可以得到第三个、第四个股息发放日对应各个时间点的折现因子。接下来计算折现值:C21=IF(C14="","",SUMPRO

7、DUCT(C16:F16,C$20:$F$20)表示未来各期现金流折现到起始日期,D21=IF(D14="","",SUMPRODUCT(D17:F17,D$20:$F$20)表示未来各期现金流折现到第一个股息发放日,以此类推,可以得到第二个、第三个股息发放日的未来现金流折现值。4、股价矩阵图5 股价矩阵自动输出步数N,D23=IF(C23<$C$7,C23+1,"")表示当前一步小于预先设置的步数时,在前一步的基础上增加一步,否则为空。时间Ti等于步数乘以总时间除以总步数。(0,0)=C26=C2表示零时刻的股价,对于任一步(

8、i,j)(i行j列,0<i,j<=256),当i>j时,(i,j)为空,否则,(i,j)表示j步时的某一状态的股价,且当i<j时,(i,j)=u*(i,j-1),当i=j时,(i,j)=d*(i-1,j-1),换成指数表示为(i,j)=S0*di*u(N-i),比如(1,2)=E27=IF(E$23="","",IF($B27<=E$23,$C$26*$C$11$B27*$C$10(E$23-$B27),"")。5、总股价矩阵 当无红利时,总股价矩阵等于股价矩阵,有红利时,总股价矩阵等于股价矩阵加红利。图

9、6 总股价矩阵 C288=IF(OR($B288>C$285,C$285=""),"",C26+IF($C$14="",0,IF(C$286>=SUM($C$15:$F$15),0,IF(C$286>=SUM($C$15:$E$15),$F$21*EXP($C$3*(C$286-SUM($C$15:$E$15),IF(C$286>=SUM($C$15:$D$15),$D$21*EXP($C$3*(C$286-SUM($C$15:$D$15),IF(C$286>=$C$15,$D$21*EXP($C$3*(

10、C$286-$C$15),$C$21*EXP($C$3*C$286),函数可通过图7分解。注:每步左边的条件不满足时即进入右边。图7 总股价矩阵函数图解 确保总股价矩阵图是上三角,以及将股价限制到最大步数列; 排除空格后,用无红利股价加上换算后的股息,当第一个股息发放日的日期为空时,即为无红利期权,股息为零,总股价等于无红利股价; 存在红利时,如果该步的时间Ti大于第四个股息发放日(如果没有第四个股息发放日,则期限为零,对结果没有影响)到期权起始日期之间的时间,则该步对应的应计股息为零; 如果该步的时间Ti大于第三个股息发放日到期权起始日期之间的时间,则该步的应计股息为3中股息中第三个股息发放

11、日的未来股息折现值按照无风险利率从第三个股息日复利到该步(期限即为该步到第三个股息发放日之间的时间); 类似第步,如果该步的时间Ti大于第二个股息发放日到期权起始日期之间的时间,则该步的应计股息为3中股息中第二个股息发放日的未来股息折现值按照无风险利率从第二个股息日复利到该步(期限即为该步到第二个股息发放日之间的时间); 类似第步,如果该步的时间Ti大于第一个股息发放日到期权起始日期之间的时间,则该步的应计股息为3中股息中第一个股息发放日的未来股息折现值按照无风险利率从第一个股息日复利到该步(期限即为该步到第一个股息发放日之间的时间);否则,该步的应计股息为3中股息中期权起始日的未来股息折现值

12、按照无风险利率从期权起始日复利到该步。6、欧式期权价格图8 欧式期权价格C5=IF($B5>C$2,"",IF(C$2="","",IF(D$2="",MAX(股价矩阵!$C$8*(股价矩阵!C288-股价矩阵!$C$6),0),EXP(-股价矩阵!$C$3*股价矩阵!$D$24)*(股价矩阵!$C$12*欧式期权价格!D5+(1-股价矩阵!$C$12)*D6),该函数用于计算欧式期权价格,意思是排除空格后,如果是最后一步,则期权价格等于对应的总股价减执行价格的差乘以期权类型的系数与零相比的较大者,看涨期权为

13、1,看跌期权为-1,如果不是最后一步,则每步的期权价格等于下一步的期权价格与风险中性概率乘积的和的贴现值。将0时刻的期权价格链接至第一张表格(股价矩阵)相应位置(I2)。7、美式期权价格图9 美式期权价格C5=IF($B5>C$2,"",IF(C$2="","",IF(D$2="",MAX(股价矩阵!$C$8*(股价矩阵!C288-股价矩阵!$C$6),0),MAX(股价矩阵!$C$8*(股价矩阵!C288-股价矩阵!$C$6),EXP(-股价矩阵!$C$3*股价矩阵!$D$24)*(股价矩阵!$C$12*D

14、5+(1-股价矩阵!$C$12)*D6),美式期权价格与欧式期权价格的不同点在于美式期权最后的价格等于按照欧式期权价格计算的结果与提前行权的收益的较大者。将0时刻的期权价格链接至第一张表格(股价矩阵)相应位置(I3)。图10 二叉树的EXCEL实现总图(二)期权B-S定价的excel实现期权B-S定价只需要按照公式计算即可,如图11,在输入区分别输入起初股价S、执行价格K、无风险利率r、波动率、期限T,按照下列公式先计算d1、d2,然后计算得欧式看涨期权和欧式看跌期权的价格。F6=(LN(B4/C4)+(D4+E42/2)*F4)/E4/SQRT(F4)F7=(LN(B4/C4)+(D4-E4

15、2/2)*F4)/E4/SQRT(F4)C9=B4*NORM.DIST(F6,0,1,TRUE)-C4*EXP(-D4*F4)*NORM.DIST(F7,0,1,TRUE)C10=B4*(NORM.DIST(F6,0,1,TRUE)-1)-C4*EXP(-D4*F4)*(NORM.DIST(F7,0,1,TRUE)-1)图11 欧式期权B-S的excel实现(三)期权二叉树定价的MATLAB实现 通过自编函数实现有红利和无红利的欧式或者美式的看涨或者看跌的期权价格,函数代码如下:function option,price = opt_price(S,K,r,T,sigma,N,opt,flag

16、,T_bonus,bonus) %看涨期权二叉树定价%输入参数%S股票/资产当前价格%K期权执行价格%r无风险利率%sigma股票/资产的年波动率标准差%N二叉树的步数% opt 期权的类型,欧式期权opt=1,美式期权opt=0% flag 可选参数,期权类型,看涨期权flag=1,看跌期权flag=-1,默认为1% T_bonus 可选参数,红利发放的时间矩阵,1*n% bonus 可选参数,红利的值,1*n%输出参数%Price期权的价格二叉树矩阵%option期权价格%江波 2015-06-27 第一次编辑,时间仓促,函数还不甚完善%if nargin < 7 error(mes

17、sage('输入参数不足') elseif nargin < 8 flag = 1; T_bonus=; bonus=; elseif nargin = 8 T_bonus=; bonus=; elseif nargin = 9 error(message('输入参数不足')end if flag = 1 & flag = -1 error(message('无效的期权输入类型,看涨期权请输入1,看跌期权请输入-1') end dt=T/N;u=exp(sigma*sqrt(dt);d=1/u;p=(exp(r*dt)-d)/(u-

18、d); price=zeros(N+1,N+1); bon=zeros(N+1,N+1);%红利调整计算%B=length(T_bonus);if B=1 f=exp(-r*T_bonus)*bonus;elseif B>1 for i=1:B-1 f(1)=dot(exp(-r.*T_bonus),bonus); f(i+1)=dot(exp(-r.*(T_bonus(i+1:B)-(T_bonus(i),bonus(i+1:B); endendfor j=1:B k=1; tt=0,T_bonus(1:B-1); for i=k:N+1 if i*dt<T_bonus(j) b

19、on(i)=f(j)*exp(r*(i*dt)-tt(j);%红利矩阵 k=i; else break end endend%股价矩阵计算%j=0:N; price(:,N+1) = max(0,flag*(S*u.(N-j).*d.j -K);stock=zeros(N,N);for j=1:N for i=1:N if i<=j stock(i,j)=S*u(j-i)*d(i-1)+bon(j); end endend%期权价格二叉树% for j=N-1:-1:0 for i=0:j if opt=1 price(i+1,j+1) =exp(-r*dt)*(p*price(i+1,

20、j+2)+(1-p)*price(i+2,j+2);%欧式期权 elseif opt=0price(i+1,j+1)=max(exp(-r*dt)*(p*price(i+1,j+2)+(1-p)*price(i+2,j+2),flag*(stock(i+1,j+1) -K);%美式期权 end end end option=price(1,1); if nargout=2 price; option;else option;end% 在MATLAB中运行命令:opt1=opt_price(13.57,20,0.0286,0.2521,0.4596,16,1,1)opt2=opt_price(1

21、3.57,20,0.0286,0.2521,0.4596,16,1,-1)opt3=opt_price(13.57,20,0.0286,0.2521,0.4596,16,0,1)opt4=opt_price(13.57,20,0.0286,0.2521,0.4596,16,0,-1)opt11=opt_price(13.57,20,0.0286,0.2521,0.4596,16,1,1,0.08219,0.16712,2,2)opt22=opt_price(13.57,20,0.0286,0.2521,0.4596,16,1,-1,0.08219,0.16712,2,2)opt33=opt_p

22、rice(13.57,20,0.0286,0.2521,0.4596,16,0,1,0.08219,0.16712,2,2)opt44=opt_price(13.57,20,0.0286,0.2521,0.4596,16,0,-1,0.08219,0.16712,2,2) 得到结果:opt1 = 0.0761opt2 = 6.3624opt3 = 0.0761opt4 = 6.4475opt11 = 0.0761opt22 = 6.3624opt33 = 0.0915opt44 = 6.4070分别表示无红利欧式看涨看跌,无红利美式看涨看跌,有红利欧式看涨看跌,有红利美式看涨看跌。三、实验结果分析表1 二叉树EXCEL与MATLAB实现对比EXCELMATLAB有

温馨提示

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

评论

0/150

提交评论