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 инструмент, смотрите, Выбирают Instruments, Models и Pricers.

Создание

Описание

пример

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

Отметьте указание на Небольшую формулировку Прерывания Хестона Albrecher и др. в виде разделенной запятой пары, состоящей из 'LittleTrap' и логическое:

Примечание

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

Типы данных: логический

Допуск абсолютной погрешности к численному интегрированию в виде разделенной запятой пары, состоящей из '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

Отметьте указание на Небольшую формулировку Прерывания Хестона Albrecher и др., возвращенный как логическое.

Типы данных: логический

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

Типы данных: 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 объект калькулятора цен и использование 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., П. Майер, В. Шоутенс и Дж. Тистэерт. “Небольшое прерывание Хестона”. Рабочий документ, Линц и технологический университет Граца, K.U. Левен, финансовые рынки ING, 2006.

Введенный в R2020a