利用BS定价公求解期权要素ppt_第1页
利用BS定价公求解期权要素ppt_第2页
利用BS定价公求解期权要素ppt_第3页
利用BS定价公求解期权要素ppt_第4页
利用BS定价公求解期权要素ppt_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、利用Black-scholes模型求解波动率和无风险利率By: 吴义能吴义能一一.B-S公式的计算公式的计算1编写编写excel计算公式计算公式标准正态分面函数在标准正态分面函数在excel中的命令是中的命令是Normdist(x,0,1,true)或或Normsdist(x).Ln(x)在在excel中直接写就得了。中直接写就得了。开平方命令是开平方命令是sqrt(x)具体内容见具体内容见Black-Scholes模型计算欧式模型计算欧式期权价格期权价格.xls2B-S公式公式matlab计算欧式期权价格计算欧式期权价格 (1)欧式现货期权价格)欧式现货期权价格 命令:命令:blsprice

2、调用方式: Call, Put = blsprice(Price, Strike, Rate, Time, Volatility, Yield)-现货期权现货期权 Call, Put = blkprice(Price, Strike, Rate, Time, Volatility, Yield)-期货期权期货期权(四四) 期权价格数据的采集期权价格数据的采集1. 估计无风险利率估计无风险利率选择正确的利率。美国一般以国债利率作为无风选择正确的利率。美国一般以国债利率作为无风险利率的估计值。由于美国国债的报价为贴现率险利率的估计值。由于美国国债的报价为贴现率,故还要将之转化为连续复利的形式;,故

3、还要将之转化为连续复利的形式;选择合适的国债到期日。选择合适的国债到期日。应该选择距离期权到期应该选择距离期权到期日最近的那个国债的利率作为无风险利率的计算日最近的那个国债的利率作为无风险利率的计算基础。基础。 例例8. 假设一个还有假设一个还有84天到期的国债天到期的国债,其买入和卖出报价为其买入和卖出报价为:8.83- 8.77美元美元. 请依此计算一个存续期同样为请依此计算一个存续期同样为84天的期天的期权的无风险利率权的无风险利率. 解解: 首先,算出无风险债券的价格。由于首先,算出无风险债券的价格。由于8.83- 8.77是贴现率是贴现率报价,国债的期限为报价,国债的期限为84天,设

4、国债的价格为天,设国债的价格为PTB,有:,有: PTB=100-(8.83+8.77)/2*(84/360)=97.947(美元美元) 然后,设计按连续得利然后,设计按连续得利r,经过经过84天的期限之后,这项投资天的期限之后,这项投资的收益变为的收益变为100,所以有:,所以有: PTB*er(T-t)=100. 解出解出r, r=0.0902. 这就是这就是B-S公式中可以用的无风险利率公式中可以用的无风险利率了。了。 由此看来由此看来,wind中采用的直接引用中采用的直接引用shibor利率并非同期国利率并非同期国债利率债利率,算法也与没有这么复杂算法也与没有这么复杂2. 历史波动率的

5、计算历史波动率的计算前面讲过前面讲过,历史波动率是从标的资产的历史数历史波动率是从标的资产的历史数据中计算出价格收益率的标准差据中计算出价格收益率的标准差. 以下表为例以下表为例,说明怎样用说明怎样用excel来求历史波动率来求历史波动率. 表中表中Pt为各交易日股票价格为各交易日股票价格, Rt为股票价格百为股票价格百分比收益率分比收益率,R-(或或)为连续复利收益率为连续复利收益率(估计估计)均值均值,2是连续复利收益率是连续复利收益率(估计估计)方差方差, 是标是标准差。准差。天数天数股价股价Pt收益率收益率Rtln(Rt)连续复利收益率连续复利收益率100.00 101.50 1.01

6、50 0.0149 98.00 0.9655 (0.0351)96.75 0.9872 (0.0128)100.50 1.0388 0.0380 101.00 1.0050 0.0050 103.25 1.0223 0.0220 105.00 1.0169 0.0168 102.75 0.9786 (0.0217)103.00 1.0024 0.0024 102.50 0.9951 (0.0049)均值均值1.00 0.0025 标准差标准差0.02 0.021844 注意注意:B-S公式中的波动率公式中的波动率是以是以e为底数的波动率为底数的波动率, 故标准差的计算来源应是故标准差的计算来源

7、应是ln(Rt),而不是而不是Rt.但是,这样计算出来的只不过是日波动率,而在但是,这样计算出来的只不过是日波动率,而在B-S公式中又是用的年波动率。所以要将之转化为公式中又是用的年波动率。所以要将之转化为年波动率。但问题是:一年的天数是按日历天数年波动率。但问题是:一年的天数是按日历天数算还是按交易日算?算还是按交易日算?一般情况下,认为证券价格的波动主要来自交易一般情况下,认为证券价格的波动主要来自交易日,日,一年有一年有Days个交易日个交易日。所以年波动率。所以年波动率year与日波动率与日波动率day的关系是:的关系是:计算历史波动率的时间长度选择:计算历史波动率的时间长度选择:一般

8、来说,时一般来说,时间越长,数据越多,获得的标准差越精确。但是间越长,数据越多,获得的标准差越精确。但是资产收益的变化并不完全是历史的重复,太长的资产收益的变化并不完全是历史的重复,太长的时间段还能还会降低波动率的精确度时间段还能还会降低波动率的精确度。所以,在所以,在计算波动率时,要注意选取距离当天较近的时间计算波动率时,要注意选取距离当天较近的时间将价格系列转化为年波动率的自编函数是tick2yearSig.Daysdayyear*2隐含波动率的计算隐含波动率的计算隐含波动率实际上是根据已有的期限报价隐含波动率实际上是根据已有的期限报价,利用,利用B-S公式和其它已知条件,求出已有公式和其

9、它已知条件,求出已有报价的波动率报价的波动率。这对于期权价格波动较快这对于期权价格波动较快的期权更有意义。的期权更有意义。比较传统的方法是用试错法求出隐含波动比较传统的方法是用试错法求出隐含波动率。其原理流程图如右:率。其原理流程图如右:试错法计算试错法计算隐含波动率隐含波动率的流程图的流程图选择初始选择初始用用B-SB-S公式算波动率为公式算波动率为时时, ,看涨期权的价格看涨期权的价格B-S call=B-S call=市价市价call?call?Y隐含隐含就是就是目前的目前的停止停止NIf B-S call市价市价callIf B-S call syms x; solve(x2=4,x)

10、 能求出能求出x=2或或-2, 再看含有正态颁布的方程:再看含有正态颁布的方程:(注意正态分布密度函数为注意正态分布密度函数为normpdf,累积正态分布函数为累积正态分布函数为normcdf) clear; syms x; solve(40*normcdf(x)-30=0,x) ? Error using = solve Unable to find closed form solution. Error in = sym.solve at 49 varargout1:max(1,nargout) = solve(S:);绝招: 用fslove函数 这说明不好用这说明不好用solve函数求出

11、波动率函数求出波动率,因为,因为在在B-S公式中是正态分布的参数。公式中是正态分布的参数。经过反复查找资料,最后发现经过反复查找资料,最后发现可以用fslove函数近似求解。 Fsolve是用迭代法求解非线性议程组的解。具体是用迭代法求解非线性议程组的解。具体用法十分复杂,大家可以查阅相关资料。下面我用法十分复杂,大家可以查阅相关资料。下面我编写的代码是用编写的代码是用fslove指定一个解区域指定一个解区域a,b或指或指定迭代的起始值来近似求解。定迭代的起始值来近似求解。 代码代码: yy=inline(方程式方程式); x=fsolve(yy,a,b)注意注意:方程式如果是方程式如果是f(

12、x)=0,要写成要写成 “f(x)” % 由已知欧式看涨期权的价格由已知欧式看涨期权的价格c,标的资产现价标的资产现价S,无风险无风险利率利率r,存续期存续期T,协议价格协议价格X,求波动率求波动率 % c=1.4534,S=20,X=20, r=0.09, T=0.33333,即参照,即参照Black-Scholes模型计算欧式期权价格模型计算欧式期权价格 (version 1).xls中的数据中的数据 % 套入套入B-S公式公式,写成写成f(B-s)-c=0的形式的形式 yy=inline(20*normcdf(0.09+x.2/2)*0.33333/(x*sqrt(0.33333)-19

13、.4089*normcdf(0.09-x.2/2)*0.33333/(x*sqrt(0.33333)-1.45354); x=fsolve(yy,0,1) % 结果是出来一堆警告结果是出来一堆警告, 最后最后x = -0.0000 0.2500, 这个这个0.25倒是对的倒是对的. x=fsolve(yy,0.1) % 结果也与上面是一样的。结果也与上面是一样的。 % 再验证一下叶永刚再验证一下叶永刚P218中的中的. clear; yy=inline(50*normcdf(0.10+x.2/2)*1/(x*sqrt(1)-44.346*normcdf(0.10-x.2/2)*1/(x*sqr

14、t(1)-5.9179); x=fsolve(yy,0,1) % 结果是结果是x = -0.0069 0.1050. 即即=0.1050,这个比课这个比课本上的本上的0.1略有偏差略有偏差,但可以接受但可以接受. % 在在excel中把中把改为改为0.1050之后之后,c=5.9652, 比比=0.1时时的的5.9179要大一些要大一些. x=fsolve(yy,0.1) Optimization terminated: first-order optimality is less than options.TolFun. x = 0.1023 % 即即0.1023. 比上面的比上面的0.10

15、50更精确一些。更精确一些。将无风险利率和波动率一并求出有时候去查无风险利率,也是一件麻烦的事。有时候去查无风险利率,也是一件麻烦的事。 可以可以由两个到期月份相同但执行价格不同的欧式期权的由两个到期月份相同但执行价格不同的欧式期权的价格,由价格,由B-S公式,写出两个方程,联立方程组,通过公式,写出两个方程,联立方程组,通过解方程组,可以一次性求出无风险利率解方程组,可以一次性求出无风险利率r和波动率和波动率省去省去不少麻烦。用到的不少麻烦。用到的matlab函数还是函数还是fslove. 为了得到两组数据,我们用为了得到两组数据,我们用excel中编写的中编写的B-S算法,制算法,制造出两

16、组数据。当然在造出两组数据。当然在excel中,中,r和和已知的,已知的,call是解是解出的值。这里我们借用一下其数据,假设解出的出的值。这里我们借用一下其数据,假设解出的call是是市场期权的报价,市场期权的报价,r和和未知,我们要用两个月份相同但未知,我们要用两个月份相同但执行价格不同的执行价格不同的call值求解出值求解出r和和. 下面由方程组解出无风险利率下面由方程组解出无风险利率r和波动率和波动率, 第一组数据为第一组数据为: c=1.4534,S=20,X=20, r=x(1),T=0.33333,未知未知; 第二组数据为第二组数据为: c=0.13316,S=20,X=25,r

17、=x(1),T=0.33333,未知未知; 解解: function F = myfun(x) F = 20*normcdf(x(1)+x(2).2/2)*0.33333/(x(2)*sqrt(0.33333) -19.4089*normcdf(x(1)-x(2).2/2)*0.33333/(x(2)*sqrt(0.33333)-1.45354; 20*normcdf(log(20/25)+(x(1)+x(2).2/2)*0.33333)/(x(2)*sqrt(0.33333)-24.261*normcdf(log(20/25)+(x(1)-x(2).2/2)*0.33333)/(x(2)*s

18、qrt(0.33333)-0.13316; %以上三行以上三行保存为保存为M文件文件 x0 = 0; 1; % 后两行写在命令行后两行写在命令行 x = fsolve(myfun,x0) x =0.0879 0.2500 % 即即r=0.0897, =0.25. 而在而在excel表格设计中表格设计中r=0.09,=0.25. 程序简化function F=BSfun(X)c1=1.4534;c2 =0.13316; S=20; K1=20; K2=25; T=1/3;d11=(log(S/K1)+T*(X(1)+0.5*X(2)2)/(X(2)*sqrt(T);d12=d11-X(2)*sqrt(T);d21=(log(S/K2)+T*(X(1)+0.5*X(2)2)/(X(2)*sqrt(T);d22=d21-X(2

温馨提示

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

评论

0/150

提交评论