Определение цены на CDS- Опции с одним именем

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

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

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

Определите прибор 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)

См. также

| |

Похожие темы