exponenta event banner

SABR

Создать SABR объект модели для Swaption инструмент

Описание

Создать и оценить Swaption объект прибора с SABR модель с использованием этого рабочего процесса:

  1. Использовать fininstrument для создания Swaption объект прибора.

  2. Использовать finmodel для указания SABR объект модели для Swaption инструмент.

  3. Использовать finpricer для указания SABR метод ценообразования для Swaption инструмент.

Дополнительные сведения об этом потоке операций см. в разделе Начало работы с потоками операций с использованием объектной структуры для расчета цен на финансовые инструменты.

Для получения дополнительной информации о доступных методах ценообразования для Swaption см. раздел Выбор приборов, моделей и прайсеров.

Создание

Описание

пример

SabrModelObj = finmodel(ModelType,'Alpha',alpha_value,'Beta',beta_value,'Rho',rho_value,'Nu',nu_value) создает SABR объект модели путем указания ModelType и задает свойства для необходимых аргументов пары имя-значение Alpha, Beta, Rho, и Nu.

пример

SabrModelObj = finmodel(___,Name,Value) задает дополнительные свойства, используя дополнительные пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, SabrModelObj = finmodel("SABR",'Alpha',0.22,'Beta',0.007,'Rho',0.009,'Nu',0.03,'Shift',0.002,'VolatilityType',"black") создает SABR объект модели. Можно указать несколько аргументов пары имя-значение.

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

развернуть все

Тип модели, указанный как строка со значением "SABR" или символьный вектор со значением 'SABR'.

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

SABR Аргументы пары «имя-значение»

Укажите требуемые и необязательные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: SabrModelObj = finmodel("SABR",'Alpha',0.22,'Beta',0.007,'Rho',0.009,'Nu',0.03,'Shift',0.002,'VolatilityType',"black")
Необходимый SABR Аргументы пары «имя-значение»

развернуть все

Текущая волатильность SABR, указанная как пара, разделенная запятыми, состоящая из 'Alpha' и скалярный числовой.

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

Показатель постоянной упругости дисперсии SABR (CEV), определяемый как пара, разделенная запятыми, состоящая из 'Beta' и скалярный числовой.

Примечание

Установите Beta параметр для 0 чтобы разрешить отрицательный ForwardValue и Strike.

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

Корреляция между прямым значением и волатильностью, указанной как пара, разделенная запятыми, состоящая из 'Rho' и скалярный числовой.

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

Волатильность волатильности, указанная как пара, разделенная запятыми, состоящая из 'Nu' и скалярный числовой.

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

Дополнительный SABR Аргументы пары «имя-значение»

развернуть все

Сдвиг в десятичных разрядах для сдвинутой модели SABR (для использования со сдвинутой моделью Black), указанной как разделенная запятыми пара, состоящая из 'Shift' и скалярное положительное десятичное значение. Например, Shift значение 0.01 равно 1% положительному сдвигу.

Примечание

Если установить VolatilityType кому 'normal', Shift значение должно быть 0.

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

Модель, используемая подразумеваемой сигмой волатильности, указанной как пара, разделенная запятыми, состоящая из 'VolatilityType' и скалярный строковый или символьный вектор.

Примечание

Значение VolatilityType влияет на интерпретацию подразумеваемой волатильности («сигма»).

  • Если установить VolatilityType кому 'black' (по умолчанию), «сигма» может быть либо подразумеваемой черной (без сдвига), либо подразумеваемой смещенной черной волатильностью.

  • Если установить VolatilityType кому 'normal', «сигма» - подразумеваемая нормальная (холостяцкая) волатильность, и вы также должны установить Shift до нуля.

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

Свойства

развернуть все

Текущая волатильность SABR, возвращаемая в виде скалярного числа.

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

Показатель постоянной упругости дисперсии SABR (CEV) возвращается в виде скалярного числа.

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

Корреляция между прямым значением и волатильностью, возвращаемая в виде скалярного числа.

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

Волатильность волатильности, возвращаемая как скалярное число.

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

Сдвиг в десятичных разрядах для сдвинутой модели SABR (для использования со сдвинутой моделью черного), возвращаемый как скалярное положительное десятичное значение.

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

Модель, используемая подразумеваемой sigma волатильности, возвращаемая в виде строки со значением "black" или "normal".

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

Примеры

свернуть все

В этом примере показан поток операций для оценки Swaption инструмент при использовании SABR модель и SABR способ ценообразования.

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

Создать ratecurve объект с использованием ratecurve.

Settle = datetime(2018,9,15);
Type = 'zero';
ZeroTimes = [calmonths(6) calyears([1 2 3 4 5 7 10 20 30])]';
ZeroRates = [0.0052 0.0055 0.0061 0.0073 0.0094 0.0119 0.0168 0.0222 0.0293 0.0307]';
ZeroDates = Settle + ZeroTimes;
 
myRC = ratecurve('zero',Settle,ZeroDates,ZeroRates)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: [10x1 datetime]
                Rates: [10x1 double]
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создать Swap Объект КИП

Использовать fininstrument для создания андерлаинга Swap объект прибора.

Swap = fininstrument("Swap",'Maturity',datetime(2023,1,30),'LegRate',[0.018 0.24],'LegType',["fixed","float"],'Basis',5,'Notional',1000,'StartDate',datetime(2020,3,30),'DaycountAdjustedCashFlow',true,'BusinessDayConvention',"follow",'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap = 
  Swap with properties:

                     LegRate: [0.0180 0.2400]
                     LegType: ["fixed"    "float"]
                       Reset: [2 2]
                       Basis: [5 5]
                    Notional: 1000
          LatestFloatingRate: [NaN NaN]
                 ResetOffset: [0 0]
    DaycountAdjustedCashFlow: [1 1]
             ProjectionCurve: [1x2 ratecurve]
       BusinessDayConvention: ["follow"    "follow"]
                    Holidays: NaT
                EndMonthRule: [1 1]
                   StartDate: 30-Mar-2020
                    Maturity: 30-Jan-2023
                        Name: "swap_instrument"

Создать Swaption Объект КИП

Использовать fininstrument для создания Swaption объект прибора.

Swaption = fininstrument("swaption",'Strike',0.25,'ExerciseDate',datetime(2021,7,30),'Swap',Swap,'OptionType',"put",'ExerciseStyle',"european",'Name',"swaption_instrument")
Swaption = 
  Swaption with properties:

       OptionType: "put"
    ExerciseStyle: "european"
     ExerciseDate: 30-Jul-2021
           Strike: 0.2500
             Swap: [1x1 fininstrument.Swap]
             Name: "swaption_instrument"

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

Использовать finmodel для создания SABR объект модели.

SabrModel = finmodel("SABR",'Alpha',0.032,'Beta',0.04, 'Rho', .08, 'Nu', 0.49,'Shift',0.002)
SabrModel = 
  SABR with properties:

             Alpha: 0.0320
              Beta: 0.0400
               Rho: 0.0800
                Nu: 0.4900
             Shift: 0.0020
    VolatilityType: "black"

Создать SABR Объект прайсера

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

outPricer = finpricer("analytic",'Model',SabrModel,'DiscountCurve',myRC)
outPricer = 
  SABR with properties:

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

Цена Swaption Инструмент

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

Price = price(outPricer,Swaption)
Price = 55.8596
Представлен в R2020a