SABR

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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', “сигма” является подразумеваемой Нормальной энергозависимостью (Bachelier), и необходимо также установить Shift обнулять.

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

Свойства

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

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

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

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

Типы данных: 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 объект калькулятора цен и использование 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