exponenta event banner

FFT

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

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

пример

FFTPricerObj = finpricer(___,Name,Value) задает дополнительные свойства, используя дополнительные пары имя-значение в дополнение к требуемым аргументам в предыдущем синтаксисе. Например, FFTPricerObj = finpricer("FFT",'Model',FFTModel, 'DiscountCurve',ratecurve_obj,'SpotPrice',1000,'DividendValue',0.01,'VolRiskPremium',0.9) создает FFT объект прайсера. Можно указать несколько аргументов пары имя-значение.

Входные аргументы

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

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

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

FFT Аргументы пары «имя-значение»

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

Пример: FFTPricerObj = finpricer("FFT",'Model',FFTModel, 'DiscountCurve',ratecurve_obj,'SpotPrice',1000,'DividendValue',0.01,'VolRiskPremium',0.9)
Необходимый FFT Аргументы пары «имя-значение»

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

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

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

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

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

Примечание

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

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

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

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

Дополнительный FFT Аргументы пары «имя-значение»

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

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

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

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

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

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

Примечание

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

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

Количество точек сетки в переменной характеристической функции и в каждом столбце сетки log-strike, указанной как разделенная запятыми пара, состоящая из 'NumFFT' и скалярное числовое значение.

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

Переменная шаг сетки характеристической функции, указанная как разделенная запятыми пара, состоящая из 'CharacteristicFcnStep' и скалярное числовое значение.

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

Интервал сетки log-strike, указанный как разделенная запятыми пара, состоящая из 'LogStrikeStep' и скалярное числовое значение.

Примечание

Если (LogStrikeStep*CharacteristicFcnStepявляется 2*pi/NumFFT, используется БПФ. В противном случае используется FRFT.

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

Коэффициент демпфирования для формулы Карра-Мадана, определяемый как пара, разделенная запятыми, состоящая из 'DampingFactor' и скалярное числовое значение.

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

Тип квадратуры, определяемый как разделенная запятыми пара, состоящая из 'Quadrature' и скалярный строковый или символьный вектор.

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

Количество точек сетки в переменной характеристической функции и в каждом столбце сетки log-strike, возвращаемое как скалярное числовое значение.

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

Переменная шаг сетки характеристической функции, возвращаемая как скалярное числовое значение.

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

Интервал сетки log-strike, возвращаемый как скалярное числовое значение.

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

Коэффициент демпфирования для формулы Карра-Мадана, возвращаемый как скалярное числовое значение.

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

Тип квадратуры, возвращаемый в виде строки.

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

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

priceРасчетная цена долевого инструмента с FFT калькулятор цен

Примеры

свернуть все

В этом примере показан поток операций для оценки 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 pricer object и используйте 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

Подробнее

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

Ссылки

[1] Альбрехер, Х., П. Майер, В. Шоутенс и Дж. Тистаерт. «Маленькая ловушка Хестона.» Рабочий документ, Линц и Грацский технологический университет, К. У. Левен, ING Financial Markets, 2006.

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