cdsbootstrap

Кривая вероятности дефолта Bootstrap из рыночных котировок свопа по умолчанию

Описание

пример

[ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle) загрузка кривой вероятностей по умолчанию с помощью рыночных котировок свопа по кредиту (CDS). Рыночные котировки могут быть выражены в виде списка дат погашения и соответствующих рыночных спредов CDS, или в виде списка сроков погашения и соответствующих повышающих и стандартных спредов для стандартных контрактов CDS. Оценка использует стандартную модель вероятности выживания.

пример

[ProbData,HazData] = cdsbootstrap(___,Name,Value) добавляет необязательные аргументы пары "имя-значение".

Примеры

свернуть все

В этом примере показано, как использовать cdsbootstrap с рыночными котировками на контракты CDS для генерации ProbData и HazData значения.

Settle = '17-Jul-2009'; % valuation date for the CDS
Spread_Time = [1 2 3 5 7]';
Spread = [140 175 210 265 310]';
Market_Dates = daysadd(datenum(Settle),360*Spread_Time,1);
MarketData = [Market_Dates Spread];
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(datenum(Settle),360*Zero_Time,1);
ZeroData = [Zero_Dates Zero_Rate];

format long
[ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle)
ProbData = 5×2
105 ×

   7.343360000000000   0.000000233427859
   7.347010000000000   0.000000575839968
   7.350670000000000   0.000001021397017
   7.357970000000000   0.000002064539982
   7.365280000000000   0.000003234110940

HazData = 5×2
105 ×

   7.343360000000000   0.000000232959886
   7.347010000000000   0.000000352000512
   7.350670000000000   0.000000476383354
   7.357970000000000   0.000000609055766
   7.365280000000000   0.000000785241515

Входные параметры

свернуть все

Данные нулевой скорости, заданные как M-by- 2 вектор дат и нулевых скоростей или IRDataCurve объект нулевых ставок.

Когда ZeroData является IRDataCurve объект, ZeroCompounding и ZeroBasis неявные в ZeroData и являются избыточными внутри этой функции. В этом случае задайте эти необязательные параметры при построении IRDataCurve объект перед использованием cdsbootstrap функция.

Для получения дополнительной информации о IRDataCurve (Financial Instruments Toolbox), см. Создание объекта IRDataCurve (Financial Instruments Toolbox).

Типы данных: double

Данные рынка облигаций, указанные как N-by- 2 матрица дат и соответствующих рыночных спредов или N-by- 3 матрица дат, upfronts и стандартных спредов контрактов CDS. Даты должны быть введены как серийные номера дат, восходящие линии должны быть числовыми значениями между 0 и 1, и спреды должны быть в базисных точках.

Типы данных: double

Дата расчета, заданная как серийный номер даты или вектор символов даты. The Settle дата должна быть раньше, чем даты в MarketData

Типы данных: double | char

Аргументы в виде пар имя-значение

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: [ProbData,HazData] = cdsbootstrap(ZeroData,MarketData,Settle,'RecoveryRate',Recovery,'ZeroCompounding',-1)

Примечание

Любой необязательный вход размера N-by- 1 также приемлемо как массив размера 1-by- Nили как одно значение, применимую ко всем договорам. Отдельные значения внутренне расширяются до массива размеров N-by- 1.

Скорость восстановления, заданная как разделенная разделенными запятой парами, состоящая из 'RecoveryDate' и a N-by- 1 вектор частот восстановления, заданный как десятичный из 0 на 1.

Типы данных: double

Частота премиальных платежей, заданная как разделенная разделенными запятой парами, состоящая из 'Period' и a N-by- 1 вектор со значениями 1, 2, 3, 4, 6, или 12.

Типы данных: double

Базис расчета дня контракта, заданное как разделенная разделенными запятой парами, состоящая из 'Basis' и положительное целое число с использованием NINST-by- 1 вектор.

  • 0 = факт/факт

  • 1 = 30/360 (SIA)

  • 2 = факт/360

  • 3 = факт/365

  • 4 = 30/360 (PSA)

  • 5 = 30/360 (ISDA)

  • 6 = 30/360 (европейский)

  • 7 = факт/365 (японский)

  • 8 = факт/факт (ICMA)

  • 9 = факт/360 (ICMA)

  • 10 = факт/365 (ICMA)

  • 11 = 30/360E (ICMA)

  • 12 = факт/365 (ISDA)

  • 13 = BUS/252

Для получения дополнительной информации см. раздел Базиса.

Типы данных: double

Соглашения о рабочих днях, заданные как разделенная разделенными запятой парами, состоящая из 'BusDayConvention' и вектор символов. Выбор для соглашения о рабочих днях определяет режим обработки нерабочих дней. Нерабочие дни определяются как выходные дни плюс любая другая дата, когда предприятия не открыты (для примера, уставных праздников). Значения:

  • 'actual' - Нерабочие дни фактически игнорируются. Денежные потоки, которые приходятся на нерабочие дни, считаются распределенными на фактическую дату.

  • 'follow' - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными на следующий рабочий день.

  • 'modifiedfollow' - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными на следующий рабочий день. Однако если следующий рабочий день находится в другом месяце, то вместо этого принимается предыдущий рабочий день.

  • 'previous' - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными в предыдущий рабочий день.

  • 'modifiedprevious' - Денежные потоки, которые приходятся на нерабочий день, принимаются распределенными в предыдущий рабочий день. Однако, если предыдущий рабочий день находится в другом месяце, вместо этого принимается следующий рабочий день.

Типы данных: char

Флаг для начисленных премий, уплаченных по умолчанию, задается как разделенная разделенными запятой парами, состоящая из 'PayAccruedPremium' и a N-by- 1 вектор логических флагов, который true (по умолчанию) если начисленные премии выплачиваются по умолчанию, false в противном случае.

Типы данных: logical

Количество дней, чтобы занять временной шаг для численного интегрирования, заданное как разделенная разделенными запятой парами, состоящая из 'TimeStep' и неотрицательное целое число.

Типы данных: double

Частота компаундирования нулевой кривой, заданная как разделенная разделенными запятой парами, состоящая из 'ZeroCompounding' и целое число со значениями:

  • 1 - Ежегодное компаундирование

  • 2 - Полу-годичное компаундирование

  • 3 - Смешивание три раза в год

  • 4 - ежеквартальное компаундирование

  • 6 - Двухмесячное компаундирование

  • 12 - Ежемесячное компаундирование

  • −1 - Непрерывное компаундирование

Типы данных: double

Базис нулевой кривой, заданный как разделенная разделенными запятой парами, состоящая из 'ZeroBasis' и целое число со значениями, идентичными Basis.

Типы данных: double

Даты для данных вероятности, заданные как разделенная разделенными запятой парами, состоящая из 'ProbDates' и a P-by- 1 вектор дат, заданный как серийные номера дат или векторы символов дат.

Типы данных: double | char

Выходные аргументы

свернуть все

Значения вероятностей по умолчанию, возвращенные как P-by- 2 матрица с датами и соответствующими совокупными значениями вероятностей по умолчанию. Даты совпадают с датами в MarketData, если только необязательный входной параметр не ProbDates предоставляется.

Значения уровня опасности, возвращенные как N-by- 2 матрица с датами и соответствующими значениями уровня опасности для модели вероятности выживания. Даты совпадают с датами в MarketData.

Примечание

Предупреждение отображается, когда найдены немонотонные вероятности по умолчанию (то есть отрицательные скорости опасности).

Алгоритмы

Если время до значения по умолчанию обозначено τ, кривая вероятности по умолчанию или функция, PD(t) и ее дополнение, Q(t) функции выживания, заданы:

PD(t)=P[τt]=1P[τ>t]=1Q(t)

В стандартной модели вероятность выживания определяется терминами кусочно-постоянной скорости h(t) опасности. Для примера, если h(t) =

λ1, для 0<reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>

λ2, для t1 <<reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>

λ3, для t2 < t

тогда функция выживания задается Q(t) =

eλ1t, для 0<reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>

eλ1tλ2(tt1), для t1 <<reservedrangesplaceholder1> ≤ <reservedrangesplaceholder0>

eλ1t1λ2(t2t1)λ3(tt2), для t2 < t

Учитывая n рыночные даты t1,...,tn и соответствующие рыночные спреды CDS S1,...,Sn, cdsbootstrap калибрует λ1,...,λn параметров и оценивает PD(t) на рыночных датах или необязательном пользовательском наборе дат.

Ссылки

[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. 7 апреля 2009 года.

[2] Халл, Дж., и А. Уайт. «Оценка кредитных дефолтных свопов I: Нет риска дефолта контрагента». Журнал производных. Том 8, стр. 29-40.

[3] O'Kane, D. and S. Turnbull. «Оценка кредитных дефолтных свопов». Lehman Brothers, исследование количественного кредита с фиксированным доходом, апрель 2003 года.

Введенный в R2010b