FFT

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

Описание

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

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

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

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

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

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

Создание

Описание

пример

FFTPricerObj = finpricer(PricerType,'Model',model,'DiscountCurve',ratecurve_obj) создает FFT объект калькулятора цен путем определения 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

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

Примечание

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

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

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

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

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

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

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

Примечание

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

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

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

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

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

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

Свойства

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

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

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

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

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

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

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

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

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

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

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

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

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

Интервал сетки переменной характеристической функции, возвращенный как скалярное числовое значение.

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

Интервал сетки логарифмической забастовки, возвращенный как скалярное числовое значение.

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

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

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

Введенный в R2020a