Оценка опции CDS Одно Имени

Этот пример показывает, как оценить опцию CDS одно имени с помощью cdsoptprice. Функциональный cdsoptprice основан на модели Черного цвета, как описано в О'Кэйне (2008). Дополнительный аргумент knockout для cdsoptprice поддерживает два изменения механики опции CDS. Опции CDS могут быть опциями нокаута или ненокаута.

  • Опция нокаута отменяет без платежей, если существует кредитное событие перед датой окончания срока действия опции.

  • Опция ненокаута не отменяет, если существует кредитное событие перед датой окончания срока действия опции. В этом случае держатель опции плательщика ненокаута swaption может взять доставку базового длинного CDS защиты на дате окончания срока действия опции и осуществить защиту, обеспечив принявшее значение по умолчанию обязательство взамен паритета. Этот фрагмент защиты от инициирования опции до истечения опции известен как защиту фронтенда (FEP). В то время как это различие не влияет на получатель swaption, цена плательщика ненокаута swaption получена путем добавления значения FEP плательщику нокаута swaption цена.

Задайте инструмент CDS.

Settle = datenum('12-Jun-2012');
OptionMaturity = datenum('20-Sep-2012');
CDSMaturity = datenum('20-Sep-2017');
OptionStrike = 200;
SpreadVolatility = .4;

Задайте нулевой уровень.

Zero_Time = [.5 1 2 3 4 5]';
Zero_Rate = [.5 .75 1.5 1.7 1.9 2.2]'/100;
Zero_Dates = daysadd(Settle,360*Zero_Time,1);
ZeroData = [Zero_Dates Zero_Rate]
ZeroData = 6×2
105 ×

    7.3521    0.0000
    7.3540    0.0000
    7.3576    0.0000
    7.3613    0.0000
    7.3649    0.0000
    7.3686    0.0000

Задайте данные о рынке.

Market_Time = [1 2 3 5 7 10]';
Market_Rate = [100 120 145 220 245 270]';
Market_Dates = daysadd(Settle,360*Market_Time,1);
MarketData = [Market_Dates Market_Rate];

ProbData = cdsbootstrap(ZeroData, MarketData, Settle)
ProbData = 6×2
105 ×

    7.3540    0.0000
    7.3576    0.0000
    7.3613    0.0000
    7.3686    0.0000
    7.3759    0.0000
    7.3868    0.0000

Задайте опцию CDS.

[Payer,Receiver] = cdsoptprice(ZeroData, ProbData, Settle, OptionMaturity, ...
    CDSMaturity, OptionStrike, SpreadVolatility, 'Knockout', true);
fprintf('    Payer: %.0f   Receiver: %.0f  (Knockout)\n',Payer,Receiver);
    Payer: 196   Receiver: 23  (Knockout)
[Payer,Receiver] = cdsoptprice(ZeroData, ProbData, Settle, OptionMaturity, ...
    CDSMaturity, OptionStrike, SpreadVolatility, 'Knockout', false);
fprintf('    Payer: %.0f   Receiver: %.0f  (Non-Knockout)\n',Payer,Receiver);
    Payer: 224   Receiver: 23  (Non-Knockout)

Смотрите также

| |

Похожие темы