exponenta event banner

SABR

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

Описание

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

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

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

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

    Примечание

    Если не указать ProjectionCurve при создании Swaption прибор с SABR прайсер, ProjectionCurve значение по умолчанию DiscountCurve значение.

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

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

Создание

Описание

пример

SABRPricerObj = finpricer(PricerType,'DiscountCurve',ratecurve_obj,'Model',model) создает SABR объект pricer путем указания 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 калькулятор цен
volatilitiesВычислять подразумеваемые волатильности при использовании SABR калькулятор цен

Примеры

свернуть все

В этом примере показан поток операций для оценки 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 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 = 10.3771
Представлен в R2020a