exponenta event banner

Хестон

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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

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

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

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

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

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

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

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

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

Примечание

Программное обеспечение использует Basis значение указанного ratecurve объект для расчета дисконтирования и начисления для VarianceSwap объект прибора.

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

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

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

Свойства

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

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

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

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

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

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

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

Примеры

свернуть все

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

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

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

VarianceSwapInst = fininstrument("VarianceSwap",'Maturity',datetime(2020,9,15),'Notional',100,'StartDate',datetime(2020,6,15),'RealizedVariance',0.02,'Strike',0.1,'Name',"variance_swap_instrument")
VarianceSwapInst = 
  VarianceSwap with properties:

            Notional: 100
    RealizedVariance: 0.0200
              Strike: 0.1000
           StartDate: 15-Jun-2020
            Maturity: 15-Sep-2020
                Name: "variance_swap_instrument"

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

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

HestonModel = finmodel("Heston",'V0',0.06,'ThetaV',0.1,'Kappa',0.9,'SigmaV',0.7,'RhoSV',-.3)
HestonModel = 
  Heston with properties:

        V0: 0.0600
    ThetaV: 0.1000
     Kappa: 0.9000
    SigmaV: 0.7000
     RhoSV: -0.3000

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

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

Settle = datetime(2020, 1, 1);
ZeroTimes = calmonths(3);
ZeroRates = 0.05;
ZeroDates = Settle + ZeroTimes;
Basis = 1;
ZeroCurve = ratecurve("zero",Settle,ZeroDates,ZeroRates,'Basis',Basis)
ZeroCurve = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 1
                Dates: 01-Apr-2020
                Rates: 0.0500
               Settle: 01-Jan-2020
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

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

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

outPricer = finpricer("Analytic",'DiscountCurve',ZeroCurve,'Model',HestonModel)
outPricer = 
  Heston with properties:

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

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

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

[Price, outPR] = price(outPricer,VarianceSwapInst,["all"])
Price = 6.0054
outPR = 
  priceresult with properties:

       Results: [1x2 table]
    PricerData: []

outPR.Results
ans=1×2 table
    Price     FairVariance
    ______    ____________

    6.0054      0.07039   

Алгоритмы

Свопы дисперсии могут быть оценены с помощью калиброванной модели Heston с использованием следующего выражения закрытой формы для справедливой дисперсии:

Квар = 1 е кТкТ (n0 −

Здесь:

  • start0 является начальной дисперсией базового актива при = 0 start0 > 0.

  • θ долгосрочный уровень различия θ> 0.

  • k - средняя скорость реверсирования для дисперсии (k > 0).

После вычисления справедливого отклонения фактическая цена, уплаченная на рынке в момент времени t для свопа отклонения с датой начала в момент времени 0, вычисляется следующим образом:

VariaSwap (t) = Условный × диск (t, T) × [tTRealizedVariance (0, t) + T tTFairVariance (t, T) − StrikeVariance]

Здесь:

  • t - время от даты начала свопа отклонений до даты расчета.

  • T - это время от даты начала до даты погашения свопа отклонений.

  • Диск (t, T) - это коэффициент дисконтирования от расчета до срока погашения.

  • Отклонение (0, t) - это реализованное отклонение от начальной даты до даты расчета в базисных точках.

  • FairVariance (t, T) является справедливым отклонением для оставшегося срока действия контракта на дату расчета в базисных пунктах.

  • StrikeVariance представляет собой дисперсию страйка, заданную на начальном этапе (дату начала), в базисных точках.

Представлен в R2020b