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 и используйте объект pricer 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