cdsoptprice

Price payer and receiver credit default swap options

Syntax

[Payer,Receiver] = cdsoptprice(ZeroData,ProbData,Settle,OptionMaturity,CDSMaturity,Strike,SpreadVol)
[Payer,Receiver] = cdsoptprice(ZeroData,ProbData,Settle,OptionMaturity,CDSMaturity,Strike,SpreadVol,Name,Value)

Description

[Payer,Receiver] = cdsoptprice(ZeroData,ProbData,Settle,OptionMaturity,CDSMaturity,Strike,SpreadVol)computes the price of payer and receiver credit default swap options.

[Payer,Receiver] = cdsoptprice(ZeroData,ProbData,Settle,OptionMaturity,CDSMaturity,Strike,SpreadVol,Name,Value)computes the price of payer and receiver credit default swap options with additional options specified by one or moreName,Valuepair arguments.

Input Arguments

ZeroData

M-by-2vector of dates and zero rates or anIRDataCurveobject of zero rates. For more information on anIRDataCurveobject, seeCreating an IRDataCurve Object.

ProbData

P-by-2array of dates and default probabilities.

Settle

Settlement date is a serial date number or date character vector.Settlemust be earlier than the maturity date.

选项Maturity

N-by-1vector of serial date numbers or date character vectors containing the option maturity dates.

CDSMaturity

N-by-1vector of serial date numbers or date character vectors containing the CDS maturity dates.

Strike

N-by-1vector of option strikes expressed in basis points.

SpreadVol

N-by-1vector of annualized credit spread volatilities expressed as a positive decimal number.

Name-Value Pair Arguments

Specify optional comma-separated pairs ofName,Valuearguments.Nameis the argument name andValueis the corresponding value.Namemust appear inside quotes. You can specify several name and value pair arguments in any order asName1,Value1,...,NameN,ValueN.

Note

Any optional input of sizeN-by-1 is also acceptable as an array of size1-by-N,或者一个值适用于所有合同. Single values are internally expanded to an array of sizeN-by-1.

'AdjustedForwardSpread'

N-by-1vector of adjusted forward spreads (in basis points) to be used when pricing CDS index options.

Default:unadjusted forward spread normally used for single-name CDS options

'Basis'

N-by-1vector of contract day-count basis:

  • 0 = actual/actual

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (BMA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (European)

  • 7 = actual/365 (Japanese)

  • 8 = actual/actual (ICMA)

  • 9 = actual/360 (ICMA)

  • 10 = actual/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = actual/365 (ISDA)

  • 13 = BUS/252

For more information, seeBasis.

Default:2(actual/360)

'BusDayConvention'

Business day conventions, specified by a character vector orN-by-1cell array of character vectors of business day conventions. The selection for business day convention determines how non-business days are treated. Non-business days are defined as weekends plus any other date that businesses are not open (e.g. statutory holidays). Values are:

  • actual— Non-business days are effectively ignored. Cash flows that fall on non-business days are assumed to be distributed on the actual date.

  • follow— Cash flows that fall on a non-business day are assumed to be distributed on the following business day.

  • modifiedfollow— Cash flows that fall on a non-business day are assumed to be distributed on the following business day. However if the following business day is in a different month, the previous business day is adopted instead.

  • previous— Cash flows that fall on a non-business day are assumed to be distributed on the previous business day.

  • modifiedprevious— Cash flows that fall on a non-business day are assumed to be distributed on the previous business day. However if the previous business day is in a different month, the following business day is adopted instead.

Default:actual

'Knockout'

N-by-1vector of Boolean flags. If the credit default swaptions is a knockout, the flag isTrue, otherwise it isFalse.

Default:False

'PayAccruedPremium'

N-by-1vector of Boolean flags. If accrued premiums are paid upon default, the flag isTrue, otherwise it isFalse.

Default:True

'Period'

N-by-1vector of the number of premiums per year of the CDS. Allowed values are 1, 2, 3, 4, 6, and 12.

Default:4

'RecoveryRate'

N-by-1vector of recovery rates, expressed as a decimal from0to1.

Default:0.4

'ZeroBasis'

Basis of the zero curve. Choices are identical toBasis.

Default:0(actual/actual)

'ZeroCompounding'

Compounding frequency of the zero curve. Allowed values are:

  • 1 — Annual compounding

  • 2 — Semiannual compounding

  • 3 — Compounding three times per year

  • 4 — Quarterly compounding

  • 6 — Bimonthly compounding

  • 12 — Monthly compounding

  • −1 — Continuous compounding

Note

WhenZeroDatais anIRDataCurveobject, the argumentsZeroCompoundingandZeroBasisare implicit inZeroDataand are redundant inside this function. In that case, specify these optional arguments when constructing theIRDataCurveobject before calling this function.

Default:2(Semiannual compounding)

Output Arguments

Payer

N-by-1vector of prices for payer swap options inBasispoints.

Receiver

N-by-1vector of prices for receiver swap options inBasispoints.

Examples

collapse all

Usecdsoptpriceto generatePayerandReceivervalues for a credit default swap option.

Settle = datenum('12-Jun-2012');选项Maturity = datenum('20-Sep-2012');CDSMaturity = datenum('20-Sep-2017');选项Strike = 200; SpreadVolatility = .4; Zero_Time = [.5 1 2 3 4 5]'; Zero_Rate = [.5 .75 1.5 1.7 1.9 2.2]'/100; Zero_Dates = daysadd(Settle,360*Zero_Time,1); ZeroData = [Zero_Dates Zero_Rate]; Market_Time = [1 2 3 5 7 10]'; Market_Rate = [100 120 145 220 245 270]'; Market_Dates = daysadd(Settle,360*Market_Time,1); MarketData = [Market_Dates Market_Rate]; ProbData = cdsbootstrap(ZeroData, MarketData, Settle); [Payer,Receiver] = cdsoptprice(ZeroData, ProbData, Settle,...选项Maturity, CDSMaturity, OptionStrike, SpreadVolatility)
Payer = 223.5780
Receiver = 22.7460

More About

collapse all

Credit Default Swap Option

A credit default swap (CDS) option, or credit default swaption, is a contract that provides the option holder with the right, but not the obligation, to enter into a credit default swap in the future.

CDS options can either be payer swaptions or receiver swaptions. In a payer swaption, the option holder has the right to enter into a CDS in which they are paying premiums and in a receiver swaption, the option holder is receiving premiums.

Algorithms

The payer and receiver credit default swap options are computed using the Black's model as described in O'Kane [1]:

V P a y ( K n o c k o u t ) = R P V 01 ( t , t E , T ) ( F Φ ( d 1 ) K Φ ( d 2 ) )

V R e c ( K n o c k o u t ) = R P V 01 ( t , t E , T ) ( K Φ ( d 2 ) F Φ ( d 1 ) )

d 1 = ln ( F K ) + 1 2 σ 2 ( t E t ) σ t E t

d 2 = d 1 σ t E t

V P a y ( N o n K n o c k o u t ) = V P a y ( K n o c k o u t ) + F E P

V P a y ( N o n K n o c k o u t ) = V R e c ( K n o c k o u t )

where

RPV01is the risky present value of a basis point (seecdsrpv01).

Φis the normal cumulative distribution function.

σis the spread volatility.

tis the valuation date.

tEis the option expiry date.

Tis the CDS maturity date.

Fis the forward spread (from option expiry to CDS maturity).

Kis the strike spread.

FEPis the front-end protection (from option initiation to option expiry).

References

[1] O'Kane, D.Modelling Single-name and Multi-name Credit Derivatives.Wiley, 2008, pp. 156–169.

Introduced in R2011a