| Contents | Index |
[Price, AccPrem, PaymentDates, PaymentTimes,
PaymentCF]
= cdsprice(ZeroData, ProbData, Settle,
Maturity,
ContractSpread)
[Price, AccPrem, PaymentDates, PaymentTimes,
PaymentCF]
= cdsprice(ZeroData, ProbData,
Settle, Maturity,
ContractSpread, Name,Value)
[Price, AccPrem, PaymentDates, PaymentTimes, PaymentCF] = cdsprice(ZeroData, ProbData, Settle, Maturity, ContractSpread) computes the price, or the mark-to-market value for CDS instruments.
[Price, AccPrem, PaymentDates, PaymentTimes, PaymentCF] = cdsprice(ZeroData, ProbData, Settle, Maturity, ContractSpread, Name,Value) computes the price, or the mark-to-market value for CDS instruments with additional options specified by one or more Name,Value pair arguments.
Specify optional comma-separated pairs of Name,Value arguments, where Name is the argument name and Value is the corresponding value. Name must appear inside single quotes (' '). You can specify several name and value pair arguments in any order as Name1,Value1,...,NameN,ValueN.
Note Any optional input of size N-by-1 is also acceptable as an array of size 1-by-N, or as a single value applicable to all contracts. Single values are internally expanded to an array of size N-by-1. |
'Basis' |
N-by-1 vector of day-count basis of the CDS:
For more information, see basis. Default: 2 (actual/360) | |
'BusDayConvention' |
String or N-by-1 cell array of strings of business day conventions. Values are:
Default: actual | |
'Notional' |
N-by-1 vector of contract notional values. Use positive values for long positions and negative values for short positions. Default: 10MM | |
'PayAccruedPremium' |
N-by-1 vector of Boolean flags. True, if accrued premiums are paid upon default, False otherwise. Default: True | |
'Period' |
N-by-1 vector of number of premiums per year of the CDS. Allowed values are 1, 2, 3, 4, 6, and 12. Default: 4 | |
'RecoveryRate' |
N-by-1 vector of recovery rates, expressed as a decimal from 0 to 1. Default: 0.4 | |
'TimeStep' |
Positive integer indicating the number of days to take as time step for the numerical integration. Default: 10 (days) | |
'ZeroBasis' |
Basis of the zero curve, where the choices are identical to Basis. Default: 0 (actual/actual) | |
'ZeroCompounding' |
Compounding frequency of the zero curve. Allowed values are:
Default: 2 (Semiannual compounding) |
The price or mark-to-market (MtM) value of an existing CDS contract is computed using the following formula:
CDS price = Notional * (Current Spread - Contract Spread) * RPV01
Current Spread is the current breakeven spread for a similar contract, according to current market conditions. RPV01 is the 'risky present value of a basis point,' the present value of the premium payments, taking into consideration the default probability. This formula assumes a long position, and the right side is multiplied by -1 for short positions.
Use cdsprice to compute the clean price for a CDS contract:
Settle = '17-Jul-2009'; Zero_Time = [.5 1 2 3 4 5]'; Zero_Rate = [1.35 1.43 1.9 2.47 2.936 3.311]'/100; Zero_Dates = daysadd(Settle,360*Zero_Time,1); ZeroData = [Zero_Dates Zero_Rate]; ProbData = [daysadd(datenum(Settle),360,1), 0.0247]; Maturity = '20-Sep-2010'; ContractSpread = 135; [Price,AccPrem] = cdsprice(ZeroData,ProbData,Settle,Maturity,ContractSpread); CleanPrice = Price - AccPrem CleanPrice = 4.9381e+003
The premium leg is computed as the product of a spread S and the risky present value of a basis point (RPV01). The RPV01 is given by:
![]()
when no accrued premiums are paid upon default, and it can be approximated by
![]()
when accrued premiums are paid upon default. Here, t0 = 0 is the valuation date, and t1,...,tn = T are the premium payment dates over the life of the contract,T is the maturity of the contract, Z(t) is the discount factor for a payment received at time t, and Δ(tj-1, tj, B) is a day count between dates tj-1 and tj corresponding to a basis B.
The protection leg of a CDS contract is given by the following formula:
![]()
![]()
![]()
where the integral is approximated with a finite sum over the discretization τ0 = 0,τ1,...,τM = T.
If the spread of an existing CDS contract is SC, and the current breakeven spread for a comparable contract is S0, the current price, or mark-to-market value of the contract is given by:
MtM = Notional (S0 –SC )RPV01
This assumes a long position from the protection standpoint (protection was bought). For short positions, the sign is reversed.
Beumee, J., D. Brigo, D. Schiemert, and G. Stoyle. "Charting a Course Through the CDS Big Bang," Fitch Solutions, Quantitative Research, Global Special Report. April 7, 2009.
Hull, J., and A. White, "Valuing Credit Default Swaps I: No Counterparty Default Risk," Journal of Derivatives 8, 29-40.
O'Kane, D. and S. Turnbull, "Valuation of Credit Default Swaps." Lehman Brothers, Fixed Income Quantitative Credit Research, April, 2003.
View demos and recorded presentations led by industry experts.
Now On Demand
Network with industry peers and learn the latest applications of the leading software product for computational finance.
| © 1984-2012- The MathWorks, Inc. - Site Help - Patents - Trademarks - Privacy Policy - Preventing Piracy - RSS |