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' и скаляр положительное десятичное значение. Для примера, a Shift значение 0.01 равен 1% положительному сдвигу.

Примечание

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

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

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

Примечание

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

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

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

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

Свойства

расширить все

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

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

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

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

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

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

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

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

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

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

Модель, используемая подразумеваемой сигмой волатильности, возвращенная как строка со значением "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 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