Heston

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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

Алгоритмы

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

Kvar=1ekTkT(n0θ)+θ

Здесь:

  • ν 0 является начальным отклонением базового актива в = 0 ν0> 0.

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

  • k является скоростью возвращения к среднему уровню для отклонения (k> 0).

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

VarianceSwap(t)=Notional×Disc(t,T)×[tTRealizedVariance(0,t)+TtTFairVariance(t,T)StrikeVariance]

Здесь:

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

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

  • Disc (t, T) является коэффициентом дисконтирования от, обосновываются до даты погашения.

  • RealizedVariance (0, t) является реализованным отклонением от даты начала до уладить даты в пунктах.

  • FairVariance (t, T) является справедливым отклонением для остающейся жизни контракта с уладить даты в пунктах.

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

Введенный в R2020b