exponenta event banner

NumericalIntegration

Создать NumericalIntegration объект pricer для 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 объект pricer путем указания 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 по Albrecher et al., указанный как пара, разделенная запятыми, состоящая из: 'LittleTrap' и логическое:

Примечание

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

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

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

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

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

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

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Флаг, обозначающий композицию Little Heston Trap Albrecher et al., возвращен в качестве логического.

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

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

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

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

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

Диапазон численного интегрирования, используемый для аппроксимации непрерывного интеграла [0 Inf], возвращено как 1около-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 object и используйте 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] Альбрехер, Х., П. Майер, В. Шоутенс и Дж. Тистаерт. «Маленькая ловушка Хестона.» Рабочий документ, Линц и Грацский технологический университет, К. У. Левен, ING Financial Markets, 2006.

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