Создание 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. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.