NumericalIntegration

Создание NumericalIntegration объект ценника для Vanilla инструмент с использованием Heston, Bates, или Merton модель

Описание

Создайте и оцените Vanilla объект инструмента со Heston, Bates, или Merton модель и NumericalIntegration метод ценообразования с использованием этого рабочего процесса:

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

  2. Использовать finmodel для задания Heston, Bates, или Merton модель для Vanilla прибора.

  3. Использовать finpricer для задания NumericalIntegration объект ценника для Vanilla прибора.

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

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

Создание

Описание

пример

NumericalIntegrationPricerObj = finpricer(PricerType,'Model',model,'DiscountCurve',ratecurve_obj,'SpotPrice',spotprice_value) создает NumericalIntegration объект прейскуранта путем определения PricerType и устанавливает свойства для необходимых аргументов пары "имя-значение" Model, DiscountCurve, и SpotPrice.

пример

NumericalIntegrationPricerObj = finpricer(___,Name,Value) устанавливает необязательные свойства с помощью дополнительных пар "имя-значение" в дополнение к необходимым аргументам в предыдущем синтаксисе. Для примера, NumericalIntegrationPricerObj = finpricer("NumericalIntegration",'Model',NIModel,'DiscountCurve',ratecurve_obj,'SpotPrice',1000,'DividendValue',100,'VolRiskPremium',0.9) создает NumericalIntegration объект прейскуранта. Можно задать несколько аргументы пары "имя-значение".

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

расширить все

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

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

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

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

Пример: NumericalIntegrationPricerObj = finpricer("NumericalIntegration",'Model',NIModel,'DiscountCurve',ratecurve_obj,'SpotPrice',1000,'DividendValue',100,'VolRiskPremium',0.9)
Требуемая NumericalIntegration Аргументы в виде пар имя-значение

расширить все

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

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

Это свойство доступно только для чтения.

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

Примечание

Задайте плоскую ratecurve объект для DiscountCurve. Если вы используете нефлят ratecurve объект, программное обеспечение использует скорость в ratecurve объект в Maturity и принимает, что значение является постоянным для срока службы опции.

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

Текущая цена базового актива, заданная как разделенная разделенными запятой парами, состоящая из 'SpotPrice' и скаляр неотрицательную цифру.

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

Необязательные NumericalIntegration Аргументы в виде пар имя-значение

расширить все

Дивидендное выражение, заданная как разделенная разделенными запятой парами, состоящая из 'DividendValue' и скалярным числом.

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

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

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

Флаг, указывающий формулировку Little Heston Trap Альбрехером и др., заданный как разделенная разделенными запятой парами, состоящая из 'LittleTrap' и логический:

Примечание

LittleTrap поддерживается только для Heston и Bates модели.

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

Абсолютный допуск ошибки для численного интегрирования, заданный как разделенная разделенными запятой парами, состоящая из 'AbsTol' и скалярное числовое значение.

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

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

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

Численная область значений интегрирования, используемый для аппроксимации непрерывного интеграла по [0 Inf], заданная как разделенная разделенными запятой парами, состоящая из 'IntegrationRange' и a 1-by- 2 вектор, представляющий [LowerLimit UpperLimit].

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

Среда для вычисления цен на опции и чувствительности с помощью численного интегрирования моделей, заданная как разделенная разделенными запятой парами, состоящая из 'Framework' и скалярный строковый или символьный вектор со следующими значениями:

  • "heston1993" или 'heston1993' - Метод, используемый в Heston (1993)

  • "lewis2001" или 'lewis2001' - Метод, используемый в Lewis (2001)

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

Свойства

расширить все

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

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

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

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

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

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

Дивидендное выражение, возвращенная в виде скалярного числа.

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

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

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

Флаг, указывающий на формулировку Little Heston Trap Альбрехером и др., возвращенный как логический.

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

Абсолютный допуск ошибки для численного интегрирования, возвращенный как скалярное числовое значение.

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

Относительная погрешность для численного интегрирования, возвращенный как скалярное числовое значение.

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

Численная область значений интегрирования, используемый для аппроксимации непрерывного интеграла по [0 Inf], возвращается как 1-by- 2 вектор, представляющий [LowerLimit UpperLimit].

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

Среда для вычисления цен опций и чувствительности с помощью численного интегрирования моделей, возвращенная как скалярная строка.

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

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

priceВычислите цену для инструмента капитала с NumericalIntegration калькулятор цен

Примеры

свернуть все

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

Создание Vanilla Объект прибора

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

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

       OptionType: "call"
    ExerciseStyle: "european"
     ExerciseDate: 15-Mar-2020
           Strike: 105
             Name: "vanilla_option"

Создание Merton Объект модели

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

MertonModel = finmodel("Merton",'Volatility',0.45,'MeanJ',0.02,'JumpVol',0.07,'JumpFreq',0.09)
MertonModel = 
  Merton with properties:

    Volatility: 0.4500
         MeanJ: 0.0200
       JumpVol: 0.0700
      JumpFreq: 0.0900

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

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

myRC = ratecurve('zero',datetime(2019,9,15),datetime(2020,3,15),0.02)
myRC = 
  ratecurve with properties:

                 Type: "zero"
          Compounding: -1
                Basis: 0
                Dates: 15-Mar-2020
                Rates: 0.0200
               Settle: 15-Sep-2019
         InterpMethod: "linear"
    ShortExtrapMethod: "next"
     LongExtrapMethod: "previous"

Создание NumericalIntegration Объект прейскуранта

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

outPricer = finpricer("numericalintegration",'Model',MertonModel,'DiscountCurve',myRC,'SpotPrice',100,'DividendValue',.01,'VolRiskPremium',0.9,'LittleTrap',false,'AbsTol',0.5,'RelTol',0.4,'Framework',"lewis2001")
outPricer = 
  NumericalIntegration with properties:

                Model: [1x1 finmodel.Merton]
        DiscountCurve: [1x1 ratecurve]
            SpotPrice: 100
         DividendType: "continuous"
        DividendValue: 0.0100
               AbsTol: 0.5000
               RelTol: 0.4000
     IntegrationRange: [1.0000e-09 Inf]
    CharacteristicFcn: @characteristicFcnMerton76
            Framework: "lewis2001"
       VolRiskPremium: 0.9000
           LittleTrap: 0

Ценовые Vanilla Инструмент

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

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

       Results: [1x6 table]
    PricerData: []

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

    10.732    0.5058    0.012492    -12.969    19.815    27.954

Подробнее о

расширить все

Ссылки

[1] Albrecher, H., P. Mayer, W. Schoutens, and J. Tistaert. «Ловушка Маленького Хестона». Рабочий документ Linz and Graz University of Technology, K.U. Leuven, ING Financial Markets, 2006.

Введенный в R2020a