Documentation

This is machine translation

Translated by Microsoft
Mouseover text to see original. Click the button below to return to the English verison of the page.

Note: This page has been translated by MathWorks. Please click here
To view all translated materals including this page, select Japan from the country navigator on the bottom of this page.

cdsspread

Determine spread of credit default swap

Syntax

[Spread,PaymentDates,PaymentTimes,] = cdsspread(ZeroData,ProbData,Settle,Maturity,)
[Spread,PaymentDates,PaymentTimes,] = cdsspread(___,Name,Value)

Description

example

[Spread,PaymentDates,PaymentTimes,] = cdsspread(ZeroData,ProbData,Settle,Maturity,) computes the spread of the CDS.

example

[Spread,PaymentDates,PaymentTimes,] = cdsspread(___,Name,Value) adds optional name-value pair arguments.

Examples

collapse all

This example shows how to use cdsspread to compute the spread (in basis points) for a CDS contract with the following data.

Settle = '17-Jul-2009'; % valuation date for the CDS
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';

Spread = cdsspread(ZeroData,ProbData,Settle,Maturity)
Spread = 148.2705

Input Arguments

collapse all

Zero rate data, specified as a M-by-2 vector of dates and zero rates or an IRDataCurve object of zero rates.

When ZeroData is an IRDataCurve object, ZeroCompounding and ZeroBasis are implicit in ZeroData and are redundant inside this function. In this case, specify these optional parameters when constructing the IRDataCurve object before using the cdsspread function.

For more information on an IRDataCurve object, see Creating an IRDataCurve Object (Financial Instruments Toolbox).

Data Types: double | struct

Default probability values, specified as a P-by-2 matrix with dates and corresponding cumulative default probability values.

Data Types: double | char

Settlement date, specified as a N-by-1 vector of serial date numbers or date character vectors. The Settle date must be earlier than or equal to the dates in Maturity.

Data Types: double | char

Maturity date, specified as a N-by-1 vector of serial date numbers or date character vectors.

Data Types: double | char

Name-Value Pair Arguments

Specify optional comma-separated pairs of Name,Value arguments. 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.

Example: Spread = cdsspread(ZeroData,ProbData,Settle,Maturity,'Basis',7,'BusDayConvention','previous')

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.

collapse all

Recovery rate, specified as a N-by-1 vector of recovery rates, specified as a decimal from 0 to 1.

Data Types: double

Premium payment frequency, specified as a N-by-1 vector with values of 1, 2, 3, 4, 6, or 12.

Data Types: double

Day-count basis of the contract, specified as a positive integer using a NINST-by-1 vector.

  • 0 = actual/actual

  • 1 = 30/360 (SIA)

  • 2 = actual/360

  • 3 = actual/365

  • 4 = 30/360 (PSA)

  • 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, see basis.

Data Types: double

Business day conventions, specified by a character vector. 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 (for example, 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.

Data Types: char

Flag for accrued premiums paid upon default, specified as a N-by-1 vector of Boolean flags that is true (default) if accrued premiums are paid upon default, false otherwise.

Data Types: logical

Number of days to take as time step for the numerical integration, specified as a nonnegative integer.

Data Types: double

Compounding frequency of the zero curve, specified using values:

  • 1 — Annual compounding

  • 2 — Semiannual compounding

  • 3 — Compounding three times per year

  • 4 — Quarterly compounding

  • 6 — Bimonthly compounding

  • 12 — Monthly compounding

  • −1 — Continuous compounding

Data Types: double

Basis of the zero curve, where the choices are identical to Basis.

Data Types: double

Output Arguments

collapse all

Spreads (in basis points), returned as a N-by-1 vector.

Payment dates, returned as a N-by-numCF matrix.

Payment times, returned as a N-by-numCF matrix of accrual fractions.

More About

collapse all

CDS Spread

The market, or breakeven, spread value of a CDS.

The CDS spread can be computed by equating the value of the protection leg with the value of the premium leg:

Market Spread * RPV01 = Value of Protection Leg

The left side corresponds to the value of the premium leg, and this has been decomposed as the product of the market or breakeven spread times the RPV01 or 'risky present value of a basis point' of the contract. The latter is the present value of the premium payments, considering the default probability. The Market Spread can be computed as the ratio of the value of the protection leg, to the RPV01 of the contract. cdsspread returns the resulting spread in basis points.

Algorithms

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:

RPV01=j=1NZ(tj)Δ(tj1,tj,B)Q(tj)

when no accrued premiums are paid upon default, and it can be approximated by

RPV0112j=1NZ(tj)Δ(tj1,tj,B)(Q(tj1)+Q(tj))

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:

ProtectionLeg=0TZ(τ)(1R)dPD(τ)

(1R)i=1MZ(τi)(PD(τi)PD(τi1))

=(1R)i=1MZ(τi)(Q(τi1)Q(τi))

where the integral is approximated with a finite sum over the discretization τ0 = 0,τ1,...,τM = T.

A breakeven spread S0 makes the value of the premium and protection legs equal. It follows that:

S0=ProtectionLegRPV01

References

[1] 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.

[2] Hull, J., and A. White. “Valuing Credit Default Swaps I: No Counterparty Default Risk.” Journal of Derivatives. Vol. 8, pp. 29–40.

[3] O'Kane, D. and S. Turnbull. “Valuation of Credit Default Swaps.” Lehman Brothers, Fixed Income Quantitative Credit Research, April 2003.

Introduced in R2010b

Was this topic helpful?