第10章-期权定价模型与数值方法

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

《金融数量分析——基于MATLAB编程》10.1期权基础概念1.期权的定义期权分为买入期权(calloption)和卖出期权(putoption)。买入期权:又称看涨期权(或敲入期权),它是赋予期权持有者在给定时间(或在此时间之前任一时刻)按规定价格买入一定数量某种资产的权利的一种法律合同。卖出期权:又称看跌期权(或敲出期权),它是赋予期权持有者在给定时间(或在此时间之前任一时刻)按规定价格卖出一定数量某种资产的权利的一种法律合同。2.期权的要素期权的四个要素:行权价(exerciseprice或strikingprice)、到期日(maturingdata)、标的资产(underlyingasset)、期权费(optionpremium)。对于期权的购买者(持有者)而言,付出期权费后,只有权利没有义务;对期权的出售者而言,接受期权费后,只有义务没有权利。10.1.1期权及其有关概念3.期权的内在价值买入期权在执行日的价值CT为CT=max(ST-E,0)式中:E表示行权价;ST表示标的资产的市场价。卖出期权在执行日的价值PT为PT=max(E-ST,0)根据期权的行权价与标的资产市场价之间的关系,期权可分为价内期权(inthemoney)(SE)、平价期权(atthemoney)(S=E)和价外期权(outofthemoney)(SE)。10.1.1期权及其有关概念说明期权价格与股票价格相关10.2.4Black-Scholes方程求解BlackScholes微分方程的风险中性定价。在风险中性事件中,以下两个结论称为风险中性定价原则:任何可交易的基础金融资产的瞬时期望收益率均为无风险利率,即恒有μ=r;任何一种衍生工具当前t时刻的价值均等于未来T时刻其价值的期望值按无风险利率贴现的现值。BlackScholes期权定价公式,欧式买权或卖权解的表达式为式中:MATLAB中计算期权价格的函数为blsprice函数,语法为\[Call,Put\]=blsprice(Price,Strike,Rate,Time,Volatility,Yield)输入参数:Price:标的资产市场价格;Strike:执行价格;Rate:无风险利率;Time:距离到期时间;Volatility:标的资产价格波动率;Yield:(可选)资产连续贴现利率,默认为0。输出参数:Call:Calloption价格;Put:Putoption价格。10.2.4Black-Scholes方程求解例10.2假设欧式股票期权,三个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,计算期权价格。代码如下:10.2.4Black-Scholes方程求解%标底资产价格Price=100;%执行价格Strike=95;%无风险收益率(年化)10%Rate=0.1%剩余时间Time=3/12;%年化波动率Volatility=0.5[Call,Put]=blsprice(100,95,0.1,0.25,0.5)Call=13.70%买入期权Put=6.35%卖出期权10.2.5影响期权价格的因素分析期权价格受到当前价格S、执行价格E、期权的期限T、股票价格方差率σ2及无风险利率r五个因素的影响。下面以欧式看涨期权为例来分析。期权对这五个因素的敏感程度称为期权的Greeks,其计算公式与计算函数如下。1.德尔塔(Delta)δ期权δ是考察期权价格随标的资产价格变化的关系,从数学角度看,δ是期权价格相对于标的资产价格的偏导数,有计算函数为blsdelta.m,函数语法如下:10.2.5影响期权价格的因素分析[CallDelta,PutDelta]=blsdelta(Price,Strike,Rate,Time,Volatility,Yield)输入参数:Price:标的资产市场价格;Strike:执行价格;Rate:无风险利率;Time:距离到期时间;Volatility:标的资产价格波动率;Yield:(可选)资产连续贴现利率,默认为0。输出参数:CallDelta:看涨期权的δ;PutDelta:看跌期权的δ。•例10.2假设欧式股票期权,三个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,计算期权δ。•代码如下:Price=60:1:100;%标底资产价格Strike=95;%执行价格Rate=0.1;%无风险收益率(年化)Time=(1:1:12)/12;%剩余时间Volatility=0.5;%年化波动率[CallDelta,PutDelta]=blsdelta(Price,Strike,Rate,Time,Volatility)•若要分析期权δ与标的资产价格、剩余期限的关系,即不同的Price与Time计算不同的δ三维关系,可以编写如下代码:Price=60:1:100;%标底资产价格Strike=95;%执行价格Rate=0.1;%无风险收益率(年化)Time=(1:1:12)/12;%剩余时间Volatility=0.5;%年化波动率[Price,Time]=meshgrid(Price,Time);[Calldelta,Putdelta]=blsdelta(Price,Strike,Rate,Time,Volatility);%mesh(Price,Time,Calldelta);mesh(Price,Time,Putdelta);xlabel('StockPrice');ylabel('Time(year)');zlabel('Delta');10.2.5影响期权价格的因素分析2.西塔(Theta)θθ表示期权价格对于到期日的敏感度,称为期权的时间损耗。3.维伽(Vega)νν表示方差率对期权价格的影响。4.珞(Rho)ρρ为期权的价值随利率波动的敏感度,利率增加,使期权价值变大。5.伽玛(Gamma)ΓΓ表示δ与标的资产价格变动的关系。10.2.5影响期权价格的因素分析10.3B-S公式隐含波动率计算BlackScholes期权定价公式,欧式期权理论价格的表达式:式中:隐含波动率是将市场上的期权交易价格代入权证理论价格BlackScholes模型反推出来的波动率数值。由于期权定价BS模型给出了期权价格与五个基本参数之间的定量关系,只要将其中前4个基本参数及期权的实际市场价格作为已知量代入定价公式,就可以从中解出惟一的未知量,其大小就是隐含波动率。10.3.1隐含波动率概念10.3.2隐含波动率计算方法隐含波动率是把权证的价格代入BS模型中反算出来的,它反映了投资者对未来标的证券波动率的预期。BlackScholes期权定价公式中已知St(标的资产市场价格)、X(执行价格)、r(无风险利率)、T-t(距离到期时间)、看涨期权ct或者看跌期权pt,根据B-S公式计算出与其相应的隐含波动率σyin。数学模型为式中:求解方程fc(σyin)=0,fp(σyin)=0的根。本质上是非线性方程10.3.3隐含波动率计算程序利用fsolve函数计算隐含波动率,fsolve是MATLAB最主要内置的求解方程组的函数,具体fsolve的使用方法可以参看相关函数说明。例10.4假设欧式股票期权,3个月后到期,执行价格95元,现价为100元,无股利支付,股价年化波动率为50%,无风险利率为10%,计算期权价格。计算结果如下:假设目前其期权交易价格为Call=15.00元,Put=7.00元,分别计算其相对应的隐含波动率。[Call,Put]=blsprice(100,95,0.1,0.25,0.5)Call=13.6953Put=6.3497步骤1:建立方程函数。看涨期权隐含波动率方程的M文件ImpliedVolatitityCallObj.M,其语法如下:f=ImpliedVolatitityCallObj(Volatility,Price,Strike,Rate,Time,Callprice)程序代码如下:functionf=ImpliedVolatitityCallObj(Volatility,Price,Strike,Rate,Time,Callprice)%ImpliedVolatitityCallObj%codebyariszheng@gmail.com2009-8-3[Call,Put]=blsprice(Price,Strike,Rate,Time,Volatility);%存在一个波动率使得下列等式成立%fc(ImpliedVolatitity)=Call-Callprice=0f=Call-Callprice;10.3.3隐含波动率计算程序看跌期权隐含波动率方程的M文件为ImpliedVolatitityPutObj.m,其语法如下:f=ImpliedVolatitityPutObj(Volatility,Price,Strike,Rate,Time,Putprice)程序代码如下:functionf=ImpliedVolatitityPutObj(Volatility,Price,Strike,Rate,Time,Putprice)%ImpliedVolatitityCallObj%codebyariszheng@gmail.com2009-8-3%根据参数,使用blsprice计算期权价格[Call,Put]=blsprice(Price,Strike,Rate,Time,Volatility);%fp(ImpliedVolatitity)=Put-Putprice=0%目标使得寻找X使得目标函数为0f=Put-Putprice;10.3.3隐含波动率计算程序步骤2:求解方程函数。求解方程函数的M文件为ImpliedVolatility.m,其语法如下:\[Vc,Vp,Cfval,Pfval\]=ImpliedVolatility(Price,Strike,Rate,Time,CallPrice,PutPrice)function[Vc,Vp,Cfval,Pfval]=ImpliedVolatility(Price,Strike,Rate,Time,CallPrice,PutPrice)%ImpliedVolatility%codebyariszheng@gmail.com2009-8-3Volatility0=1.0;%优化算法初始迭代点;%CallPrice对应的隐含波动率[Vc,Cfval]=fsolve(@(Volatility)ImpliedVolatitityCallObj(Volatility,Price,Strike,Rate,Time,CallPrice),Volatility0);%CallPrice对应的隐含波动率[Vp,Pfval]=fsolve(@(Volatility)ImpliedVolatitityPutObj(Volatility,Price,Strike,Rate,Time,PutPrice),Volatility0);10.3.3隐含波动率计算程序步骤3:函数求解。M文件TestImpliedVolatility.M代码如下:%TestImpliedVolatility%市场价格Price=100;%执行价格Strike=95;%无风险利率Rate=0.10;%时间(年)Time=0.25;CallPrice=15.0;%看涨期权交易价格PutPrice=7.0;%看跌期权交易价格%调用ImpliedVolatility函数[Vc,Vp,Cfval,Pfval]=ImpliedVolatility(Price,Strike,Rate,Time,CallPrice,PutPrice)10.3.3隐含波动率计算程序隐含波动率与期权价格关系图Price=100;Strike=95;Rate=0.10;Time=1.0;Volatility=0:0.1:2.0

1 / 34
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功