Создание FFT объект ценника для Vanilla инструмент с использованием Merton, Heston, или Bates модель
Создайте и оцените Vanilla объект инструмента со Heston, Bates, или Merton модель и FFT метод ценообразования с использованием этого рабочего процесса:
Дополнительные сведения об этом рабочем процессе см. в разделе Запуске с рабочими процессами с использованием объектной среды для ценообразования финансовых инструментов.
Для получения дополнительной информации о доступных методах ценообразования для Vanilla инструмент, см. «Выбор инструментов», «Модели» и «Цены».
создает 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 объект прейскуранта. Можно задать несколько аргументы пары "имя-значение".
PricerType - Тип ценника"FFT" | вектор символов с '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 Аргументы в виде пар имя-значение'DiscountCurve' — ratecurve объект для дисконтирования денежных потоковratecurve объектЭто свойство доступно только для чтения.
ratecurve объект для дисконтирования денежных потоков, заданный как разделенная разделенными запятой парами, состоящая из 'DiscountCurve' и имя ratecurve объект.
Примечание
Задайте плоскую ratecurve объект для DiscountCurve. Если вы используете нефлят ratecurve объект, программное обеспечение использует скорость в ratecurve объект в Maturity и принимает, что значение является постоянным для срока службы опции.
Типы данных: object
'SpotPrice' - Текущая цена базового активаТекущая цена базового актива, заданная как разделенная разделенными запятой парами, состоящая из 'SpotPrice' и скаляр неотрицательную цифру.
Типы данных: double
FFT Аргументы в виде пар имя-значение'DividendValue' - Дивидендное выражениеДивидендное выражение, заданная как разделенная разделенными запятой парами, состоящая из 'DividendValue' и скаляр неотрицательную цифру в десятичных числах.
Типы данных: double
'VolRiskPremium' - Премия за риск волатильности0
(по умолчанию) | числоПремия за риск волатильности, заданная как разделенная разделенными запятой парами, состоящая из 'VolRiskPremium' и скалярное числовое значение.
Типы данных: double
'LittleTrap' - Флаг, указывающий на формулировку ловушки Little Hestontrue
(по умолчанию) | логическим со значением true или falseФлаг, указывающий формулировку Little Heston Trap Альбрехером и др., заданный как разделенная разделенными запятой парами, состоящая из 'LittleTrap' и логический:
true - Использовать Albrecher et al. состав.
Для получения дополнительной информации о LittleTrap, см. [1], а также формулировка Little Trap определяется C j и D j в модели стохастической волатильности Хестона и стохастической волатильности Бейтса Перехода диффузионной модели.
false - Использовать исходную формацию Хестона.
Типы данных: logical
'NumFFT' - Количество точек сетки в переменной функции характеристики4096
(по умолчанию) | числоКоличество точек сетки в переменной функции характеристики и в каждом столбце логарифмической сетки, заданное как разделенная разделенными запятой парами, состоящая из 'NumFFT' и скалярное числовое значение.
Типы данных: double
'CharacteristicFcnStep' - Характеристическая функция, переменная интервала между сетками0.01
(по умолчанию) | числоХарактеристическая функция, переменная сетки интервала, задается как разделенная запятой пара, состоящая из 'CharacteristicFcnStep' и скалярное числовое значение.
Типы данных: double
'LogStrikeStep' - Логарифмический интервал сетки2*pi/NumFFT/CharacteristicFcnStep
(по умолчанию) | числоЛогарифмический интервал сетки, заданный как разделенная разделенными запятой парами, состоящая из 'LogStrikeStep' и скалярное числовое значение.
Примечание
Если (LogStrikeStep* CharacteristicFcnStep) 2*pi/ NumFFT, используется БПФ. В противном случае используется FRFT.
Типы данных: double
'DampingFactor' - Коэффициент затухания для композиции Карра-Мадана1.5
(по умолчанию) | числоКоэффициент затухания для композиции Карра-Мадана, заданная как разделенная запятой пара, состоящая из 'DampingFactor' и скалярное числовое значение.
Типы данных: double
'Quadrature' - Тип квадратурной матрицы"simpson"
(по умолчанию) | строку со значением "simpson" или "trapezoidal" | вектор символов с 'simpson' значений или 'trapezoidal'Тип квадратуры, заданный как разделенная разделенными запятой парами, состоящая из 'Quadrature' и скалярную строку или вектор символов.
Типы данных: char | string
Model - Модель Модель, возвращенная как объект модели.
Типы данных: object
SpotPrice - Текущая цена базового активаТекущая цена базового актива, возвращенная в виде скалярного неотрицательного числа.
Типы данных: double
DividendValue - Дивидендное выражениеДивидендное выражение, возвращенная как скаляр неотрицательная цифра десятичными числами.
Типы данных: double
VolRiskPremium - Премия за риск волатильности0
(по умолчанию) | числоПремия за риск волатильности, возвращенная как скалярное числовое значение.
Типы данных: double
LittleTrap - Флаг, указывающий на формулировку ловушки Little Hestontrue
(по умолчанию) | логическим со значением true или falseФлаг, указывающий на формулировку Little Heston Trap Альбрехером и др., возвращенный как логический.
Типы данных: logical
NumFFT - Количество точек сетки в переменной функции характеристики4096
(по умолчанию) | числоКоличество точек сетки в переменной функции характеристики и в каждом столбце логарифмической сетки, возвращаемое в виде скалярного числового значения.
Типы данных: double
CharacteristicFcnStep - Характеристическая функция, переменная интервала между сетками0.01
(по умолчанию) | числоХарактеристическая функция, переменная сетки интервала, возвращается как скаляр числовое значение.
Типы данных: double
LogStrikeStep - Логарифмический интервал сетки2*pi/NumFFT/CharacteristicFcnStep
(по умолчанию) | числоЛогарифмический интервал сетки, возвращаемый как скалярное числовое значение.
Типы данных: double
DampingFactor - Коэффициент затухания для композиции Карра-Мадана1.5
(по умолчанию) | числоКоэффициент затухания для формулировки Карра-Мадана, возвращенная как скаляр числовое значение.
Типы данных: double
Quadrature - Тип квадратурной матрицы"simpson"
(по умолчанию) | строку со значением "simpson" или "trapezoidal"Тип квадратуры, возвращаемый как строка.
Типы данных: 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 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
Опция vanilla является категорией опций, которая включает только самые стандартные компоненты.
Ванильная опция имеет срок годности и прямолинейную цену доставки. Опции в американском стиле и опции в европейском стиле классифицируются как опции ванили.
Выплата для ванильной опции следующая:
Для вызова:
Для размещения:
Здесь:
St - цена базового актива на t времени.
K - цена доставки.
Для получения дополнительной информации смотрите Опцию Vanilla.
Модель Хестона является расширением модели Блэка-Скоулза, где волатильность (квадратный корень отклонения) больше не принята постоянной, и отклонение теперь следует стохастическому (CIR) процессу. Этот процесс позволяет моделировать подразумеваемые улыбки волатильности, наблюдаемые на рынке.
Стохастическое дифференциальное уравнение
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывное дивидендное выражение.
S t является ценой актива в момент t.
v t является отклонением цены основного средства в момент t.
v 0 является начальным отклонением цены актива при t = 0 для (v 0 > 0).
θ - долгосрочный уровень отклонений для (θ > 0).
κ - средняя скорость реверсии для отклонения (κ > 0).
σ v является волатильностью отклонения для (σ v > 0).
p - корреляция между процессами Вайнера W t и Wvt для (-1 ≤ p ≤ 1).
Функция характеристики для j = 1 (мера цены актива) и j = 2 (мера, нейтральная к риску)
Здесь:
ϕ - переменная функции характеристики.
ƛ VolRisk является премией за риск волатильности.
τ - время до зрелости (τ = T - t).
i - единичное мнимое число (i2 = -1).
Определения для C j и D j в ловушке Little Heston Trap by Albrecher et al. (2007)
Модель Бейтса (Bates 1996) является расширением модели Хестона, где, в сложение к стохастической волатильности, переходу параметры диффузии, подобные Merton (1976), также добавлены к моделированию внезапных движений цен на активы.
Стохастическое дифференциальное уравнение
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывное дивидендное выражение.
S t является ценой актива в момент t.
v t является отклонением цены основного средства в момент t.
J - размер случайного процентного перехода, обусловленный происходящим переходом, где ln(1 + J) обычно распределяется со средним и стандартное отклонение, и (1 + J) имеет логнормальное распределение:
Здесь:
v 0 является начальным отклонением цены актива при t = 0 (v 0 > 0).
θ - долгосрочный уровень отклонений для (θ > 0).
κ - средняя скорость реверсии для (κ > 0).
σ v является волатильностью отклонения для (σ v > 0 ).
p является корреляцией между процессами Вайнера W t и для (-1 ≤ p ≤ 1).
μ J является средним значением J для (μ J > -1 ).
δ - стандартное отклонение ln(1 + J) для (δ ≥ 0 ).
- годовая частота (интенсивность) Пуассоновского процесса P t для ( ≥ 0).
Функция характеристики для j = 1 (средняя мера цены актива) и j = 2 (нейтральная к риску мера)
Здесь:
ϕ - переменная функции характеристики.
ƛ VolRisk является премией за риск волатильности.
τ - время погашения (τ = T - t).
i является единичным мнимым числом для (i2= -1).
Определения для C j и D j в ловушке Little Heston Trap by Albrecher et al. (2007)
Модель диффузии перехода Мертона (Merton 1976) является расширением модели Блэка-Скоулза, где внезапные изменения цен на активы (как вверх, так и вниз) моделируются добавлением параметров диффузии перехода с пуассоновским процессом.
Стохастическое дифференциальное уравнение
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывное дивидендное выражение.
W t является процессом Вайнера .
J - размер случайного процентного перехода, обусловленный происходящим переходом, где ln(1 + J) обычно распределяется со средним и стандартное отклонение, и (1 + J) имеет логнормальное распределение:
Здесь:
μ J является средним значением J для (μ J > -1).
δ - стандартное отклонение ln(1 + J) для (δ ≥ 0).
ƛ p - годовая частота (интенсивность) процесса Пуассона, P t для (ƛ p ≥ 0).
σ - волатильность цены актива для (σ > 0).
Функция характеристики для j = 1 (мера цены актива) и j = 2 (мера, нейтральная к риску)
Здесь:
ϕ - переменная функции характеристики.
τ - время до зрелости (τ = T - t).
i - единичное мнимое число (i2 = -1).
Формулировка Карр-Мадана (1999 год) является популярной модифицированной реализацией Хестонской (1993 год) среды.
Вместо того, чтобы вычислять вероятности P 1 и P 2 как промежуточные шаги, Карр и Мадан разработали альтернативное выражение, так что взятие обратного преобразования Фурье дает саму опционную цену непосредственно.
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывное дивидендное выражение.
S t является ценой актива в момент t.
τ время к зрелости (τ = T - t).
Call (K) - цена вызова при K забастовки.
Put (K) - положительная цена при забастовке K
i является модулем мнимым числом (i2= -1)
.r- характеристическая функциональная переменная.
α - коэффициент затухания.
u - характерная переменная функции для интегрирования, где ϕ = (u - (α + 1) i).
f 2 (.r) является характеристической функцией для P 2.
P 2 - это вероятность S t > K под нейтральной к риску мерой для модели.
Чтобы применить FFT или FRFT к этой формулировке, переменная функции характеристики для u интегрирования дискретизирована в NumFFT(N) точки с размером шага CharacteristicFcnStep (И u), и логарифмический k дискретизирован в N точки с размером шага LogStrikeStep(И k).
У дискретизированной характерной переменной функции для интегрирования <reservedrangesplaceholder5> <reservedrangesplaceholder4> (для j = 1,2,3..., N) есть минимальное значение 0 и максимальное значение (N-1) (Δ <reservedrangesplaceholder0>), и это приближает непрерывный диапазон интегрирования от 0 до бесконечности.
Дискретизированная сетка k n (для n = 1, 2, 3, N) приблизительно центрирована вокруг ln(S t), с минимальным значением
и максимальное значение
Где минимально допустимый удар
и максимально допустимый удар
В результате дискретизации выражение для опции вызова становится
Здесь:
Β u - размер шага переменной дискретизированной функции характеристики для интегрирования.
Β k - размер шага дискретизированного логарифмического удара.
N - количество точек БПФ или FRFT.
w j является весами для квадратуры, используемой для аппроксимации интеграла.
БПФ используется, чтобы вычислить вышеописанное выражение, если на k, и, u, распространяются следующие ограничения:
В противном случае функции используют метод FRFT, описанный в Chourdakis (2005).
[1] Albrecher, H., P. Mayer, W. Schoutens, and J. Tistaert. «Ловушка Маленького Хестона». Рабочий документ Linz and Graz University of Technology, K.U. Leuven, ING Financial Markets, 2006.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.