SABR

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

Описание

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

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

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

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

    Примечание

    Если вы не задаете ProjectionCurve когда вы создаете Swaption инструмент с SABR калькулятор цен, ProjectionCurve значения по умолчанию значения к DiscountCurve значение.

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

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

Создание

Описание

пример

SABRPricerObj = finpricer(PricerType,'DiscountCurve',ratecurve_obj,'Model',model) создает SABR объект калькулятора цен путем определения PricerType и необходимый аргумент пары "имя-значение" Model установить свойства с помощью пар "имя-значение". Например, SABRPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',SABRModel) создает SABR объект калькулятора цен.

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

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

Тип калькулятора цен в виде строки со значением "Analytic" или вектор символов со значением 'Analytic'.

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

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

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

Пример: SABRPricerObj = finpricer("Analytic",'DiscountCurve',ratecurve_obj,'Model',SABRModel)

ratecurve объект для дисконтирования потоков наличности в виде разделенной запятой пары, состоящей из 'DiscountCurve' и имя ранее созданного ratecurve объект.

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

Модель в виде разделенной запятой пары, состоящей из 'Model' и имя ранее созданного SABR объект модели с помощью finmodel.

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

Свойства

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

ratecurve объект для дисконтирования потоков наличности, возвращенных как ratecurve объект

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

Модель, возвращенная как SABR объект модели.

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

Функции объекта

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить 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',1,'Notional',100,'StartDate',datetime(2020,3,30),'ProjectionCurve',myRC,'Name',"swap_instrument")
Swap = 
  Swap with properties:

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

Создайте Swaption Инструментальный объект

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

Swaption = fininstrument("Swaption",'Strike',0.275,'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.2750
             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 = 10.3771

Введенный в R2020a