资源描述
第9章 衍射工具的分析和定价
9.1期权证券的定价
(1)bdtbond函数
目的 期权背书债券的black-derman-toy 定价,期权证券的定价
格式 [price,sensitivities,disctree,pricetree]=bdtbond(optbond,zerocurve,volatilitycurve,accuracy,
creditcurve,computersensitivity)
参数
Optbond 可附有买权和卖权的背书债券的详述。字段是标量和日期流。规格帮助了解债券参数的详尽信息。
Optbond.settle:交割日。
Optbond.maturity:到期日。
Optbond.period:(期权)付息频率。默认=2。
Optbond.basis:(期权)市场起点。默认=0
Optbond.endmonthrule:(期权)EOM规则。默认=1(有效)。
Optbond.firstcoupondate:(期权)如果首次付息期限不规则,注明首次付息。
Optbond.lastcoupondate:(期权) 如果末次付息期限不规则,注明末次付息。
Optbond.issuedate:(期权)如果首次付息期限不规则,注明债券发行日。
Optbond.startdate:(期货工具、期权)证券的远期起效日如果不在交割日以前需注明。
Optbond.couponrate:(期权)利息支付利率。
Optbond.face:(期权)债券的到期支付额。默认=100。
Optbond(继续) 期权专用字段:买权或卖权的专用字段。假设买权由债券发行人持有,卖权由债券持有人持有。由此,买权降低债券持有人持有债券的价值,卖权增加债券价值。
Optbond.callstrike:买权执行价。
Optbond.calltype:1(美式)或0(欧式)。默认=1。
Optbond.callexpirydate:美式期权操作最后日期,欧式期权唯一日期。
Optbond.callstartdate:美式期权操作首日。莫认是交割日。
Optbond.putstrike:卖权执行价。
Optbond.puttype:1(美式)或0(欧式)。默认=1。
Optbond.putexpirydate:美式期权操作最后日期,欧式期权唯一日期。
Optbond.putstartdate:美式期权操作首日。莫认是交割日。
zerocurve NCURVE(日期,利率)对的零曲线被引入以覆盖债券的时间跨期。早于第一个曲线日期的时间使用第一个利率,晚于最后曲线日期的时间使用最后的利率。
Zerocurve.curvedates:连续日期的NCURVE-by-1矢量。
Zerocurve.zerorates:利率的NCURVE-by-1矢量。
Volatilitycurve 短期利率的持续年度变量的曲线。曲线包含NCURVE2(日期,利率)队。曲线被引入以覆盖债券的时间跨期。
volatilitycurve.curvedates:连续日期的NCURVE2-by-1矢量。
volatilitycurve.volatilityrates:小数形式年度变量的NCURVE2-by-1矢量。
Accuracy用以详述每个结息期间步骤数目的标量。较大的数字产生更多的精确答案,但是也需要更多的时间和记忆装置。
Creditcurve (期权)利率由默认风险上升的曲线。曲线包含NCURVE3(日期,利率)队。曲线被引入以覆盖债券的时间跨期。
creditcurve.curvedates:连续日期的NCURVE3-by-1矢量。
creditcurve.creditrates:信用的NCURVE3-by-1矢量自起点形成的价值(非小数利率)。对零利率的有效变化是信用率/10000。
Conputesensitivity 如果债券敏感度策略(有或无期权)需要计算须详述.1表示策略被计算,0表示未计算.敏感度通过有限差额计算得出.默认无敏感度,只有价格返回.
Computersensitivity.duration:标量1或0。
Computersensitivity.convexity:标量1或0。
Computersensitivity.vega:标量1或0。
描述 计算附有背书买权或卖权的债券的价格和敏感策略。根据给定的投入产出曲线(可能的话和信用趋势)和变量曲线在为利率期权定价的black-derman-toy模型基础上定价。
Price 是有或无期权的债券的价值。
Price.optionfreeprice 无期权债券的标量价格。
Price.optionembedprice 附有期权债券的标量价格(对债券持有者的价值)。
Price.optionvalue 对债券持有人的期权标量价值。
Sensitivities 涉及在产出曲线和变量形式结构对无期权河背书期权债券价格的变化影响。
Sensitivities.duration 无期权债券价格对产出曲线平行移动的敏感度。
Sensitivities.effduration 背书期权价格对产出曲线移动的敏感度。
Sensitivities.convexity duration对产出曲线移动的敏感度。
Sensitivities.effconvexity effduration对产出曲线移动的敏感度。
Sensitivities.vega 背书期权价格对变量曲线平行移动的敏感度。
Disctree是利率结构的重组二叉树。二叉树覆盖从交割至到期日的NPERIODS期间,每个利率期都有精度步骤。交割时短期利率和在交割与第一次的短期利率是设定的。
Disctree.values 短期贴息因素的NSTAATES-by-NPERIODS矩阵。价值的NPERIODS柱对应随后的时间。NSTATES列对应利率过程中的状态。未使用的状态被NAN删除。
时刻date(i)的现金流量乘以贴息价值(j, i)得出跨过二叉树(j,i)边缘后的时刻date(i-1)的价格。相交于交点(j,i)的短期利率R(j,i)满足:
(1+R(j,i)/Frequency)^(-(Times(j)-Times(j-1)))=Values(j,i)
discetree,times 在结息间隔单元中的二叉树交点时期的1-by-NPERIODS矢量。(类型揭示ftbTFactors更多信息。)
disctree.dates 作为连续日期数的二叉树交点时期的1-by-NPERIODS矢量。
Disctree.type ‘short discount’
Disctree.frequency 投入债券的增加频率。
Disctree.errorflag (0或1)当短期利率为负时设为1。
Pricetree是现金流量二叉树在树交点的重组。Pricetree由债券现金流量和期权收益求出。债券的净价等于pricetree价值减去利息收益和累计利率。
Pricetree.values 价格状态的NSTATES-by-NPERIODS矩阵。
Pricetree.times 在结息间隔单元中的二叉树交点时期的1-by-NPERIODS矢量。(类型揭示ftbTFactors更多信息。)
pricetree.dates 作为连续日期数的二叉树交点时期的1-by-NPERIODS矢量。
Pricetree.accrint 每个时期可支付的累积利息的1-by-NPERIODS矢量。
Pricetree.coupons 每个时期利息支付的1-by-NPERIODS矢量。
Disctree.type ‘price’
例9-1 设某债权 optbond.settle=’15-jul-1996’;
optbond.maturity=’15-jan-1998’;
optbond.couponrate=0.06;
optbond.period=2
债券附有美式买权。允许持有者在15-jan-1997到到期日(15-jan-1998)以98的执行价买入期权。
Optbond.puttype=1;
Optond.putstartdate=’15-jan-1997’;
Optbond.putexpirydate=’15-jan-1998’;
Optbond.putstrike=98
建立零曲线结构。
Zerocurve.zerorates=[0.05;0.06;0.065]; Zerocurve.curvedates=[’01-jan-1996’;’01-jan-1997’;’01-jan-1998’]
建立变量曲线结构。
Volcurve.volatilityrates=[0.15;0.13];
Volcurve.curvedates=[729025;729756]
结息期间是半年,每年用十次期限。
Accuracy=5
自200起点(0.02)的连续信用。
Creditcurve.creditrates=[200];
Creditcurve.curvedates=[’01-jan-1996’]
求duration和vega.
Senschoice.duration=1;
Senschoice.convexity=0;
Senschoice.vega=1;
[price,sensitivities,disctree,pricetree]=……
bdtbond(optbond,zerocurve,volcurve,accuracy,creditcurve,……senschoice);
price=
optionfreeprice:96.5565
optionembedprice:97.1769
optionvalue:0.6204
sensitivities=
duration:1.3959
effduration:0.6848
convexity:NaN
effconvexity:NAN
vega:-0.0194
(2)bdttrans函数
目的 转换由bdtbond得来的二叉树。期权定价的转移树
格式 bdttrans(tree)
[treemat,treetimes]=bdttrans(tree)
参数 tree 由bdtbond所得的二叉树结构。
描述 bdttrans解开并将短期贴息树结构转化成一个短期利息树,或将价格树转化成一个净价格书。所得的是一个价值交点树矩阵和一个交点时间矢量。
Treemat是一个由树上的点指定的短期利率或净价格的NSTATES-by-NTIMES转换矩阵。时间层是包含不同状态的圆柱。矩阵没用上的纪录被NaN遮盖。
Treetimes是一个对应treemat层的时间1-by-NTIMES矢量。如果bdttrans没有产出引数,它根据结息期间的时间轴规划了翻译所得的树。
例9-2 设一债券
Optbond.settle=’15-Jul-1996’;
Optbond.maturity=’15-Jan-1998’;
Optbond.period=2;
设附背书美式买权。令债券在15-Jan-1997至到期日可由发行人买入。
Optbond.calltype=1;
Optbond.callstratdate=’15-Jan-1997’;
Optbond.callexpirydate=’15-Jan-1998’;
Optbond.callstrike=101;
建连续零曲线结构.
Zerocurve.zerorates=0.05;
Zerocurve.curvedates=’15-Jul-1996’;
建连续变量曲线结构。
Volcurve.volatilityrates=0.05;
Volcurve.curvedates=’15-Jul-1996’;
选择每个结息期的树型交点。
Accuracy=2;
运行bdtbond方程。
[price,sensitivities,disctree,pricetree]=bdtbond(optbond,……zerocurve,volcurve,accuracy);
将贴息树转化成短期利率树。
Disc.tree=
Values:[6*7 double]
Times:[0 0.5000 1 1.5000 2 2.5000 3]
Dates:[729221 729313 729405 729496 729586 729678 729770]
Errorflag:0
Type:’short discount’
Frequency:2
[shortratemat,treetimes]=bdttrans(disctree)
shortratemat=
0.0500 0.0500 0.0447 0.0399 0.0357 0.0319 0.0285
0.0554 0.0494 0.0442 0.0395 0.0353
0.0613 0.0548 0.0489 0.0437
0.0679 0.0607 0.0542
0.0753 0.0672
NaN 0.0835
Treetimes=
0 0.5000 1.000 1.500 2.000 2.500 3.000
将价格树转化成净价格树。
Pricetree=
Values:[6*7 double]
Times:[0 0.5000 1 1.5000 2 2.5000 3]
Dates:[729221 729313 729405 729496 729586 729678 729770]
Errorflag:0
Accrint:[0 1.7500 0 1.7597 0 1.7500 0]
Coupons:[0 0 3.5000 0 3.5000 0 3.5000]
Type:’price’
[cleanpricemat,treetimes]=bdttrans(pricetree)
cleanpricemat=
101.9512 101.4677 101.0000 101.0000 101.0000 100.9348 100.0000
101.0000 101.0000 101.0000 100.7429 100.0000
100.6019 100.7397 100.5060 100.0000
100.0978 100.2139 100.0000
99.8539 100.0000
NaN 100.0000
Treetimes=
0 0.5000 1.000 1.500 2.000 2.500 3.000
(3)binprice函数
目的 买权和卖权的二项定价. 二项式期权定价
格式 [assetprice,optionvalue]=binprice(price,strike,rate,time,increment,volatility,flag,
dividendrate,dividend,exdiv)
参数 price 资产价格.标量.
Strike 期权执行价.标量.
Rate 无风险利率.标量.输入小数.
Time 距到期日的期权时间.标量.
Increment 时间增量.标量.increment被调节以保证每个期间长度与期权到期日相一致.(increment被调节以保证time按increment被分成增量的整数 )
Volatility 资产变化.标量.
Flag 介绍期权是买权(flag=1)还是卖权(flag=0).标量.
Dividendrate (期权)股息率,小数.标量.默认=0.如果dividendrate输入价值,设置divident和exdiv为零,或不输入内容.如果divident和exdiv输入价值,设置dividendrate=0.
Dividend (期权)在股息结算日,exdiv,的股息支付.一组矢量.每次股息支付,必须对应股息结算日.默认=0. 如果divident和exdiv输入价值,设置dividendrate=0.
Exdiv (期权)股息结算日,用表时间的数说明,一组矢量.默认=0.
描述 使用cox-ross-rubinstein二叉树定价模型定价期权.
例9-3 设卖权,资产价格是$52,期权执行价是$50,无风险利率10%,期权到期日是5个月,资产变化40%,在3.1/2月时有一次股息支付$2.06.
[price,option]=binprice(52,50,0.1,5/12,1/12,0.4,0,0,2.06,3.5)
得出二叉树每个交点处的资产价格和期权价值.
Price=
52.0000 58.1367 65.0226 72.7494 79.3515 89.0642
46.5642 52.0336 58.1706 62.9882 70.6980
41.7231 46.5981 49.9992 56.1192
37.4120 39.6887 44.5467
31.5044 35.3606
0 28.0688
option=
4.4404 2.1627 0.6361 0 0 0
0 6.8611 3.7715 1.3018 0 0
0 0 10.1591 6.3785 2.6645 0
0 0 0 14.2245 10.3113 5.4533
0 0 0 0 18.4956 14.6394
0 0 0 0 0 21.9312
erxiangshidingjia
price=52;
strike=50;
rate=0.1;
time=5/12;
increment=1/12;
volatility=0.4;
flag=0;
dividendrate=0;
dividend=2.06;
exdiv=3.5
[assetprice,optionvalue]=binprice(price,strike,rate,time,increment,volatility,flag,dividendrate,dividend,exdiv)
附 blkprice,blsprice
(4)blkprice函数
目的 Black’s期权定价,布莱克期权定价公式
格式 [call,put]=blkprice(forwardprice,strike,rate,time,volatility)
参数 forwardprice 0时刻资产的远期价格,必须大于0。你可以根据如下等式计算远期价格从而扩展Black’s模型至利率衍生工具(附有卖权或买权的债券)。
f=( B -I )*exp(r*t)
其中B是债券的面值,I是期权结息的现值,r是无风险利率,t是至到期日的时间。
Strike 期权的执行价。必须大于0。
Rate 无风险利率(加存货费用少于任何产出)。必须大于等于0。
Time 至期权到期日的时间。必须大于0。
Volatility 资产价格的变化率。必须大于等于0。
描述 使用Black’s模型定价期权,得出买权和卖权的价格。
Note 这个方程使用normcdf,统计工具箱中的一般累积分布方程。
例9-4 债券的远期价格是$95,期权的执行价是$98,无风险利率是11%,距期权到期日的事件时3年,债券价格的变化率是2.5%。
[call,put]=blkprice(95,98,0.11,3,0.025)
call= 0.4162(or $0.42)
put=2.5729(or $2.57)
(5)blsprice函数
目的 买权或卖权的Black-Scholes定价。布莱克-斯科尔斯看涨期-看跌期权定价
格式 [callprice,putprice]=blsprice(price,strike,rate,time,volatility,dividendrate)
参数 price 当前资产价格。
Strike 执行价格。
Rate 无风险利率。输入小数。
Time 距期权到期日的时间。
Volatility 资产收益的年连续复利的标准差,即变化率。
Dividendrate (期权)资产股息率。输入小数。默认=0。
描述 [callprice,putprice]=blsprice(price,strike,rate,time,volatility,dividendrate)使用Black-Scholes定价公式计算卖权和买权的价值。
Note 这个方程使用normcdf,统计工具箱中的一般累积分布方程。
例9-5 当前资产价值是$100,期权执行价是$95,无风险利率是10%,距期权到期日0.25年,资产标准差是50%。[callprice,putprice]=blsprice(100,95,0.1,0.25,0.5)
callprice= 13.70
putprice= 6.35
blackdingjia1:
price=100;
strike=95;
rate=0.1;
time=0.25;
volatility=0.5;
[callprice,putprice]=blsprice(price,strike,rate,time,volatility)
附 blkprice,blsdelta,blsgamma,blsimpv,blslambda,blsrho,blstheta,blsvega.
9.2 价格变动的敏感度
(1)blsdelta函数
目的 潜在价格变动的Black-Scholes敏感度。对标的价格变化的布莱克-斯科尔斯敏感性
格式 [calldelta,putdelta]=blsdelta(price,strike,rate,time,volatility,dividendrate)
参数 price 当前股票价格。
Strike 执行价格。
Rate 无风险利率。输入小数。
Time 距期权到期日的时间。
Volatility 股票收益的年连续复利的标准差,即变化率。
Dividendrate (期权)股息率或可应用外汇利率。输入小数。默认=0
描述 [calldelta,putdelta]=blsdelta(price,strike,rate,time,volatility,dividendrate)得出增量,期权价值对国债价格变动的敏感度。增量也叫套利率。
Note 这个方程使用normcdf,统计工具箱中的一般累积分布方程。
例9-6 [calldelta,putdelta]=blsdelta(50,50,0.1, 0.25, 0.3, 0)
calldelta= 0.5955
putdelata=-0.4045
(2)blsgamma函数
目的 对增量变化的Black-Scholes敏感度。对标的delet变化的布莱克-斯科尔斯敏感性
格式 gamma=blsgamma(price,strike,rate,time,volatility,dividendrate)
参数 price 当前股票价格。
Strike 执行价格。
Rate 无风险利率。输入小数。
Time 距期权到期日的时间。
Volatility 股票收益的年连续复利的标准差,即变化率。
Dividendrate (期权)输入小数。默认=0
描述gamma=blsgamma(price,strike,rate,time,volatility,dividendrate)得出gamma,增量对国债价格变动的敏感度。
Note 这个方程使用normpdf,统计工具箱中的一般概率密度方程。
例9-7 gamma=blsgamma(50,50,0.12,0.25,0.3,0)
gamma= 0.0512
(3)blsimpv函数
目的 Black-Scholes隐含变化率,布莱克-斯科尔斯的波动率
格式 volatility=blsimpv(price,strike,rate,time,call,MaxIterations)
参数 price 当前资产价格。
Strike 执行价格。
Rate 无风险利率。输入小数。
Time 距期权到期日的时间。
Call 买权价格。
MaxIterations (期权)用于通过Newton法求出变化率的迭代最大数。
描述 volatility=blsimpv(price,strike,rate,time,call,MaxIterations)得出资产的隐含变化率。使用Newton法。
Note 这个方程使用normcdf和normpdf,统计工具箱中的一般累积分布方程和一般概率密度方程。
例9-8 资产现价$100,执行价$95,无风险利率7.5%,距期权到期日0.25年,买权价值$10.00。
vol=blsimpv(100,95,0.075,0.25,10)
vol= 0.0313(or 31.3%)
(4)blslambda函数
目的 布莱克-斯科尔斯(Black-Scholes )弹性。
格式 [CallEl,PutEl]=blslambda(price,strike,rate,time,volatility,dividendrate)
参数 price 当前股票价格。
Strike 执行价格。
Rate 无风险利率。输入小数。
Time 距期权到期日的时间。
Volatility 股票收益的年连续复利的标准差,即变化率。
Dividendrate (期权)股息率。输入小数。默认=0。
描述 [CallEl,PutEl]=blslambda(price,strike,rate,time,volatility,dividendrate)得出期权的弹性。CallEl是买权弹性或杠杆要素,PutEl是卖权弹性或杠杆要素。弹性(期权仓位的杠杆率)衡量股票价格变动1%时期券价格随之变动的百分比。
Note 这个方程使用normcdf,统计工具箱中的一般累积分布方程。
例9-9 [CallEl,PutEl]=blslambda(50,50,0.12,0.25,0.3)
CallEl= 8.1274
PutEl= -8.6466
(5)blsrho函数
目的:Black-Scholes 模型对利率变化的敏感性,布莱克-斯科尔斯的利率弹性
格式:[CallRho,PutRho]=blsrho(Price,Strike,Rate,Time,Volatility,DividendRate)
参数:Price:当前债券价格
Strike:测试价格
Rate:十进制小数利率
Time:至到期日的年数
Volatility: 股票利息的连续复利的标准差
DividendRate: 红利 , 缺省值为0
描述:返回买权的Rho和卖权的Rho.Rho是期权价值对利率的敏感性.
注意:这个函数用到工具箱中的normpdf和normcdf函数,即正态分布密度函数和正态分布函数.
例9-10:[CallRho,PutRho]=blsrho(50,50,0.12,0.25,0.3,0)
CallRho=6.6686
PutRho=-5.4619
(6)blstheta函数
目的:Black-Scholes 模型对到期时间变化的敏感性,期限敏感性
格式: [CallTheta,PutTheta]=blstheta(Price,Strike,Rate,Time,Volatility, DividendRate)
参数: Price: 当前债券价格
Strike: 测试价格
Rate:十进制小数利率
Time:至到期日的年数
Volatility: 股票利息的连续复利的标准差
DividendRate:红利 , 缺省值为0
描述: [CallTheta,PutTheta]= blstheta (Price, Strike, Rate, Time, Volatility, DividendRate)返回买权的Theta和卖权的Theta.Theta是期权价值对时间的敏感性.
注意:这个函数用到工具箱中的normpdf和normcdf函数,即正态分布密度函数和正态分布函数.
例9-11:[CallTheta,PutTheta]=blstheta(50,50,0.12,0.25,0.3,0)
Calltheta=-8.9630
Puttheta=-3.1404
参阅:blsdeta,blsgamma,blslambda,blsprice,blsrho,blsvega
(7)blsvega函数
目的:Black-Scholes 模型对隐含价格波动的敏感性,价格变化率敏感性
格式:Vega=blsvega(Price,Strike,Rate,Time,Volatility,DivedendRate)
参数:Price: 当前债券价格
Strike: 测试价格
Rate:十进制小数利率
Time:至到期日的年数
Volatility: 股票利息的连续复利的标准差
DividendRate: 红利 , 缺省值为0
描述: Vega=blsvega(Price,Strike,Rate,Time,Volatility,DivedendRate)返回Vega,即期权价格对隐含价格波动的敏感性
注意:这个函数用到工具箱中的normpdf函数,即正态分布密度函数.
例9-12:Vega=blsvega(50,50,0.12,0.25,0.3,0)
Vega=9.6035
9.3 期权收益
opprofit函数
目的:期权收益
格式:Profit = opprofit(Asset,Strike,Cost,PosFlag,OptType)
参数:Asset 标的资产价格
Strike 执行价格或敲定价格
Cost 期权价格
PosFlag 期权情况,0表示长期,1表示短期。
OptType 期权类型,0表示看涨期权,1表示看跌期权。
描述:Profit = opprofit(Asset,Strike,Cost,PosFlag,OptType)的结果是期权的收益。
例9-13:买一份价格为4美元的期权,标的资产现价为100美元,执行价格为90美元。
Profit = opprofit(100,90,4,0,0)
结果为:
Profit =
6.00
若期权在这种情况下执行,则收益为6美元。
qiquanshouyi:
Asset=100;
Strike=90;
Cost=4;
PosFlag=0;
OptType=0;
Profit=opprofit(Asset,Strike,Cost,PosFlag,OptType)
类似:binprice,blsprice
展开阅读全文