此示例显示如何使用CDS索引选项cdsoptprice.
随着前进的调整。与单名CD不同,CDS组合索引包含多个学分。当一个或多个违约的学分时,相应的余额支付是对保护买方的,但合同仍在继续进行优惠券付款。考虑到CDS索引选项在到期前的一些基础贷记时未取消,可以尝试使用Black的非敲除单名CDS选项的Black index选项价格。但是,Black的型号在此表单中不合适,因为当罢工传播时,它不会正确捕获锻炼决定(K.)非常高,也没有确保推动奇偶阶段(K.)不等于合同传播(O'Kane,2008)。
但是,通过适当的修改,Black的用于单名CD选项的模型cdsoptprice.
可以为CDS索引选项提供良好的近似值。虽然Black的模型对CDS索引选项进行了修改的方式存在一些变体,但它们通常涉及调整前向扩展F罢工蔓延K., 或两者。在这里,我们描述了仅调整前向扩散的方法。在黑色的单名CD选项的模型中,前向传播F被定义为:
哪里
S.蔓延。
RPV01是基本点的风险存在的价值(见CDSRPV01
)。
T.是估值日期。
T.E.是期权到期日。
T.是CDS成熟日期。
要正确捕获锻炼决策,请正确获取CDS索引选项,我们使用BlackOut的模型的敲除形式,并调整前向扩展以合并FEP.如下:
借FEP.定义为
哪里
R.是恢复率。
Z.是折扣因素。
问:是生存概率。
在cdsoptprice.
,可以使用前进传播调整调整练习顾问
参数。计算调整的前进扩展时,我们可以使用差价计算CDSSPREAD.
和RPV01S使用CDSRPV01
。
设置CDS索引,其选项和零曲线的数据。底层是2017年6月20日至2017年6月的5年的CDS指数,并在2012年6月20日到期。在引导默认概率曲线时,假设平面索引扩展。
%CDS索引和选项数据恢复= .4;基础= 2;期间= 4;CDSMaturity = Datenum('20 -Jun-2017');收缩= 100;indexspread = 140;BusdayConvention =.'跟随';settr = datenum('13 -apr-2012');OptionMaturity = Datenum('20 -Jun-2012');Optionstrike = 140;散宽率= .69;%零曲线数据mm_time = [1 2 3 6]';mm_rate = [0.004111 0.00563 0.00757 0.01053]'mm_dates = daysadd(定居,30 * mm_time,1);Swap_time = [1 2 3 4 5 6 7 8 9 10 12 15 20 30]'Swap_rate = [0.01387 0.01035 0.01145 0.01318 0.01508 0.01700 0.01700 0.01700 0.01868......0.02012 0.02132 0.02237 0.02564 0.02564 0.02564 0.02564 0.02524''swap_dates = daysadd(定居,360 * swap_time,1);insttypes = [repmat({'存款'},大小(mm_time)); repmat({'交换'},尺寸(Swap_time))];intruments = [repmat(soldmat(instrypes))[mm_dates; swap_dates] [mm_rate; swap_rate]];zerocurve = irdatacurve.bootstrap('零',解决,insttypes,仪器);Plootstrap默认概率曲线假设平面索引扩展。MarketData = [CDSMaturity IndexSpread];probdates = datemnth(optionmaturity,(0:5 * 12)');probdata = cdsbootstrap(Zerocurve,MarketData,Setting,'probdates',probdates);
计算点并转发RPV01S,将在稍后在计算的调整前进扩展的计算中使用。为此,我们可以使用CDSRPV01
。
%RPV01(T,T)RPV01_CDSMaturity = CDSRPV01(Zerocurve,ProbData,Setten,CDSMaturity)%RPV01(T,T_E,T)RPV01_OptionExpiryforward = CDSRPV01(Zerocurve,ProbData,Sold,CDSMaturity,......'开始日期',optionmaturity)%RPV01(t,t_e)= rpv01(t,t) - rpv01(t,t_e,t)RPV01_OptionExpiry = RPV01_CDSMaturity - RPV01_Optionexpiryforward
rpv01_cdsmaturity = 4.7853 rpv01_optionexpiryforward = 4.5971 rpv01_optionexpiry = 0.1882
计算使用点差价使用CDSSPREAD.
。
%s(t,t_e)Spread_OptionExpiry = CDSSPREAD(Zerocurve,ProbData,Setten,OptionMaturity,......'期',期,'基础',基础,'BusdayConvention',busdayconvention,......'payaccruedpremium',真正,'恢复率',复苏)%s(t,t)Spread_cdsMaturity = CDSSpread(Zerocurve,ProbData,Setten,CDSMaturity,......'期',期,'基础',基础,'BusdayConvention',busdayconvention,......'payaccruedpremium',真正,'恢复率',复苏)
Spread_OptionExpiry = 139.9006 Spread_CDSMaturity = 140.0000
然后使用点差和RPV01s来计算前进扩散。
%f = s(t,t_e,t)forwardspread =(Spread_cdsMaturity。* RPV01_CDSMaturity -......Spread_OptionExpiry。* RPV01_OptionExpiry)./ rpv01_optionexpiryforward
ForwardSpread = 140.0040.
计算前端保护(FEP)。
fep = 10000 *(1恢复)* zerocurve.getdiscountfortors(optionmaturity)* probdata(1,2)
FEP = 26.3108.
计算调整的前进扩展。
调整框架= forwardspread + fep./rpv01_optionexpiryforward
调整为ForwardsPread = 145.7273.
计算价格使用cdsoptprice.
随着调整后的前进蔓延。再次注意到昏死
参数应设置为真正
因为FEP已经被纳入调整后的前进蔓延。
[付款人,接收者] = CDSoptPrice(Zerocurve,probdata,sold,OptionMaturity,......CDSMaturity,Optionstrike,Speagvolation,'昏死',真正,......'调整为forwardspread',调整练习熟练,'payaccruedpremium',真正);fprintf('付款人:%.0f接收器:%.0f \ n',付款人,接收者);
付款人:92接收者:66
cdsoptprice.
|CDSRPV01
|CDSSPREAD.