В этом примере показано, как загрузить вероятности по умолчанию из рыночных котировок CDS. Чтобы загрузить вероятности дефолта из данных о рынке облигаций, см. bondDefaultBootstrap
. В типичном рабочем процессе ценообразование нового контракта CDS включает первую оценку структуры срока вероятности по умолчанию с использованием cdsbootstrap
. Для этого требуются рыночные котировки существующих контрактов CDS или котировки индексов CDS (например, iTraxx). Предполагаемая кривая вероятности по умолчанию затем используется как вход в cdsspread
или cdsprice
. Если информация о вероятностях по умолчанию уже известна, cdsbootstrap
можно обойти и cdsspread
или cdsprice
можно вызвать непосредственно.
Рыночная информация в этом примере предоставляется в виде текущих спредов контрактов CDS со сроком погашения на стандартные даты платежей CDS, ближайшие к 1, 2, 3, 5 и 7 годам с даты оценки.
Settle = '17-Jul-2009'; % valuation date for the CDS MarketDates = datenum({'20-Sep-10','20-Sep-11','20-Sep-12','20-Sep-14',... '20-Sep-16'}); MarketSpreads = [140 175 210 265 310]'; MarketData = [MarketDates MarketSpreads]; ZeroDates = datenum({'17-Jan-10','17-Jul-10','17-Jul-11','17-Jul-12',... '17-Jul-13','17-Jul-14'}); ZeroRates = [1.35 1.43 1.9 2.47 2.936 3.311]'/100; ZeroData = [ZeroDates ZeroRates]; [ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle);
Загрузочная кривая вероятностей по умолчанию строится с учетом времени, в годах, от даты оценки.
ProbTimes = yearfrac(Settle,ProbData(:,1)); figure plot([0; ProbTimes],[0; ProbData(:,2)]) grid on axis([0 ProbTimes(end,1) 0 ProbData(end,2)]) xlabel('Time (years)') ylabel('Cumulative Default Probability') title('Bootstrapped Default Probability Curve')
Соответствующие уровни опасности возвращаются как необязательные выходы. Конвенция гласит, что первый тариф опасности применяется с даты расчета до первой рыночной даты, второй тариф опасности с первой по вторую рыночную дату и так далее, а последний тариф опасности применяется со второй по последнюю рыночную дату и далее. На следующем графике отображаются начальные коэффициенты опасности, построенные с учетом времени, в годах, от даты оценки:
HazTimes = yearfrac(Settle,HazData(:,1)); figure stairs([0; HazTimes(1:end-1,1); HazTimes(end,1)+1],... [HazData(:,2);HazData(end,2)]) grid on axis([0 HazTimes(end,1)+1 0.9*HazData(1,2) 1.1*HazData(end,2)]) xlabel('Time (years)') ylabel('Hazard Rate') title('Bootstrapped Hazard Rates')
bondDefaultBootstrap
| cdsbootstrap
| cdsprice
| cdsrpv01
| cdsspread