主要内容

为CDS指数期权定价

这个例子展示了如何使用cdsoptprice.随着远期价差的调整。与单一名称CDS不同,CDS投资组合指数包含多个信用。当一个或多个信用违约,相应的或有支付支付给保护买方,但合同仍然继续,减少息票支付。考虑到当一些基础信用在到期前违约时,CDS指数期权不会取消,人们可能会尝试使用Black模型为非淘汰单名CDS期权定价。然而,这种形式的Black模型不适用于CDS指数期权定价,因为当执行价差(K)非常高,也没有确保推动奇偶阶段(K)并不等于合同价差(O’kane, 2008)。

但是,通过适当的修改,Black的用于单名CD选项的模型cdsoptprice.可以很好地近似CDS指数期权。尽管Black模型对CDS指数期权的修正方式存在一些变化,但它们通常涉及调整远期价差F罢工蔓延K,或两者兼而有之。这里我们只描述了调整远期价差的方法。在Black的单名CDS期权模型中,远期价差F被定义为:

F 年代 t t E T 年代 t T R P V 01 t T 年代 t t E R P V 01 t t E R P V 01 t t E T

在哪里

年代是传播。

RPV01.是基本点的风险存在的价值(见CDSRPV01)。

t是估值日期。

tE是期权的到期日。

T是CDS到期日。

为了正确地获取CDS指数期权的执行决策,我们使用了布莱克模型的淘汰形式,并调整了远期价差以纳入期权FEP.如下:

F 一个 d j F + F E P R P V 01 t t E T

FEP.定义为

F E P 1 R Z t t E 1 t t E

在哪里

R是恢复速率。

Z是折扣因素。

是生存概率。

cdsoptprice.,远期价差调整可以用调整练习顾问参数。当计算调整后的远期价差时,我们可以使用cdsspread和RPV01S使用CDSRPV01

建立CDS指数、期权和零值曲线的数据。标的是2017年6月20日到期的5年期CDS指数和2012年6月20日到期的期权。当引导违约概率曲线时,假设一个平坦的指数利差。

%CDS索引和选项数据复苏=。4;基础= 2;时间= 4;CDSMaturity = datenum (“20 - 2017年6月- - - - - -”);ContractSpread = 100;IndexSpread = 140;BusDayConvention =“跟随”;解决= datenum ('13 -apr-2012');OptionMaturity = datenum (“20 - 2012年6月- - - - - -”);OptionStrike = 140;SpreadVolatility = i;%零曲线数据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.018680.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 (CDSMaturity ZeroCurve ProbData,解决)%RPV01(T,T_E,T)RPV01_OptionExpiryforward = CDSRPV01(Zerocurve,ProbData,Sold,CDSMaturity,StartDate可以的,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 (OptionMaturity ZeroCurve ProbData,解决,“时间”,时期,'基础',基础,“BusDayConvention”BusDayConvention,'payaccruedpremium',真的,'恢复率',恢复)% S (t, t)Spread_CDSMaturity = cdsspread (CDSMaturity ZeroCurve ProbData,解决,“时间”,时期,'基础',基础,“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)
聚全氟乙丙烯= 26.3108

计算调整后的远期价差。

调整框架= forwardspread + fep./rpv01_optionexpiryforward
AdjustedForwardSpread = 145.7273

计算价格使用cdsoptprice.与调整后的远期价差。请再次注意基因敲除参数设置为真的因为FEP已被纳入调整后的远期价差。

[付款人,接收者] = CDSoptPrice(Zerocurve,probdata,sold,OptionMaturity,CDSMaturity、OptionStrike SpreadVolatility,'昏死',真的,“AdjustedForwardSpread”,调整练习熟练,'payaccruedpremium',真正的);流('付款人:%.0f接收器:%.0f \ n'付款人,接收机);
付款人:92接收者:66

另请参阅

||

相关话题