volatilities

Вычислите подразумеваемую волатильность при использовании SABR калькулятор цен

Описание

пример

outVolatilities = volatilities(inpPricer,ExerciseDate,ForwardValue,Strike) вычисляет подразумеваемую волатильность для Swaption инструмент, когда вы используете SABR калькулятор цен.

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы вычислить подразумеваемую волатильность для Swaption Инструмент.

Создайте Объект ratecurve

Создайте ratecurve объект с помощью ratecurve.

ValuationDate = datetime(2016,3,5);
ZeroDates = datemnth(ValuationDate,[1 2 3 6 9 12*[1 2 3 4 5 6 7 8 9 10 12]])';
ZeroRates = [-0.33 -0.28 -0.24 -0.12 -0.08 -0.03 0.015 0.028 ...
            0.033 0.042 0.056 0.095 0.194 0.299 0.415 0.525]'/100;
Compounding = 1;
ZeroCurve = ratecurve("zero",ValuationDate,ZeroDates,ZeroRates,'Compounding',Compounding)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: 1
                Basis: 0
                Dates: [16x1 datetime]
                Rates: [16x1 double]
               Settle: 05-Mar-2016
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте SABR Объект модели

Используйте finmodel создать SABR объект модели.

Alpha = 0.0135;
Beta = 0.5;
Rho = 0.4654;
Nu = 0.4957;
Shift = 0.008;
 
SABRModel = finmodel("SABR",'Alpha',Alpha,'Beta',Beta,'Rho',Rho,'Nu',Nu,'Shift',Shift)
SABRModel = 
  SABR with properties:

             Alpha: 0.0135
              Beta: 0.5000
               Rho: 0.4654
                Nu: 0.4957
             Shift: 0.0080
    VolatilityType: "black"

Создайте SABR Объект калькулятора цен

Используйте finpricer создать SABR объект калькулятора цен и использование ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

SABRPricer = finpricer("Analytic", 'Model', SABRModel,'DiscountCurve', ZeroCurve)
SABRPricer = 
  SABR with properties:

    DiscountCurve: [1x1 ratecurve]
            Model: [1x1 finmodel.SABR]

Вычислите подразумеваемую волатильность

Используйте volatilities вычислить подразумеваемые колебания для Swaption инструмент.

SwaptionExerciseDate = datetime(2017,3,5);
ForwardValue = 0.0007;
StrikeGrid = [-0.5; -0.25; -0.125; 0; 0.125; 0.25; 0.5; 1.0; 1.5]/100;
MarketStrikes = ForwardValue + StrikeGrid;

outVolatilities = volatilities(SABRPricer, SwaptionExerciseDate, ForwardValue, MarketStrikes)
outVolatilities = 9×1

    0.2132
    0.1500
    0.1409
    0.1474
    0.1609
    0.1752
    0.2004
    0.2372
    0.2627

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

свернуть все

Калькулятор цен SABR в виде ранее созданного SABR объект калькулятора цен.

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

Дата осуществления опции в виде скалярного datetime, последовательного номера даты, вектора символов даты или строки даты.

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

Передайте уровень подкачки в виде скалярного десятичного числа.

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

Ударьте уровень в виде скалярного десятичного числа.

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

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

свернуть все

Выведите колебания, возвращенные как числовое.

Введенный в R2020b