A basket default swap is similar to a single entity default
swap except that the underlying is a basket of entities rather than one single entity. There are several types of basket default
swaps. The popular ones are first-to-default,
nth-to-default, n-out-of-m-to-default and all-to-default swaps. With a single entity, a credit event is
usually a default of the entity (see the Credit Default Swaps FINCAD Math Reference document for
details). With a first-to-default swap,
a credit event occurs the first time any of the entities defaults. Such a swap will provide default protection
against losses related to this first default. A similar definition holds for an
nth-to-default swap. An n-out-of-m-to-default swap protects the buyer against
losses related to the first n defaults of the m-entity basket. Similarly, an all-to-default swap protects
against losses resulting from credit events of any of the entities in the
basket.
For a first-to-default default swap, whenever an entity in
the reference basket defaults, the buyer stops paying the swap’s premium and receives
from the seller the difference of the principal amount of the defaulted entity and
the recovered value. If the swap’s
counterparty defaults, premium payments will stop and both the buyer and the
seller walk away from the contract. For
an nth-to-default swap whenever the nth default occurs in the reference basket,
the buyer stops paying the premium and receives the difference of the principal
amount of the latest (nth) defaulted entity and the recovered value. Note that the premium does not stop until the
nth default as long as the counterparty does not default, even if there are
already defaults in the basket. For an
n-out-of-m-to-default swap the seller pays the difference of the principal
amount and the recovered value for each of the first n defaults and the buyer
stops paying the premium after the nth default occurs. For an all-to-default swap the buyer continues
paying the premium as long as there are undefaulted entities in the basket and
the counterparty does not default, and receives from the seller any lost
principal amount of the basket.
FINCAD provides functions for valuing basket default swaps
with correlated or independent defaults. These functions can also handle counterparty
default risk. One basic assumption is
that no two entities can default at exactly the same time. This is equivalent to saying that the credit
index correlation matrix (see below) of the reference entities must be positive
definite, or in other words, perfect correlation is not allowed.
If first-to-default probabilities are known, then the
default probability of a basket of entities is simply the sum of the
first-to-default probabilities of the individual entities in the basket. From this one can easily calculate the fair
value of the premium payments of a basket default swap: the value of the swap’s payoff is the sum of
the payoffs of all the individual entities. The value of the payoff of each entity in the
basket can be calculated as for a single entity swap, with its default
probability being that the entity defaults before any other entity, including
the counterparty, defaults.
For an nth-to-default swap similar arguments also hold. For the premium calculation the probability
curve used to calculate the premium must be the probability curve that either
exactly n entities default or the counterparty defaults. For the payoff valuation, if the protection is
only for the nth entity in the basket only the payoff value of the nth
defaulted entity needs to be calculated. On the other hand, if the protection is for
the first n defaults, the payoff of the swap is the sum of the payoffs of the n
defaulted entities.
The valuation of a basket default swap then comes down to
the calculation of relevant default probabilities. If defaults of the reference entities are
independent, a closed-form formula for such probabilities can be derived. If defaults of the reference entities are not
independent, then the calculation of first-to-default or nth-to-default
probabilities are more difficult. Generally,
closed-form formulae are not available and
1.
DVOX on all credit spread curves
of the entities in the reference pool
This statistic is an output of a fair value
calculation function, e.g., aaCDS_bskt.
It is defined as the change in the fair value per basis point shift in
all the par CDS spread curves of the entities in the reference pool. In more
detail, let
be the fair value of a CDS. For every entity in the reference pool, add
basis points to its
default curve (if it is a default probability curve, derive a par spread curve
first) and build a new default curve.
Then combine these default curves together to form a basket default
curve and at last use this basket default curve as an input to revalue the
CDS. Let
be the new fair value. The DVOX is then calculated as follows:
2.
DVOX on a single reference
entity
This statistic is calculated in functions, e.g., aaCDS_bskt_risk,
that calculate risk statistics exclusively.
It is defined similarly as above, but only the default curve of the
specified entity is shifted basis point.
1.
This statistic is calculated in a fair value
calculation function. It is the change
in the fair value of a CDS per 1% change in the recovery rate. In more detail, let be the fair value of
the CDS when the entity’s recovery rate is
. Then:
If the recovery rates of the reference entities differ,
the recovery in the above formula should be replaced with a
recovery rate vector and to bump it we simply add 0.01 to every component of
the vector.
2.
This statistic is calculated in functions that calculate
risk statistics only. It is defined
similarly as above, but only the recovery rate of the specified entity is
bumped 1%.
1.
This statistic is an output of functions that take in
a correlation matrix and calculate fair values. It is the change in the fair value of a CDS
per 1% change in the correlation. In
more detail, let be the fair value of
the CDS with correlation matrix
. Then:
where is the correlation
matrix getting from
by shifting all
correlations up with 0.01.
2.
The rho of correlation on an
entity pair
This statistic is calculated in functions that
calculate risk statistics only. It is
defined similarly as above, but only the correlation of the specified entity
pair is shifted 0.01.
The theta of a CDS is the change in the fair value of
the CDS per one day increase of the valuation date. Let be the fair value of
the CDS. Then:
The BPV (basis point value) of a risk free discount
factor curve is the change in the fair value of a CDS when the risk-free
discount factor curve is shifted up one basis point. To shift up a discount factor curve simply add
one basis point to every point of the corresponding spot rate curve of the
discount factor curve.
Note. The above risk statistics for a binary CDS
can be defined similarly, just by replacing CDS with binary CDS in the above
definitions.
aaCDS_bskt(d_v,
contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc,d_ rul, pr_fix,
ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt, intrp_tb, hl, dfstd,
intrp, pos, calc, stat)
Calculates the fair value, payoff and premium values and
other statistics of a basket credit default swap. The defaults of the reference entities can be
independent or correlated. Also the
default estimation data can be par CDS spread curves or default probability
curves.
aaCDS_bskt_is(d_v,
contra_d, rank, protect, princ_pr, freq_pr, pr_acc_type, acc,d_ rul, pr_fix,
ref_type, ref_bskt, corrs, m_corr, p_off, cds_p, dp_type, dp_bskt, intrp_tb,
hl, dfstd, intrp, pos, calc, stat)
Calculates the
implied spread of a basket credit default swap given a price.
aaCDS_bskt_if(d_v,
contra_d, cds_sprd, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type,
acc,d_ rul, pr_fix, ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt,
intrp_tb, hl, dfstd, intrp, pos, calc, stat)
Calculates the
implied upfront percentage payment of a basket credit default swap given a par
CDS spread.
aaCDS_bskt_bin(d_v,
contra_d, rank, protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul,
prem_fix_tbl, corrs, m_corr, p_off, cash_rate, dp_type, dp_bskt, intrp_tb, hl, dfstd,
intrp, pos, calc, stat)
Calculates the fair value, payoff and premium values and
other statistics of a binary basket credit default swap. The defaults of the reference entities can be
independent or correlated. Also the
default estimation data can be par CDS spread curves or default probability
curves.
aaCDS_bskt_risk(d_v,
contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, pr_fix,
ref_type, ref_bskt, corrs, m_corr, p_off, dp_type, dp_bskt, intrp_tb, hl, dfstd,
intrp, pos, calc, out_type, asset_list)
Calculates the credit spread, recovery rate and
correlation sensitivities of an nth-to-default or n-out-of-m-to-default basket
credit default swap.
aaCDS_bskt_bin_risk(d_v,
contra_d, rank, protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul,
prem_fix_tbl, corrs, m_corr, p_off, cash_rate, dp_type, dp_bskt, intrp_tb, hl, dfstd,
intrp, pos, calc, out_type, asset_list)
Calculates the credit spread, recovery rate and
correlation sensitivities of a first-to-default binary basket credit default
swap.
aaCDS2_bskt_prem_cf(d_v,
contra_d, rank, protect, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, pr_fix,
recs, corrs, m_corr, dp_type, dp_bskt, intrp_tb, hl, dfstd, intrp, pos, calc, table_type)
Calculates the expected premium cash flows of a basket
credit default swap.
To value
basket default swaps on baskets with independent defaults, simply set
the correlation matrix corrs to be a single-element array with a value of 0.
aaCredit_DSwap_bskt_fs_sep_ind(d_v,
contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl,
loan_pbskt, acc_fs, payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv_std,
intrp, position, calc_type, stat))
Calculates the fair value and other statistics of a
first-to-default swap on a basket of free-style bonds (having separated coupon
and principal structures)) with independent defaults.
aaCredit_DSwap_bskt_fs_sep_MC(d_v,
contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl,
loan_pbskt, acc_fs, corr_mat_ent4, meth_corr, payoff_type, prob_bskt, intrp_prob,
recov_tbl, hl, df_crv_std, intrp, position, calc_type, mc_trial, stat)
Calculates by
aaCredit_DSwap_bskt_fs_sep_rnk_ind(d_v,
contra_d, rank, bskt_protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc,
d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, payoff_type, prob_bskt, intrp_prob,
recov_tbl, hl, df_crv_std, intrp, position, calc_type, stat)
Calculates the fair value and other statistics of an
nth-to-default or n-out-of-m-defaults default swap on a basket of free-style
bonds (with separated coupon and principal structures) with independent
defaults.
aaCredit_DSwap_bskt_fs_sep_rnk_MC(d_v,
contra_d, rank, bskt_protect_type, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc,
d_rul, prem_fix_tbl, cpn_bskt_tbl, loan_pbskt, acc_fs, corr_mat_ent4, meth_corr,
payoff_type, prob_bskt, intrp_prob, recov_tbl, hl, df_crv, intrp, position, calc_type,
mc_trial, stat)
Calculates by
aaCredit_DSwap_bskt_fs_sep_all_MC(d_v,
contra_d, princ_pr, cpn_pr, freq_pr, pr_acc_type, acc, d_rul, prem_fix_tbl, cpn_bskt_tbl,
loan_pbskt, acc_fs, corr_mat_ent4, meth_corr, payoff_type, prob_bskt, intrp_prob,
recov_tbl, hl, df_crv_std, intrp, position, calc_type, mc_trial, stat)
Calculates by
aaCredit_DSwap_bskt_ind_fs(d_v
,d_t, acc_time, prem_tbl, prem_fix_tbl, probordensity, prob_crv_bskt,
loan_bskt_tbl, recover_tbl, yield_riskfree)
Calculates the fair value of a first-to-default swap with
custom-structured premium payments on a basket of free-style bonds with
independent defaults.
aaCredit_DSwap_bskt_fs_MC(d_v
,d_t, acc_time, princ_prem, cpn_prem, freq_prem, d_rul, probordensity,
prob_crv_bskt, loan_bskt_tbl, recover_tbl, corr_mat_ent4, hl, yield_riskfree,
num_rnd)
Calculates by
Note: For the last two functions there are
corresponding functions that take in a discount factor curve instead of a
yield.
aaCredit*
Input Argument |
Description |
d_v |
Valuation date |
contra_d |
It is a table of default swap date(s). It can be a 1-, 2-, 3-, or 4-entry table. The 4 entries hold in sequence the maturity
date, effective date, first coupon date and next to last coupon date for
premium payments. Only one entry, the
maturity date, is required. If an entry is not available, it can be set to 0
or be ignored. |
princ_pr |
Notional principal amount |
cpn_pr |
Premium payment rate |
freq_pr |
Premium payment frequency - a switch |
pr_acc_type |
Type of premium accrued interest payments. 1 = pay accrued interest of premium at default, 2 = pay no accrued interest of premium at default |
acc |
Accrual method of premium |
d_rul |
Business date convention for premium payment - a switch |
prem_fix_tbl |
Fixed premium table. It is a two-column table: (date, premium). Premium paid prior to (not equal to) the
value date or after (not equal to) the maturity date is ignored. This table can hold any fixed premium
payments additional to the premium coupons. |
bond_cdsbskt |
Bond data table. An
eleven column table (bond principal, recovery rate, bond maturity, other bond
inputs coupon, frequency, other bond inputs). See aaBond3
for input details. |
bond_cdsbskt |
Bond data table. It
can be a 10-. 11-, or 12-column table. The first 9 columns are bond data and the
others are recovery data. If it has 10
columns, the last column has the recovery rate for both principal and coupon
of a bond. If it has 11 or 12 columns,
the 10th and 11th columns have principal and coupon recovery rates. |
payoff_type |
Type of settlement time - a switch. 1 = payment to the CDS buyer is made at the time of
default, 2 = payment to the CDS buyer is made at the default swap's
termination. |
prob_bskt |
A basket default probability curve of an m name basket and
a counterparty. It can be an m+1 or
m+2 column table. The first column can
be time in years (>=0 and <1000), or dates (>=1000) and the (i+1)th
column (i=1,...,m) the default probabilities of the ith entity. The (m+1)th column has the counterparty
default probabilities. Time and date
must be increasing and probability must be non-decreasing and between 0 and
1. If the first column is time in years, the time accrual method (default =
30/360) can be put in the first row of the (m+2)th column. For a date- based curve, the probabilities
in the first row must be 0 and the first date must be equal to a valuation
date if there is one. Excel users may
pass term strings to represent time intervals. Term strings must be in the format kB, kD,
kW, kM, or kY where k is an integer and B, D, W, M and Y stands for market
day, calendar day, week, month and year respectively, e.g., 3M = 3 months. |
prob_crv_bskt |
Similar to the description of prob_bskt, except that it
may be a density curve for which density values must be nonnegative and the
integration of a density curve cannot exceed 1. |
intrp_prob |
Interpolation method of a probability curve, a switch: 1 = linear, 2 = exponential. For both interpolation methods, if the default probability
curve is not long enough, the exponential extrapolation method is always used
to extend the curve. |
rate_recover |
Expected recovery rate table. It can be of 4 types: 1.
a one-entry table which has the recovery rate
for both principal and coupon. 2. a
two-entry table, which has the recovery, rates for principal (the first one)
and coupon respectively. 3. a
three-column table which is a time-dependent recovery rate table for
principal and coupon. The first column has time in years. 4. a
four-column table which is similar to a three-column table except that the
entry in the first row of the fourth column holds the delay time for the
recovery payment. |
hl |
A holiday list |
df_crv_std |
Risk-free discounting factor curve or a risk-free yield. If it is a risk-free yield table, it can be
a one entry table of a yield value (annual, actual/365), or a two entry table
of yield and compounding frequency or a three entry of yield, a compounding
frequency and an accrual method. |
intrp |
Interpolation method |
position |
Trading position - a switch: 1 = pay premium, 2 = receive premium. |
calc_type |
Type of calculation method - a switch. Generally, it has 4 values. They represent
different integration methods for calculating values of premiums and payoffs.
There are four selections: 1 = simplified calculation method; 2 = extended trapezoidal, 3 = Simpson's rule, 4 = extended Simpson's rule. In the functions aaCredit_DS and aaCredit_DS_SPV01,
only the method 1 is implemented. For
all other functions that have this parameter all the four methods are
available. See more details at the
last section of this document. |
corr_mat_ent4 |
An N by N credit index correlation matrix. A correlation matrix must be symmetric and
positive definite. Only the entries in
the upper triangle are used in calculation. |
meth_corr |
Method of handling credit correlation, a switch; 1 = use a credit index process, 2 = use a normal copula |
mc_trial |
Parameter table of |
stat |
Statistics. Any
subset of {1,2,…,11} |
cash_rate |
Cash payment per one unit of notional principal |
rank |
The default rank, i.e., the number n in an nth-to-default
swap. |
cpn_bskt_tbl, loan_bskt_tbl |
Free-style bond coupon basket table. A five-column table (entity ID, effective
date, terminating date, notional, rate). |
loan_pbskt |
Free-style bond fixed payment basket table. A three-column table (entity ID, date,
amount). |
acc_fs |
Accrual method(s) of a free-style bond. If it has only one entry, both future coupon
payments and accrued interests have the same accrual method; otherwise they
are the first and second entries of the table, respectively. |
recov_tbl, recover_tbl |
A recovery rate table for a default swap on a basket of
free-style bonds. It can be a two-, or
three- or four-column table. The first
column has IDs of the entities. If it
is a two column table, both the principal and the coupon have the same
recovery rate (>=0 and <=1) in the second column. Otherwise, the second column has the
principal recovery rate and the third coupon recovery rate. The fourth column can hold the recovery
delay time (in years) after default. |
acc_time |
Time accrual method, used in the functions with
custom-structured premium payments only |
yield_riskfree |
Annualized risk-free yield |
num_rnd |
Number of random trials. If it is a decimal number, a fixed seed is
used; otherwise a random seed is used. |
aaCDS*
Input Argument |
Description |
d_v |
Valuation date |
contra_d |
The array contra_d is a table of default swap date(s). It can have 2 to 7entries. The first four entries hold in sequence the
terminating date, effective date, odd first coupon date and next-to-terminating
coupon date for premium payments. The
last three entries hold switch values in sequence the effective date
adjustment, terminating date adjustment and date generation method for
premium payments. Only the terminating
date and effective date are required. The
third entry and fourth entry will default to 0 and the last three entries
will default to 1 (adjust effective date, adjust terminating date, backward
date generation). Note that for most
default swaps in the market, the effective date and terminating date are not
adjusted and the premium cash flow dates are IMM dates. For this case, simply set both the
effective date and terminating date adjustment methods (the 5th
and 6th entries in the table) to 2 (no adjustment) and the date
generation method (the 7th entry in the table) to 3 (IMM date
generation method). |
rank |
Default rank, i.e., the number n in an nth-to-default
swap. The two switches Default Rank
and Basket Default Type together handle the two types of basket CDSs:
nth-to-default CDSs and n-out-of-m default CDSs. ·
For a first-to-default CDS set Default Rank =
1 and Basket Default Type = 1. ·
For an nth-to-default CDS, set Default Rank =
n and Basket Default Type = 1. ·
For an n-out-of-m default CDS set Default Rank
= n and Basket Default Type = 2, where m is the number of entities in the
basket. ·
For an all-to-default CDS, set Default Rank =
the number of entities in the basket and Basket Default Type = 2. |
protect |
Basket protection type |
princ_pr |
Premium notional principal |
cpn_pr |
Premium coupon rate |
freq_pr |
Premium payment frequency |
pr_acc_type |
Type of premium accrued interest payment – a switch: 1 = pay accrued interest upon default, 2 = pay no accrued interest upon default |
acc |
Accrual method |
d_rul |
Business day convention |
pr_fix |
An upfront fee and fixed premium table. It can be a single-element array or a
two-column table. If it is a single
element array, it is the upfront fee (the upfront payment per one unit of
notional). If it is a two column
table, it can store an upfront fee and fixed premium payments. If the element in the first row and first
column, pr_fix(1,1), <= 1000, it is an upfront fee. Otherwise, the first row has a fixed premium
payment: (date, premium amount). All
other rows always have fixed premiums. Note that an upfront fee must be >=0 and
<=1 and premium payment dates must be increasing. |
ref_type |
Type of references – a switch: 1 = name (notional), 2 = bond (a level coupon bond) |
ref_bskt |
Reference basket table. If the reference type ref_type =1, it is a two-column
table (notional, recovery rate) as shown in the following examples. If the reference type ref_type =2, it has
the details of a bond. It can be a 10-
or 11-entry table. The first 10
entries are (principal, maturity, dated date, first coupon date, next-to-last
coupon date, coupon, frequency, accrual method, business day convention,
recovery rate). See aaBond3
for their definitions. If it has 10
entries only, the last entry has the recovery rate for both principal and
coupon of the bond. If it has 11
entries, the 10th and 11th entries have principal and coupon recovery rates
respectively. |
recs |
Recovery rate table. It is an array of a recovery rates. It is
used only if the input default curve is a par CDS spread curve (dp_type=1). |
corrs |
A correlation matrix can be a single element or a full
correlation matrix. For the first
case, each pair of the entities in the basket has the same credit correlation
and the correlation between the entities and the counterparty is also the
same. If the correlation of a
reference credit and the counterparty is different from the correlation
between the reference entities, the correlation matrix can be a two-entry
array with its first and second entries storing these two correlations,
respectively. |
Corrs (binary CDS) |
A correlation matrix can be a single element or a full
correlation matrix. For the first
case, there should be a number on the second column that indicates the number
of entities. Also If the correlation
of a reference credit and the counterparty is different from the correlation
between the reference credits, it can be put in the third column. |
m_corr |
Method of handling credit correlation – a switch: 1 = normal credit index process, 2 = normal copula |
p_off |
Payoff type – a switch: 1 = pay at default, 2 = pay at maturity |
cash_rate |
payoff rate (cash payment per one unit of notional
principal) |
dp_type |
Default curve type – a switch: 1 = par CDS spread curve, 2 = default probability curve |
dp_bskt |
A default curve, either a CDS spread or a default
probability curve, can be time-based (values in the first column >0 and
<1000) or date-based (values in the first column >=1000). The first one
or two columns have time or date points.
If it is a default probability curve or a time-based CDS spread curve,
the first column has time (in years) or dates. If it is a date-based CDS spread curve,
the first two columns have the effective and terminating dates of the CDS
spreads. The next m +1 columns hold
CDS spreads or default probabilities, where m is the number of reference
entities. The last column has the
default data of the counterparty. If a
credit reference data table exists, the columns of the CDS spreads or default
probabilities must be in the same order as the reference credits in the reference
data table. Times and dates (the
terminating dates for a CDS spread curve) must be increasing. For a time-based curve, the time-accrual
method (day-count convention) can be stored in the third entry of the table
intrp_tb (see note 429). Probabilities
must be nonnegative, <=1 and nondecreasing. CDS spreads must be nonnegative. For a date-based default probability curve,
the probabilities in the first row must be 0 and the first date must be the
valuation date if there is one. Excel
users may pass term strings to represent time intervals. Term strings must be in the format kB, kD,
kW, kM, or kY where k is an integer and B, D, W, M and Y stands for market
day, calendar day, week, month and year respectively, e.g., 3M = 3 months. |
intrp_tb |
A default curve parameter table. The array intrp_tb can have one to six
entries. The first entry has the
default probability curve interpolation method. The second entry has the default probability
curve bootstrapping method (see switch sw_1040 in aaCredit_DfltProb_DSSprd2).
It is used only if the default curve
type is "par CDS spread curve" (dp_type =1). If this entry is missing and dp_type=1, the
bootstrapping method will be set to method 1 (assuming constant default density).
The third entry stores the time
accrual (day counting) method if the default curve is time-based. If this entry is missing and the default
curve is time-based, the time accrual method will be set to 30/360. If the default curve is not time based, this
entry will be ignored. The fourth to
sixth entries store the effective and terminating date adjustment methods and
the date generation method of a CDS curve, respectively. These entries are used only when dp_type =
1. Their default values are 1. |
hl |
holiday list |
dfstd |
Risk free discount factor curve. The discount factor curve may be input as a
2-column, multi-row table (col 1 = date, col 2 = discount factor), or as a
single cell containing a rate. If
input as a single rate, there are three format choices: 1.
a rate (1 row, 1 column); or 2. a
rate and a rate quotation basis (1 row, 2 columns); or 3. a
rate, a rate quotation basis, and an accrual method (1 row, 3 columns). If the basis or accrual are not provided, they are assumed
to be annual, actual/365. A 2-column
flat-rate discount factor curve is constructed internally using the rate,
basis, and accrual method. The last date in the discount factor curve >=
last "date" in the default curve and the terminating date of the
swap. |
intrp |
Interpolation method |
pos |
trade position – a switch: 1 = buy protection, 2 = sell protection |
calc |
Calculation parameter(s). The table calc can have up to five entries. The first entry is the number of Monte Carlo
random trials, the second is the number of equally-spaced time points to be
used in each time period of the probability curve (default =1), the third is
the method of calculating default barriers (1 = pure Monte Carlo, 2 = hybrid
of numerical and Monte Carlo methods, default =1 ), the fourth is the
calculation method used in CDS valuation (see switch sw_624 in the function aaCredit_DS),
and the fifth is the number of basis points used in DVOX calculation. Only the first entry is required. The default values of the other four entries
are (1,1,1,1). The number of random
trials must be>=1. If it is not an
integer, the random number generator will always use a fixed seed. The limit for the number of random trials is
2,000,000 trials. In function aaCDS2_bskt_prem_cf,
only the first four entries are needed. |
stat |
Statistic |
out_type |
output type – a switch: 1 = delta on single entity, 2 = DVOX on single entity, 3 = rho of recovery rates, 4 = rho of correlations |
asset_list |
Entity list. It can
be any subset of {1,2, …, number of entities} |
cds_p |
Price of a basket credit default swap, used only in aaCDS_bskt_is. |
cds_sprd |
the par spread of a basket credit default swap, used only
in aaCDS_bskt_if |
Note: In
most functions of aaCDS_bskt_*, the table, pr_fix, is taken as an optional input generally
that combines both upfront fee and fixed premium payments except for aaCDS_bskt_if. Since this function calculates the implied
upfront percentage payment as output, the table pr_fix
would only contain the fixed premium payments.
See its function reference
for more details.
Output Statistics |
Description |
1 |
fair value: fair
value of a default swap (payoff – premium) |
2 |
payoff: fair value
of the insurance (i.e. loss due to default) |
3 |
premium: fair value
of premium payments |
4 |
accrued interest of premium |
5 |
fair value minus accrued interest |
6 |
par spread: premium
rate that makes the default swap have a fair value - accrued interest a value
of 0. |
7 |
BPV on risk-free curve: change of the fair value of a default swap
per one basis up shift of the risk-free discount factor curve |
8 |
number of days that premium accrues |
9 |
next premium payment date |
10 |
previous premium payment date |
11 |
remaining coupons: number
of remaining coupons of the premium payments up to the maturity of the
default swap |
12 |
DVOX of par CDS spread curve: change of the fair value of a default swap
per X basis points up shift of the par CDS spread curve |
13 |
rho of recovery rates: change of fair value of a default swap per
1% up shift of all recovery rates |
For functions with independent entities have one more
statistic:
Output Statistics |
Description |
|
14 |
theta: the change
in fair value per one day increase of valuation date |
|
For functions with correlations have two more
statistics:
Output Statistics |
Description |
|
14 |
rho of correlation: the change in fair value per 1% up shift of
all correlations. |
|
15 |
theta: the change
in fair value per one day increase of valuation date. |
|
For function aaCDS_bskt_is, its
output is the implied spread given a basket CDS price. It is the premium rate
that values the fair value of a basket CDS minus its accrued interest of
premium (the fifth output statistic of aaCDS_bskt) to the
given price.
For function aaCDS_bskt_if, its
output is the implied upfront percentage payment given a basket CDS
spread. It is a rate that captures the
difference between the prevailing market spread to the given CDS spread.
For the cash flow function aaCDS2_bskt_prem_cf,
there are five types of output tables.
Output Statistics |
Description |
1 |
a 5-column no-default cash flow table (date, interest,
fixed premium, accrued interest) |
2 |
a 4-column expected cash flow table (date, expected
interest, expected fixed premium, total) |
3 |
a 4-column present value (PV) cash flow table (date, PV of
interest, PV of fixed premium, total PV) |
4 |
a 5-column interest table (date, no-default interest,
accrued interest, expected interest, PV of interest) |
5 |
a 13-column extended cash flow table (date, no-default
interest, no-default fixed premium, total no-default cash flow, accrued
interest, expected interest, expected fixed premium, total expected premium,
PV of interest, PV of fixed premium, total PV, risk-free discount factor,
default probability). |
Sensitivity functions (aaCDS_bskt_risk)
calculate delta, DVOX, rho of recovery rate and rho of correlation of basket
CDS related to specific reference entities.
Examples are given for a default swap on a basket of names
and a default swap on a user-defined loan structure with irregular premium
payments.
Suppose a fund manager has bought a default swap from a
bank to protect against possible losses from the credit exposure of three
names, Name1, Name2 and Name3. The three
names have principal notional amounts of 1,000,000, 1,300,000 and 1,200,000.
The default swap started on Dec. 1, 2005 and matures Dec. 20, 2010. It obliges
the fund manager to pay a quarterly premium of 5% on a principal of 1,500,000.
In return, in the event one of the three names defaults, the bank will pay the
fund manager the difference between the principal notional amount of the name
and whatever is recovered. Suppose the expected recovery rates are 40%, 50% and
30%, respectively. The data of the names and their recovery rates are assembled
in the following table:
ref_bskt: reference table
notional amount |
recovery rate |
1000000 |
0.4 |
1300000 |
0.5 |
1200000 |
0.3 |
Suppose the forecasted default probabilities of the
three names and the bank are given by:
dfstd: default curve
term (in years) |
Name 1 |
Name 2 |
Name 3 |
Bank |
1 |
0.022032 |
0.0317 |
0.0423 |
0.008 |
2 |
0.046242 |
0.0655 |
0.0715 |
0.015 |
3 |
0.07266 |
0.1022 |
0.1288 |
0.039 |
4 |
0.101233 |
0.142 |
0.1677 |
0.075 |
5 |
0.131885 |
0.1752 |
0.2566 |
0.095 |
Suppose that the correlation matrix between three
names and the bank is:
corrs: correlation matrix
|
Name 1 |
Name 2 |
Name 3 |
Bank |
Name 1 |
1 |
0.5 |
0.7 |
0.4 |
Name 2 |
0.5 |
1 |
0.3 |
0.5 |
Name 3 |
0.7 |
0.3 |
1 |
0.2 |
Bank |
0.4 |
0.5 |
0.2 |
1 |
Further, suppose that the swap’s day count basis is
Act/360 and calendar dates are used as business day convention. Today’s date is Dec. 1, 2005. The spot discount factor curve is given as in
the following:
dfstd: discount factor curve
Date |
Discount Factor |
1-Dec-2005 |
1 |
1-Jun-2006 |
0.971285862 |
1-Dec-2006 |
0.943396226 |
1-Dec-2007 |
0.88999644 |
1-Dec-2008 |
0.839619283 |
1-Dec-2010 |
0.747258173 |
1-Dec-2015 |
0.558394777 |
1-Dec-2020 |
0.417265061 |
aaCDS_bskt
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
see below |
|
rank |
default rank |
1 |
|
protect |
basket protection type |
1 |
the nth default only |
princ_pr |
Premium notional principal |
1500000 |
|
cpn_pr |
Premium coupon rate |
5% |
|
freq_pr |
Premium payment frequency |
3 |
quarterly |
pr_acc_type |
type of premium accrued interest payment |
1 |
pay accrued interest upon default |
acc |
accrual method |
1 |
actual/365 (fixed) |
d_rul |
business day convention |
1 |
no date adjustment |
pr_fix |
fixed premium payment table |
see below |
|
ref_type |
type of references |
1 |
name (notional, recovery) |
ref_bskt |
reference basket table |
see above |
|
corrs |
credit index correlation matrix |
see above |
|
m_corr |
method of handling credit correlation |
2 |
normal copula |
p_off |
payoff type |
1 |
pay at default |
dp_type |
default curve type |
2 |
default probability curve |
dp_bskt |
Basket default curve |
see above |
|
intrp_tb |
Default curve parameter table |
see below |
|
hl |
holiday list |
0 |
|
dfstd |
discount factor curve - risk free |
see above |
|
intrp |
interpolation method |
1 |
linear |
pos |
trade position |
1 |
buy protection |
calc |
calculation parameter(s) |
see below |
|
stat |
Statistic |
{1,2,…15} |
|
where:
contra_d: CDS
contract dates
Terminating date |
Effective date |
First coupon date |
Next to last coupon date |
Effective date adjustment |
Terminating date adjustment |
Date generation method |
20-Dec-10 |
1-Dec-05 |
0 |
0 |
2 |
2 |
3 |
|
|
|
|
switch: do not adjust effective date |
switch: do not adjust terminating date |
switch: IMM |
intrp_tb: default curve parameter table
Interpolation of default probability curve |
bootstrapping method |
accrual method of time-based default curve |
1 |
1 |
4 |
calc: calculation parameters
number of random trials |
number of time steps |
default barrier calculation method |
CDS calculation method |
basis points (bump size for DVOX) |
5000.5 |
1 |
1 |
1 |
10 |
Using function aaCDS_bskt the
fund manager calculates the fair value and other statistics as follows:
Results
Statistics |
Description |
Value |
1 |
fair value |
-35758.1 |
2 |
value of payoff |
227793.1 |
3 |
value of premium |
-263551 |
4 |
accrued interest of premium |
-0 |
5 |
fair value minus accrued interest |
-35758.1 |
6 |
par spread |
0.043216 |
7 |
basis point value (per 1bp shift of risk-free curve) |
2.001792 |
8 |
number of days that premium accrues |
0 |
9 |
next coupon date |
38706 |
10 |
previous coupon date |
38687 |
11 |
number of remaining cash flows |
21 |
12 |
DVOX of par CDS spreads (the fair value change when all
the credit spread curves shift up X bp uniformly) |
7408.131 |
13 |
rho of recovery rates (the fair value change when all the
recovery rates shift up 1% uniformly) |
-3736.1 |
14 |
rho of correlation matrix (fair value change when all
correlations shift up 1% uniformly) |
-601.14 |
15 |
theta |
-213.809 |
To calculate the cash flows of the premiums call
function aaCDS2_bskt_prem_cf
to get the following:
Cash flow table
Date |
No-default interest |
Accrued interest |
Expected interest |
Present value |
20-Dec-2005 |
-3904.109589 |
-0 |
-3895.675643 |
-3883.997849 |
20-Dec-2005 |
-3904.109589 |
-0 |
-3895.675643 |
-3884 |
20-Mar-2006 |
-18493.15068 |
-0 |
-18224.01201 |
-17910.6 |
20-Jun-2006 |
-18904.10959 |
-0 |
-18237.80447 |
-17661.3 |
20-Sep-2006 |
-18904.10959 |
-0 |
-17842.32014 |
-17028.2 |
20-Dec-2006 |
-18698.63014 |
-0 |
-17267.8878 |
-16242.5 |
20-Mar-2007 |
-18493.15068 |
-0 |
-16746.15087 |
-15531.2 |
20-Jun-2007 |
-18904.10959 |
-0 |
-16810.05217 |
-15364.2 |
20-Sep-2007 |
-18904.10959 |
-0 |
-16498.42957 |
-14857.3 |
20-Dec-2007 |
-18698.63014 |
-0 |
-15998.55052 |
-14196.8 |
20-Mar-2008 |
-18698.63014 |
-0 |
-15612.68179 |
-13658.8 |
20-Jun-2008 |
-18904.10959 |
-0 |
-15338.11273 |
-13224.4 |
20-Sep-2008 |
-18904.10959 |
-0 |
-14889.53784 |
-12649.1 |
20-Dec-2008 |
-18698.63014 |
-0 |
-14294.94469 |
-11967.9 |
20-Mar-2009 |
-18493.15068 |
-0 |
-13754.62789 |
-11359 |
20-Jun-2009 |
-18904.10959 |
-0 |
-13699.2644 |
-11153.8 |
20-Sep-2009 |
-18904.10959 |
-0 |
-13334.27525 |
-10701.4 |
20-Dec-2009 |
-18698.63014 |
-0 |
-12822.39351 |
-10143 |
20-Mar-2010 |
-18493.15068 |
-0 |
-12285.52186 |
-9578.38 |
20-Jun-2010 |
-18904.10959 |
-0 |
-12121.15969 |
-9309.15 |
20-Sep-2010 |
-18904.10959 |
-0 |
-11678.97962 |
-8833.6 |
20-Dec-2010 |
-18698.63014 |
-0 |
-11131.89998 |
-8296.53 |
It is easy to verify that the sum of the last
column of the above table is exactly the same as the premium value (the third
statistic) calculated above.
One could instead assume that the three entities and the
bank are in totally different sectors of the industry and their default
correlations are negligible. In this
case, set the correlation matrix to a single element array with a value of zero,
and use aaCDS_bskt
to get:
Results
Statistics |
Description |
Value |
1 |
fair value |
34810.94 |
2 |
value of payoff |
282500.6 |
3 |
value of premium |
-247689.7 |
4 |
accrued interest of premium |
-0 |
5 |
fair value minus accrued interest |
34810.94 |
6 |
par spread |
0.057027 |
7 |
basis point value (per 1bp shift of risk-free curve) |
-16.20372 |
8 |
number of days that premium accrues |
0 |
9 |
next coupon date |
38706 |
10 |
previous coupon date |
38687 |
11 |
number of remaining cash flows |
21 |
12 |
DVOX of par CDS spreads (the fair value change when all
the credit spread curves shift up X bp uniformly) |
9730.683 |
13 |
rho of recovery rates (the fair value change when all the
recovery rates shift up 1% uniformly) |
-4624.101 |
14 |
rho of correlation matrix (fair value change when all
correlations shift up 1% uniformly) |
-8967.411 |
15 |
theta |
-251.9514 |
Suppose for the basket CDS in Example 1 the fund manager
wants to market the CDS that would give him a value of -15000 and wants to find
out the implied spread on this price. For
this purpose he can simply call function aaCDS_bskt_is. The result will be 0.046062. As a simple check, if one uses the calculated
fair value minus accrued interest -35758.1 in Example 1 as a price input in the
function call to aaCDS_bskt_is, one will get an implied spread of
5%, which is exactly the input premium rate.
Suppose in Example 1 the default swap is purchased to
protect possible losses from the default of loans and receivables of a
technology company, an insurance company and an energy company that have the
same default and recovery profile as in example 1. The details of the loans and receivables are
given in the following tables:
cpn_bskt: coupon table
company ID |
effective date |
maturity |
notional |
rate |
1 |
1-Jun-2005 |
1-Jun-2006 |
500000 |
0.1 |
1 |
1-Jun-2006 |
1-Dec-2006 |
500000 |
0.12 |
2 |
1-May-2005 |
1-Oct-2006 |
1000000 |
0.08 |
2 |
1-Oct-2006 |
1-Oct-2007 |
700000 |
0.09 |
2 |
1-Oct-2007 |
1-Apr-2008 |
500000 |
0.1 |
3 |
1-Dec-2005 |
1-Dec-2006 |
300000 |
0.08 |
loan_bskt: fixed payment table
company ID |
date |
amount |
1 |
1-Dec-2006 |
500000 |
2 |
1-Oct-2006 |
300000 |
2 |
1-Oct-2007 |
200000 |
2 |
1-Apr-2008 |
500000 |
3 |
8-Jul-2009 |
300000 |
Take the date counting basis to be 30/360 for coupon
and accrued interest payments. Their
recovery rates are listed in the following table:
recov_tbl: recovery rate table
company ID |
principal recovery
rate |
coupon recovery rate |
1 |
0.4 |
0 |
2 |
0.5 |
0 |
3 |
0.3 |
0 |
The premium will be paid in a lump sum of 50,000 on
Dec. 25, 2005.
Since the businesses of the borrowers and the bank
are closely related, their default correlation cannot be ignored. The stocks of the companies involved are
publicly traded. The instant equity
correlation matrix of the stock prices can be used as the correlation matrix of
the asset correlations of the companies and the bank. This correlation matrix is then:
corr_mat: credit
index correlation matrix
|
company 1 |
company 2 |
company 3 |
Bank |
company 1 |
1 |
0.5 |
0.7 |
0.4 |
company 2 |
0.5 |
1 |
0.3 |
0.5 |
company 3 |
0.7 |
0.3 |
1 |
0.2 |
Bank |
0.4 |
0.5 |
0.2 |
1 |
aaCredit_Dswap_bskt_fs_sep_MC
Argument |
Description |
Example Data |
Switch |
d_v |
value (settlement) date |
1-Dec-2005 |
|
contra_d |
CDS contract dates |
see above |
|
princ_pr |
premium notional principal |
1500000 |
|
cpn_pr |
premium coupon rate |
5.000% |
|
freq_pr |
premium payment frequency |
3 |
quarterly |
pr_acc_type |
type of premium accrued interest payment |
1 |
pay accrued interest upon default |
acc |
accrual method |
4 |
30/360 |
d_rul |
business day convention |
1 |
no date adjustment |
prem_fix |
fixed premium payment table |
see below |
|
cpn_bskt |
coupon table of basket |
see above |
|
loan_bskt |
principal table of basket |
see above |
|
acc_fs |
accrual method(s) of bond coupon |
4 |
30/360 |
corr_mat |
credit index correlation matrix |
see above |
|
meth_corr |
method of handling credit correlation |
2 |
normal copula |
payoff_type |
payoff type |
1 |
pay at default |
prob_bskt |
default probability curve |
see above |
|
intrp_prob |
interpolation method of probability curve |
1 |
linear |
recov_tbl |
recovery rate table |
see above |
|
hl |
holiday list |
0 |
|
df_crv_std |
discount factor curve - risk free |
see above |
|
intrp |
interpolation method |
1 |
linear |
position |
trade position |
1 |
buy protection |
calc_type |
calculation type |
1 |
simplified calculation method |
mc_trial |
|
50000.5 |
|
stat |
statistic |
{1,2,…15} |
|
Where the fixed premium payment table is given in the
following:
pr_fix: fixed premium payment table
date |
premium amount |
25-Dec-2005 |
50000 |
Calling the function aaCredit_Dswap_bskt_fs_sep_MC, the
fund manager gets the following:
Results
Statistics |
Description |
Value |
1 |
fair value |
-275217.3779 |
2 |
value of payoff |
49355.00523 |
3 |
value of premium |
-324572.3832 |
4 |
accrued interest of premium |
-0 |
5 |
fair value minus accrued interest |
-275217.3779 |
6 |
par spread |
-3.3433E-05 |
7 |
basis point value (per 1bp shift of risk-free curve) |
55.01484288 |
8 |
number of days that premium accrues |
0 |
9 |
next coupon date |
38706 |
10 |
previous coupon date |
38687 |
11 |
number of remaining cash flows |
21 |
12 |
DV01 of par CDS spreads (the fair value change when all
the credit spread curves shift up 1 bp uniformly) |
383.0616723 |
13 |
rho of recovery rates (the fair value change when all the
recovery rates shift up 1% uniformly) |
-838.6327945 |
14 |
rho of correlation matrix (fair value change when all
correlations shift up 1% uniformly) |
-421.6382893 |
15 |
theta |
-199.2776118 |
[1]
Francis, J. C., Frost, J. A. and Whittaker, J.
G., (1999), The Handbook of Credit Derivatives,
[2]
[3]
Li, D., (1999), ‘The valuation of the
ith-to-default basket credit derivatives’, preprint.
Disclaimer
With respect to this document,
FinancialCAD Corporation (“FINCAD”) makes no warranty either express or
implied, including, but not limited to, any implied warranty of merchantability
or fitness for a particular purpose. In no event shall FINCAD be liable to
anyone for special, collateral, incidental, or consequential damages in
connection with or arising out of the use of this document or the information
contained in it. This document should not be relied on as a substitute for your
own independent research or the advice of your professional financial,
accounting or other advisors.
This information is subject to change
without notice. FINCAD assumes no responsibility for any errors in this
document or their consequences and reserves the right to make changes to this
document without notice.
Copyright
Copyright © FinancialCAD Corporation 2008.
All rights reserved.