Workflow to Price a Credit Derivative Instrument
Price and analyze a credit default swap. For more information on the supported credit derivative instruments, see Choose Instruments, Models, and Pricers.
Price CDS
Instrument Using Default Probability Curve and Credit
Pricer
This example shows the workflow to price a CDS
instrument when you use a defprobcurve
model and a Credit
pricing method.
Create CDS
Instrument Object
Use fininstrument
to create a CDS
instrument object.
CDS = fininstrument("CDS",'Maturity',datetime(2021,9,15),'ContractSpread',15,'Notional',20000,'Period',4,'Basis',3,'BusinessDayConvention',"follow",'Name',"CDS_instrument")
CDS = CDS with properties: ContractSpread: 15 Maturity: 15-Sep-2021 Period: 4 Basis: 3 RecoveryRate: 0.4000 BusinessDayConvention: "follow" Holidays: NaT PayAccruedPremium: 1 Notional: 20000 Name: "CDS_instrument"
Create defprobcurve
Object
Create a defprobcurve
object using defprobcurve
.
Settle = datetime(2020,9,20);
DefProbTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])];
DefaultProbabilities = [0.005 0.007 0.01 0.015 0.026 0.04 0.077 0.093 0.15 0.20]';
ProbDates = Settle + DefProbTimes;
DefaultProbCurve = defprobcurve(Settle,ProbDates,DefaultProbabilities,'Basis',5)
DefaultProbCurve = defprobcurve with properties: Settle: 20-Sep-2020 Basis: 5 Dates: [10x1 datetime] DefaultProbabilities: [10x1 double]
Create ratecurve
Object
Create a ratecurve
object using ratecurve
.
Settle = datetime(2020,9,15); Type = 'zero'; ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]'; ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]'; ZeroDates = Settle + ZeroTimes; myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = ratecurve with properties: Type: "zero" Compounding: -1 Basis: 0 Dates: [10x1 datetime] Rates: [10x1 double] Settle: 15-Sep-2020 InterpMethod: "linear" ShortExtrapMethod: "next" LongExtrapMethod: "previous"
Create Credit
Pricer Object
Use finpricer
to create a Credit
pricer object and use the ratecurve
object for the 'DiscountCurve'
name-value pair argument.
outPricer = finpricer("credit",'DefaultProbabilityCurve',DefaultProbCurve,'DiscountCurve',myRC)
outPricer = Credit with properties: DiscountCurve: [1x1 ratecurve] TimeStep: 10 DefaultProbabilityCurve: [1x1 defprobcurve]
Price CDS
Instrument
Use price
to compute the price for the CDS
instrument.
Price = price(outPricer,CDS)
Price = 52.7426
See Also
fininstrument
| finmodel
| finpricer