Создать FFT объект pricer для Vanilla прибор с использованием Merton, Heston, или Bates модель
Создать и оценить Vanilla объект прибора с Heston, Bates, или Merton модель и FFT метод ценообразования с использованием этого потока операций:
Дополнительные сведения об этом потоке операций см. в разделе Начало работы с потоками операций с использованием объектной структуры для расчета цен на финансовые инструменты.
Для получения дополнительной информации о доступных методах ценообразования для 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 объект прайсера. Можно указать несколько аргументов пары имя-значение.
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 по Albrecher et al., указанный как пара, разделенная запятыми, состоящая из: 'LittleTrap' и логическое:
true - Использовать Albrecher et al. состав.
Для получения дополнительной информации о LittleTrap, см. [1], а также состав Little Trap определен Cj и Dj в модели стохастической волатильности Heston и модели диффузии стохастической волатильности Bates.
false - Использовать оригинальную формацию Хестона.
Типы данных: logical
'NumFFT' - Количество точек сетки в переменной характеристической функции4096
(по умолчанию) | числовыеКоличество точек сетки в переменной характеристической функции и в каждом столбце сетки log-strike, указанной как разделенная запятыми пара, состоящая из 'NumFFT' и скалярное числовое значение.
Типы данных: double
'CharacteristicFcnStep' - Переменный шаг сетки характеристической функции0.01
(по умолчанию) | числовыеПеременная шаг сетки характеристической функции, указанная как разделенная запятыми пара, состоящая из 'CharacteristicFcnStep' и скалярное числовое значение.
Типы данных: double
'LogStrikeStep' - Интервал между решетками каротажа2*pi/NumFFT/CharacteristicFcnStep
(по умолчанию) | числовыеИнтервал сетки log-strike, указанный как разделенная запятыми пара, состоящая из 'LogStrikeStep' и скалярное числовое значение.
Примечание
Если (LogStrikeStep*CharacteristicFcnStepявляется 2*pi/NumFFT, используется БПФ. В противном случае используется FRFT.
Типы данных: double
'DampingFactor' - Коэффициент демпфирования для состава Carr-Madan1.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 Albrecher et al., возвращен в качестве логического.
Типы данных: logical
NumFFT - Количество точек сетки в переменной функции признака4096
(по умолчанию) | числовыеКоличество точек сетки в переменной характеристической функции и в каждом столбце сетки log-strike, возвращаемое как скалярное числовое значение.
Типы данных: double
CharacteristicFcnStep - Переменный шаг сетки характеристической функции0.01
(по умолчанию) | числовыеПеременная шаг сетки характеристической функции, возвращаемая как скалярное числовое значение.
Типы данных: double
LogStrikeStep - Интервал между решетками каротажа2*pi/NumFFT/CharacteristicFcnStep
(по умолчанию) | числовыеИнтервал сетки log-strike, возвращаемый как скалярное числовое значение.
Типы данных: double
DampingFactor - Коэффициент демпфирования для состава Carr-Madan1.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 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
Вариант ванили - это категория вариантов, включающая только самые стандартные компоненты.
Вариант ванили имеет срок годности и простую цену страйка. Варианты в американском и европейском стиле классифицируются как варианты ванили.
Окупаемость опциона на ваниль выглядит следующим образом:
Для вызова: , 0)
Для put: , 0)
Здесь:
St - цена базового актива в момент времени t.
K - цена удара.
Дополнительные сведения см. в разделе Параметр ванили.
Модель Хестона является расширением модели Блэка-Шоулза, где волатильность (квадратный корень дисперсии) больше не считается постоянной, и теперь дисперсия следует стохастическому (CIR) процессу. Этот процесс позволяет моделировать предполагаемые улыбки волатильности, наблюдаемые на рынке.
Стохастическое дифференциальное уравнение
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывный дивидендный выход.
St - цена актива в момент времени t.
vt - отклонение цены основного средства в момент времени t.
v0 - начальное отклонение цены основного средства при t = 0 для (v0 > 0).
λ - долгосрочный уровень дисперсии для (start> 0).
δ - средняя скорость реверсирования для дисперсии для (start> 0).
startv - летучесть дисперсии для (startv > 0).
p - корреляция между процессами Вайнера Wt и Wvt для (-1 ≤ p ≤ 1).
Характеристическая функция j = 1 (мера цены актива) и j = 2 (нейтральная к риску мера)
b1 =κ +λVolRisk−pσv, b2 =κ +λVolRisk
Здесь:
start- переменная характеристической функции.
ƛVolRisk - премия за риск волатильности.
start- время до наступления зрелости (start= T - t).
i - единичное мнимое число (i2 = -1).
Определения для Cj и Dj в ловушке Little Heston Albrecher et al. (2007) являются
εj=bj−pσviϕ−djbj−pσviϕ + ди-джей
Модель Бейтса (Bates 1996) является расширением модели Хестона, где, помимо стохастической волатильности, параметры скачка диффузии, аналогичные Мертону (1976), также добавляются к модельным внезапным движениям цен активов.
Стохастическое дифференциальное уравнение
= λpdt
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывный дивидендный выход.
St - цена актива в момент времени t.
vt - отклонение цены основного средства в момент времени t.
J - случайный процентный размер скачка, обусловленный происходящим скачком, где ln(1 + J) обычно распределяется со ) − δ22 и стандартным отклонением δ, а (1 + J) имеет логнормальное распределение:
мкJ) − δ22] 2δ22}
Здесь:
v0 - начальное отклонение цены основного средства при t = 0 (v0 > 0).
λ - долгосрочный уровень дисперсии для (start> 0).
δ - средняя скорость реверсирования для («» > 0 «»).
startv - дисперсная волатильность для (startv > 0).
p - корреляция между процессами Вайнера Wt и для (-1 ≤ p ≤ 1).
мкДж представляет собой среднее значение J для (мкДж > -1).
δ - стандартное отклонение ln(1 + J) для (δ ≥ 0 ).
- годовая частота (интенсивность) процесса Пуассона Pt для ( ≥ 0).
Характеристическая функция ) для j = 1 (средний показатель цены актива) и j = 2 (нейтральный к риску показатель)
b1 =κ +λVolRisk−pσv, b2 =κ +λVolRisk
Здесь:
start- переменная характеристической функции.
ƛVolRisk - премия за риск волатильности.
start- время созревания для (start= T - t).
i - единичное мнимое число для (i2 = -1).
Определения для Cj и Dj в ловушке Little Heston Albrecher et al. (2007) являются
εj=bj−pσviϕ−djbj−pσviϕ + ди-джей
Модель диффузии прыжков Мертона (Merton 1976) является расширением модели Блэка-Шоулза, где внезапные движения цен активов (как вверх, так и вниз) моделируются путем добавления параметров диффузии скачков с процессом Пуассона.
Стохастическое дифференциальное уравнение
(dPt = 1) = λ pdt
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывный дивидендный выход.
Wt - процесс Вайнера.
J - случайный процентный размер скачка, обусловленный происходящим скачком, где ln(1 + J) обычно распределяется со ) − δ22 и стандартным отклонением δ, а (1 + J) имеет логнормальное распределение:
мкJ) − δ22] 2δ22}
Здесь:
мкДж представляет собой среднее значение J для (мкДж > -1).
δ - стандартное отклонение ln(1 + J) для (δ≥ 0).
ƛp - годовая частота (интенсивность) процесса Пуассона Ptfor (ƛp ≥ 0).
λ - волатильность цены актива для (λ > 0).
Характеристическая функция ) для j = 1 (мера цены актива) и j = 2 (нейтральная к риску мера)
]−ϕ2σ22τ) m1=12, m2 =−12
Здесь:
start- переменная характеристической функции.
start- время до наступления зрелости (start= T- t).
i - единичное мнимое число (i2 = -1).
Формулировка Карра-Мадана (1999) является популярной модифицированной реализацией структуры Хестона (1993).
Вместо того, чтобы вычислять вероятности P1 и P2 как промежуточные шаги, Карр и Мадан разработали альтернативное выражение, так что принятие его обратного преобразования Фурье дает цену опциона непосредственно.
Пут (K) = вызов (K) + Ke − r
Здесь:
r - непрерывная безрисковая ставка.
q - непрерывный дивидендный выход.
St - цена актива в момент времени t.
start- время до зрелости (start= T-t).
Call (K) - цена вызова при ударе K.
Пут (К) - цена пут при ударе К
i - единичное воображаемое число (i2 = -1)
start- переменная характеристической функции.
α - коэффициент демпфирования.
u - это переменная характеристической функции для интегрирования, где start= = (u - (α + 1) i).
f2 (start) является характеристической функцией для P2.
P2 - вероятность St > K в рамках нейтральной по риску меры для модели.
Для применения FFT или FRFT к этой формулировке переменная характеристической функции для интегрирования u дискретизируется в NumFFT(N) точек с размером шага CharacteristicFcnStep (Δu), и логарифмический удар k дискретизируется в N точек с размером шага LogStrikeStep(Δk).
Дискретизированная переменная характеристической функции для интегрирования uj (для j = 1,2,3,...,N) имеет минимальное значение 0 и максимальное значение (N-1) (Δu), и она аппроксимирует диапазон непрерывного интегрирования от 0 до бесконечности.
Дискретизированная логарифмическая сетка kn (для n = 1, 2, 3, N) ориентировочно центрирована вокругln(St), с минимальным значением
N2Δk
и максимальное значение, равное
1) Δk
Где минимально допустимый удар
N2Δk)
и максимально допустимый удар
Δk]
В результате дискретизации выражение для опции вызова становится
(St)] (uj)] wj
Здесь:
Δu - размер шага дискретизированной характеристической функции для интегрирования.
Δk - размер шага дискретизированного логарифмического удара.
N - количество точек БПФ или БПФ.
wj - веса квадратуры, используемые для аппроксимации интеграла.
FFT используется для оценки вышеуказанного выражения, если Δk и Δu подвержены следующему ограничению:
2πN)
В противном случае функции используют метод FRFT, описанный в Chourdakis (2005).
[1] Альбрехер, Х., П. Майер, В. Шоутенс и Дж. Тистаерт. «Маленькая ловушка Хестона.» Рабочий документ, Линц и Грацский технологический университет, К. У. Левен, ING Financial Markets, 2006.
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.