Heston

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

Описание

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

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

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

  3. Используйте finpricer задавать FiniteDifference, NumericalIntegration, или FFT метод ценообразования для Vanilla инструмент.

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

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

Создание

Описание

пример

HestonModelObj = finmodel(ModelType,'V0'v0_value,'ThetaV',thetav_value,'Kappa',kappa_value,'SigmaV',sigmav_value,'RhoSV',rhosv_value) создает Black объект модели путем определения ModelType и необходимые аргументы пары "имя-значение" V0, ThetaV\kappa, SigmaV, и RhoSV установить свойства с помощью требуемых аргументов пары "имя-значение". Например, HestonModelObj = finmodel("Heston",'V0',0.032,'ThetaV',0.1,'Kappa',0.003,'SigmaV',0.2,'RhoSV',0.9) создает Heston объект модели.

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

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

Тип модели в виде строки со значением "Heston" или вектор символов со значением 'Heston'.

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

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

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

Пример: HestonModelObj = finmodel("Heston",'V0',0.032,'ThetaV',0.1,'Kappa',0.003,'SigmaV',0.2,'RhoSV',0.9)

Начальное отклонение базового актива в виде разделенной запятой пары, состоящей из 'V0' и скалярное числовое значение.

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

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

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

Средняя скорость версии для базового актива в виде разделенной запятой пары, состоящей из 'Kappa' и скалярное числовое значение.

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

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

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

Корреляция между процессами Вайнера для базового актива и его отклонения в виде разделенной запятой пары, состоящей из 'RhoSV' и скалярное числовое значение.

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

Свойства

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

Начальное отклонение базового актива, возвращенного как скалярное числовое значение.

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

Долгосрочное отклонение базового актива, возвращенного как скалярное числовое значение.

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

Средняя скорость версии для базового актива, возвращенного как скалярное числовое значение.

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

Энергозависимость отклонения базового актива, возвращенного как скалярное числовое значение.

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

Корреляция между процессами Вайнера для базового актива и его дисперсии, возвращенной как скалярное числовое значение.

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

Примеры

свернуть все

Этот пример показывает рабочий процесс, чтобы оценить Vanilla инструмент, когда вы используете Heston модель и FFT метод ценообразования.

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

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

VanillaOpt = fininstrument("Vanilla",'ExerciseDate',datetime(2022,9,15),'Strike',105,'ExerciseStyle',"european",'Name',"vanilla_option")
VanillaOpt = 
  Vanilla with properties:

       OptionType: "call"
    ExerciseStyle: "european"
     ExerciseDate: 15-Sep-2022
           Strike: 105
             Name: "vanilla_option"

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

Используйте finmodel создать Heston объект модели.

HestonModel = finmodel("Heston",'V0',0.032,'ThetaV',0.1,'Kappa',0.003,'SigmaV',0.2,'RhoSV',0.9)
HestonModel = 
  Heston with properties:

        V0: 0.0320
    ThetaV: 0.1000
     Kappa: 0.0030
    SigmaV: 0.2000
     RhoSV: 0.9000

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

Создайте плоский ratecurve объект с помощью ratecurve.

Settle = datetime(2018,9,15);
Maturity = datetime(2023,9,15);
Rate = 0.035;
myRC = ratecurve('zero',Settle,Maturity,Rate,'Basis',12)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 12
                Dates: 15-Sep-2023
                Rates: 0.0350
               Settle: 15-Sep-2018
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создайте FFT Объект калькулятора цен

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

outPricer = finpricer("FFT",'DiscountCurve',myRC,'Model',HestonModel,'SpotPrice',100,'CharacteristicFcnStep', 0.2,'NumFFT',2^13)
outPricer = 
  FFT with properties:

                    Model: [1x1 finmodel.Heston]
            DiscountCurve: [1x1 ratecurve]
                SpotPrice: 100
             DividendType: "continuous"
            DividendValue: 0
                   NumFFT: 8192
    CharacteristicFcnStep: 0.2000
            LogStrikeStep: 0.0038
        CharacteristicFcn: @characteristicFcnHeston
            DampingFactor: 1.5000
               Quadrature: "simpson"
           VolRiskPremium: 0
               LittleTrap: 1

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

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

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

       Results: [1x7 table]
    PricerData: []

outPR.Results
ans=1×7 table
    Price      Delta      Gamma       Theta       Rho       Vega     VegaLT
    ______    _______    ________    ________    ______    ______    ______

    14.754    0.44868    0.021649    -0.20891    120.45    88.192    1.3248

Введенный в R2020a