exponenta event banner

Расчет цены одноименной опции CDS

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

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

  • Опцион без выбивания не отменяется, если событие кредитования происходит до даты истечения срока действия опциона. В этом случае держатель опциона свопциона плательщика без выбивания может принять поставку базовой CDS с длительной защитой в дату истечения срока действия опциона и осуществить защиту, предоставив обязательство по умолчанию в обмен на par. Эта часть резервирования от инициирования опции до истечения срока действия опции называется резервированием внешнего интерфейса (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)

См. также

| |

Связанные темы