主要内容

Pricing a CDS Index Option

This example shows how to price CDS index options by usingcdsoptpricewith the forward spread adjustment. Unlike a single-name CDS, a CDS portfolio index contains multiple credits. When one or more of the credits default, the corresponding contingent payments are made to the protection buyer but the contract still continues with reduced coupon payments. Considering the fact that the CDS index option does not cancel when some of the underlying credits default before expiry, one might attempt to price CDS index options using the Black's model for non-knockout single-name CDS option. However, Black's model in this form is not appropriate for pricing CDS index options because it does not capture the exercise decision correctly when the strike spread (K)很高,当K) is not equal to the contractual spread (O'Kane, 2008).

但是,有了适当的修改,Black的单名CDS选项的模型cdsoptpricecan provide a good approximation for CDS index options. While there are some variations in the way the Black's model is modified for CDS index options, they usually involve adjusting the forward spreadF, the strike spreadK, or both. Here we describe the approach of adjusting the forward spread only. In the Black's model for single-name CDS options, the forward spreadF被定义为:

F = S ( t , t E , T ) = S ( t , T ) R P V 01 ( t , T ) S ( t , t E ) R P V 01 ( t , t E ) R P V 01 ( t , t E , T )

where

Sis the spread.

RPV01是一个基点的风险当前价值(请参阅CDSRPV01)。

tis the valuation date.

tEis the option expiry date.

Tis the CDS maturity date.

To capture the exercise decision correctly for CDS index options, we use the knockout form of the Black's model and adjust the forward spread to incorporate thefep如下:

F A d j = F + F E P R P V 01 ( t , t E , T )

withfepdefined as

F E P = ( 1 R ) Z ( t , t E ) ( 1 Q ( t , t E ) )

where

Ris the recovery rate.

Z是折现因子。

Qis the survival probability.

cdsoptprice, forward spread adjustment can be made with the调整Forwardspreadparameter. When computing the adjusted forward spread, we can compute the spreads usingcdsspreadRPV01使用CDSRPV01.

Set up the data for the CDS index, its option, and zero curve. The underlying is a 5-year CDS index maturing on 20-Jun-2017 and the option expires on 20-Jun-2012. A flat index spread is assumed when bootstrapping the default probability curve.

%CD索引和选项数据Recovery = .4; Basis = 2; Period = 4; CDSMaturity = datenum('20-Jun-2017'); ContractSpread = 100; IndexSpread = 140; BusDayConvention ='follow'; Settle = datenum('13 -apr-2012'); OptionMaturity = datenum('20-Jun-2012'); OptionStrike = 140; SpreadVolatility = .69;%零曲线数据MM_Time = [1 2 3 6] ';MM_Rate = (0.004111 - 0.005630.00757 0.01053]'; MM_Dates = daysadd(Settle,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.01868...0.02012 0.02132 0.02237 0.02408 0.02564 0.02612 0.02524]';swap_dates = daysadd(settle,360*swap_time,1);InstTypes = [repmat({{'deposit'},size(MM_Time));repmat({'swap'},size(swap_time))];instruments = [repmat(settle,size(instypes))[mm_dates; swap_dates] [mm_rate; swap_rate]];zerocurve = irdatacurve.bootstrap('零',定居,Instypes,仪器);%bootstrap假设索引差异为默认概率曲线。MarketData = [CDSmaturity indexSpread];probdates = datemnth(optionMaturity,(0:5*12)');probData = cdsbootstrap(Zerocurve,MarketData,settle,“探测”,探针);

Compute the spot and forward RPV01s, which will be used later in the computation of the adjusted forward spread. For this purpose, we can useCDSRPV01.

% RPV01(t,T)RPV01_CDSMaturity = cdsrpv01(ZeroCurve,ProbData,Settle,CDSMaturity)%rpv01(t,t_e,t)rpv01_optionexpiryforward = cdsrpv01(zerocurve,probdata,settle,cdsmaturity,...'StartDate',选择性)%rpv01(t,t_e)= rpv01(t,t)-rpv01(t,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,Settle,OptionMaturity,...'Period',时期,'基础',基础,'BusDayConvention',BusDayConvention,...“ payaccruedplemium”,true,'恢复率',恢复)% S(t,T)Spread_CDSMaturity = cdsspread(ZeroCurve,ProbData,Settle,CDSMaturity,...'Period',时期,'基础',基础,'BusDayConvention',BusDayConvention,...“ payaccruedplemium”,true,'恢复率',恢复)
spread_optionexpiry = 139.9006 spraive_cdsmaturity = 140.0000

然后使用斑点扩展和RPV01来计算正向扩展。

%f = s(t,t_e,t)forwardspread =(vrable_cdsmaturity。*rpv01_cdsmaturity-...spread_optionexpry。
forwardspread = 140.0040

计算前端保护(FEP)。

fep = 10000*(1 recovery)*zerocurve.getDiscountFactors(optionMaturity)*probdata(1,2)
fep= 26.3108

Compute the adjusted forward spread.

AccondedForwardsPread = forwardspread + fep./rpv01_optionexpiryforward
调整Forwardspread= 145.7273

使用期权价格使用cdsoptpricewith the adjusted forward spread. Note again that theKnockoutparameter should be set to be真的because the FEP was already incorporated into the adjusted forward spread.

[付款人,接收器] = cdsoptprice(zerocurve,probdata,settle,optionmaturity,...CDSMaturity, OptionStrike, SpreadVolatility,'昏死',true,...'AdjustedForwardSpread', AdjustedForwardSpread,“ payaccruedplemium”,true); fprintf('付款人:%.0f接收器:%.0f \ n',Payer,Receiver);
付款人:92接收器:66

See Also

|||

Related Examples

More About