Цена опции или чувствительность моделью Bates с помощью численного интегрирования
добавляют дополнительные аргументы пары "имя-значение". PriceSens
= optSensByBatesNI(___,Name,Value
)
optSensByBatesNI
численное интегрирование использования, чтобы вычислить чувствительность опции и затем построить поверхности чувствительности опции.
Задайте переменные опции, и убавляет параметры модели
AssetPrice = 80;
Rate = 0.03;
DividendYield = 0.02;
OptSpec = 'call';
V0 = 0.04;
ThetaV = 0.05;
Kappa = 1.0;
SigmaV = 0.2;
RhoSV = -0.7;
MeanJ = 0.02;
JumpVol = 0.08;
JumpFreq = 2;
Вычислите чувствительность опции для одной забастовки
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, 6); Strike = 80; Delta = optSensByBatesNI(Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta")
Delta = 0.5630
Вычислите чувствительность опции для вектора забастовок
Strike
введите может быть вектор.
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, 6); Strike = (76:2:84)'; Delta = optSensByBatesNI(Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta")
Delta = 5×1
0.6807
0.6234
0.5630
0.5011
0.4392
Вычислите чувствительность опции для вектора забастовок и вектора дат тех же длин
Используйте Strike
введите, чтобы задать забастовки. Кроме того, Maturity
введите может быть вектор, но он должен совпадать с длиной Strike
вектор, если ExpandOutput
аргумент пары "имя-значение" не установлен в "true"
.
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, [12 18 24 30 36]); % Five maturities Strike = [76 78 80 82 84]'; % Five strikes Delta = optSensByBatesNI(Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta") % Five values in vector output
Delta = 5×1
0.6625
0.6232
0.5958
0.5748
0.5577
Расширьте Выход для поверхности
Установите ExpandOutput
аргумент пары "имя-значение" "true"
расширять выход в NStrikes
- NMaturities
матрица. В этом случае это - квадратная матрица.
Delta = optSensByBatesNI(Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta", ... 'ExpandOutput', true) % (5 x 5) matrix output
Delta = 5×5
0.6625 0.6556 0.6515 0.6483 0.6455
0.6222 0.6232 0.6239 0.6241 0.6238
0.5805 0.5900 0.5958 0.5996 0.6019
0.5381 0.5564 0.5674 0.5748 0.5798
0.4954 0.5225 0.5389 0.5499 0.5577
Вычислите чувствительность опции для вектора забастовок и вектора дат различных длин
Когда ExpandOutput
"true"
, NStrikes
не должны совпадать с NMaturities
. Таким образом, выход NStrikes
- NMaturities
матрица может быть прямоугольной.
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, 12*(0.5:0.5:3)'); % Six maturities Strike = (76:2:84)'; % Five strikes Delta = optSensByBatesNI(Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta", ... 'ExpandOutput', true) % (5 x 6) matrix output
Delta = 5×6
0.6807 0.6625 0.6556 0.6515 0.6483 0.6455
0.6234 0.6222 0.6232 0.6239 0.6241 0.6238
0.5630 0.5805 0.5900 0.5958 0.5996 0.6019
0.5011 0.5381 0.5564 0.5674 0.5748 0.5798
0.4392 0.4954 0.5225 0.5389 0.5499 0.5577
Вычислите чувствительность опции для вектора забастовок и вектора цен активов
Когда ExpandOutput
"true"
, выходом может также быть NStrikes
- NAssetPrices
прямоугольная матрица путем принятия вектора цен активов.
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, 12); % Single maturity ManyAssetPrices = [70 75 80 85]; % Four asset prices Strike = (76:2:84)'; % Five strikes Delta = optSensByBatesNI(Rate, ManyAssetPrices, Settle, Maturity, OptSpec, Strike, ... V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, ... 'DividendYield', DividendYield, 'OutSpec', "delta", ... 'ExpandOutput', true) % (5 x 4) matrix output
Delta = 5×4
0.4350 0.5579 0.6625 0.7457
0.3881 0.5124 0.6222 0.7120
0.3432 0.4670 0.5805 0.6763
0.3010 0.4223 0.5381 0.6390
0.2619 0.3789 0.4954 0.6002
Постройте поверхности чувствительности опции
Strike
и Maturity
входные параметры могут быть векторами. Установите ExpandOutput
к "true"
выводить поверхности как NStrikes
- NMaturities
матрицы.
Settle = datenum('29-Jun-2017'); Maturity = datemnth(Settle, 12*[1/12 0.25 (0.5:0.5:3)]'); Times = yearfrac(Settle, Maturity); Strike = (2:2:200)'; [Delta, Gamma, Rho, Theta, Vega, VegaLT] = optSensByBatesNI(... Rate, AssetPrice, Settle, Maturity, OptSpec, Strike, V0, ThetaV, Kappa, ... SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, 'DividendYield', DividendYield, ... 'OutSpec', ["delta", "gamma", "rho", "theta", "vega", "vegalt"], ... 'ExpandOutput', true); [X,Y] = meshgrid(Times,Strike); figure; surf(X,Y,Delta); title('Delta'); xlabel('Years to Option Expiry'); ylabel('Strike'); view(-112,34); xlim([0 Times(end)]);
figure; surf(X,Y,Gamma) title('Gamma') xlabel('Years to Option Expiry') ylabel('Strike') view(-112,34); xlim([0 Times(end)]);
figure; surf(X,Y,Rho) title('Rho') xlabel('Years to Option Expiry') ylabel('Strike') view(-112,34); xlim([0 Times(end)]);
figure; surf(X,Y,Theta) title('Theta') xlabel('Years to Option Expiry') ylabel('Strike') view(-112,34); xlim([0 Times(end)]);
figure; surf(X,Y,Vega) title('Vega') xlabel('Years to Option Expiry') ylabel('Strike') view(-112,34); xlim([0 Times(end)]);
figure; surf(X,Y,VegaLT) title('VegaLT') xlabel('Years to Option Expiry') ylabel('Strike') view(-112,34); xlim([0 Times(end)]);
Rate
— Постоянно составляемая безрисковая процентная ставкаПостоянно составляемая безрисковая процентная ставка, заданная как скалярное десятичное значение.
Типы данных: double
AssetPrice
— Текущая цена базового активаТекущая цена базового актива, заданная как числовое значение с помощью скаляра или NINST
- 1
или NColumns
- 1
вектор.
Для получения дополнительной информации о соответствующих размерностях для AssetPrice
, смотрите аргумент пары "имя-значение" ExpandOutput
.
Типы данных: double
Settle
— Расчетный день опции Расчетный день опции, заданный как NINST
- 1
или NColumns
- 1
вектор с помощью последовательных чисел даты, векторов символов даты, массивов datetime или строковых массивов. Settle
дата должна быть перед Maturity
дата.
Для получения дополнительной информации о соответствующих размерностях для Settle
, смотрите аргумент пары "имя-значение" ExpandOutput
.
Типы данных: double |
char
| datetime
| string
Maturity
— Дата погашения опцииДата погашения опции, заданная как NINST
- 1
или NColumns
- 1
вектор с помощью последовательных чисел даты, векторов символов даты, массивов datetime или строковых массивов.
Для получения дополнительной информации о соответствующих размерностях для Maturity
, смотрите аргумент пары "имя-значение" ExpandOutput
.
Типы данных: double |
char
| datetime
| string
OptSpec
— Определение опции 'call'
или 'put'
| массив строк со значениями "call"
или "put"
Определение опции, заданной как NINST
- 1
или NColumns
- 1
вектор с помощью массива ячеек из символьных векторов или строковых массивов со значениями 'call'
или 'put'
.
Для получения дополнительной информации о соответствующих размерностях для OptSpec
, смотрите аргумент пары "имя-значение" ExpandOutput
.
Типы данных: cell
| string
Strike
— Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции, заданное как NINST
- 1
, NRows
- 1
, NRows
- NColumns
вектор цен исполнения опциона.
Для получения дополнительной информации о соответствующих размерностях для Strike
, смотрите аргумент пары "имя-значение" ExpandOutput
.
Типы данных: double
V0
— Начальное отклонение базового активаНачальное отклонение актива подчиненного, заданного как скалярное числовое значение.
Типы данных: double
ThetaV
— Долгосрочное отклонение базового активаДолгосрочное отклонение актива подчиненного, заданного как скалярное числовое значение.
Типы данных: double
Kappa
— Средняя скорость версии для отклонения базового активаСредняя скорость версии для актива подчиненного, заданного как скалярное числовое значение.
Типы данных: double
SigmaV
— Энергозависимость отклонения базового активаЭнергозависимость отклонения актива подчиненного, заданного как скалярное числовое значение.
Типы данных: double
RhoSV
— Корреляция между процессами Вайнера для базового актива и его отклоненияКорреляция между процессами Вайнера для базового актива и его отклонения, заданного как скалярное числовое значение.
Типы данных: double
MeanJ
— Среднее значение случайного размера скачка процентаСреднее значение случайного размера скачка процента (J), заданный как скалярное десятичное значение, где log
(1+J) нормально распределено со средним значением (log
(1+MeanJ
)-0.5*JumpVol
^2) и стандартное отклонение JumpVol
.
Типы данных: double
JumpVol
— Стандартное отклонение log
(1+J)Стандартное отклонение log
(1+J), где J
случайный размер скачка процента, заданный как скалярное десятичное значение.
Типы данных: double
JumpFreq
— Ежегодная частота процесса скачка ПуассонаЕжегодная частота процесса скачка Пуассона, заданного как скалярное числовое значение.
Типы данных: double
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
PriceSens = optSensByBatesNI(Rate,AssetPrice,Settle,Maturity, OptSpec,Strike,V0,ThetaV,Kappa,SigmaV,RhoSV,MeanJ,JumpVol,JumpFreq,'Basis',7)
'Basis'
— Основание дневного количества инструмента
(значение по умолчанию) | числовые значения: 0
,1
, 2
, 3
, 4
, 6
, 7
, 8
, 9
, 10
, 11
, 12
, 13
Дневное количество инструмента, заданного как разделенная запятой пара, состоящая из 'Basis'
и скаляр с помощью поддерживаемого значения:
0 = фактический/фактический
1 = 30/360 (СИА)
2 = Фактический/360
3 = Фактический/365
4 = 30/360 (PSA)
5 = 30/360 (ISDA)
6 = 30/360 (европеец)
7 = Фактический/365 (японский язык)
8 = фактический/фактический (ICMA)
9 = Фактический/360 (ICMA)
10 = Фактический/365 (ICMA)
11 = 30/360E (ICMA)
12 = Фактический/365 (ISDA)
13 = ШИНА/252
Для получения дополнительной информации смотрите Основание.
Типы данных: double
'DividendYield'
— Постоянно составляемая доходность базовых активов
(значение по умолчанию) | числовойПостоянно составляемая доходность базовых активов, заданная как разделенная запятой пара, состоящая из 'DividendYield'
и скалярное числовое значение.
Типы данных: double
'VolRiskPremium'
— Надбавка за риск энергозависимости
(значение по умолчанию) | числовойНадбавка за риск энергозависимости, заданная как разделенная запятой пара, состоящая из 'VolRiskPremium'
и скалярное числовое значение.
Типы данных: double
'LittleTrap'
— Отметьте указание на Небольшую формулировку Прерывания Хестонаtrue
(значение по умолчанию) | логический со значениями true
или false
Отметьте указание на Небольшую формулировку Прерывания Хестона Albrecher и др.
, заданный как разделенная запятой пара, состоящая из 'LittleTrap'
и логическое:
true
— Используйте Albrecher и др.
формулировка.
false
— Используйте исходное формирование Хестона.
Типы данных: логический
'OutSpec'
— Задайте выходные параметры["price"]
(значение по умолчанию) | массив строк со значениями "price"
\delta
\Gamma
, "vega"
\rho
, "theta"
, и "vegalt"
| массив ячеек из символьных векторов со значениями 'price'
\delta
\Gamma
, 'vega'
\rho
, 'theta'
, и 'vegalt'
Задайте выходные параметры, заданные как разделенная запятой пара, состоящая из 'OutSpec'
и NOUT
- 1
или 1
- NOUT
массив строк или массив ячеек из символьных векторов с поддерживаемыми значениями.
"vega"
чувствительность с уважением начальная энергозависимость sqrt (V0
). В отличие от этого "vegalt"
чувствительность относительно долгосрочной энергозависимости sqrt (ThetaV
).
Пример: OutSpec = ["price","delta","gamma","vega","rho","theta","vegalt"]
Типы данных: string
| cell
'AbsTol'
— Допуск абсолютной погрешности к численному интегрированию1e-10
(значение по умолчанию) | числовойДопуск абсолютной погрешности к численному интегрированию, заданному как разделенная запятой пара, состоящая из 'AbsTol'
и скалярное числовое значение.
Типы данных: double
'RelTol'
— Допуск относительной погрешности к численному интегрированию1e-6
(значение по умолчанию) | числовойДопуск относительной погрешности к численному интегрированию, заданному как разделенная запятой пара, состоящая из 'RelTol'
и скалярное числовое значение.
Типы данных: double
'IntegrationRange'
— Область значений численного интегрирования раньше аппроксимировала непрерывный интеграл по [0 Inf]
[1e-9 Inf]
(значение по умолчанию) | векторОбласть значений численного интегрирования раньше аппроксимировала непрерывный интеграл по [0 Inf]
, заданный как разделенная запятой пара, состоящая из 'IntegrationRange'
и 1
- 2
вектор, представляющий [LowerLimit UpperLimit]
.
Типы данных: double
'Framework'
— Среда за вычислительные цены опции и чувствительность с помощью численного интегрирования моделей"heston1993"
(значение по умолчанию) | представляет в виде строки со значениями "heston1993"
или "lewis2001"
| вектор символов со значениями 'heston1993'
или 'lewis2001'
Среда за вычислительные цены опции и чувствительность с помощью численного интегрирования моделей, заданных как разделенная запятой пара, состоящая из 'Framework'
и скалярная строка или вектор символов со следующими значениями:
"heston1993"
или 'heston1993'
— Метод используется в Хестоне (1993)
"lewis2001"
или 'lewis2001'
— Метод используется в Льюисе (2001)
Типы данных: char |
string
'ExpandOutput'
— Отметьте, чтобы расширить выходные параметрыfalse
(выходными параметрами является NINST
- 1
векторы) (значение по умолчанию) | логический со значением true
или false
Отметьте, чтобы расширить выходные параметры, заданные как разделенная запятой пара, состоящая из 'ExpandOutput'
и логическое:
true
— Если true
, выходными параметрами является NRows
- NColumns
матрицы. NRows
количество борьбы за каждый столбец, и это определяется Strike
входной параметр. Например, Strike
может быть NRows
- 1
вектор или NRows
- NColumns
матрица. NColumns
определяется размерами AssetPrice
, Settle
, Maturity
, и OptSpec
, который должен все быть или скаляром или NColumns
- 1
векторы.
false
— Если false
, выходными параметрами является NINST
- 1
векторы. Кроме того, входные параметры Strike
, AssetPrice
, Settle
, Maturity
, и OptSpec
должен все быть или скаляр или NINST
- 1
векторы.
Типы данных: логический
PriceSens
— Цены опцииЦены опции или чувствительность, возвращенная как NINST
- 1
, или NRows
- NColumns
, В зависимости от ExpandOutput
. Аргумент пары "имя-значение" OutSpec
определяет типы и порядок выходных параметров.
vanilla option является категорией опций, которая включает только самые стандартные компоненты.
Опция ванили имеет дату истечения срока и прямую цену исполнения опциона. Американские параметры стиля и европейские параметры стиля оба категоризированы как опции ванили.
Выплата для опции ванили следующие:
Для вызова:
Для помещенного:
где:
St является ценой базового актива во время t.
K является ценой исполнения опциона.
Для получения дополнительной информации см. Опцию Ванили.
Модель Бэйтса (Бэйтс (1996)) является расширением модели Хестона, где в дополнение к стохастической энергозависимости параметры диффузии скачка, похожие на Мертон (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 является модульным мнимым числом для (i 2 =-1).
Определения для C j и D j под “Небольшим Прерыванием Хестона” Albrecher и др. (2007):
Численное интегрирование используется, чтобы оценить непрерывный интеграл для обратного преобразования Фурье.
Метод численного интегрирования при Хестоне (1993) среда основан на следующих выражениях:
где
r является непрерывным безрисковым уровнем.
q является непрерывной дивидендной доходностью.
S t является ценой активов во время t.
K является забастовкой.
τ время к зрелости (τ = T-t).
Call (K) является досрочной ценой в забастовке K.
Put (K) является помещенной ценой в забастовке K.
i является модульным мнимым числом (i 2 =-1).
ϕ переменная характеристической функции.
f j (ϕ) является характеристической функцией для P j (j = 1,2).
P 1 является вероятностью S t> K под мерой цен активов для модели.
P 2 является вероятностью S t> K под нейтральной к риску мерой для модели.
Где j = 1,2 так, чтобы f 1 (ϕ) и f 2 (ϕ) был характеристическими функциями для вероятностей P 1 и P 2, соответственно.
Эта среда выбрана со значением по умолчанию “Heston1993”
для Framework
аргумент пары "имя-значение".
Численное интегрирование используется, чтобы оценить непрерывный интеграл для обратного преобразования Фурье.
Метод численного интегрирования при Льюисе (2001) среда основан на следующих выражениях:
где
r является непрерывным безрисковым уровнем.
q является непрерывной дивидендной доходностью.
S t является ценой активов во время t.
K является забастовкой.
τ время к зрелости (τ = T-t).
Call (K) является досрочной ценой в забастовке K.
Put (K) является помещенной ценой в забастовке K.
i является модульным мнимым числом (i 2 =-1).
ϕ переменная характеристической функции.
u является переменной характеристической функции для интегрирования, где .
f 2 (ϕ) является характеристической функцией для P 2.
P 2 является вероятностью S t> K под нейтральной к риску мерой для модели.
Эта среда выбрана со значением “Lewis2001”
для Framework
аргумент пары "имя-значение".
[1] Убавляет, D. S. “Скачки и стохастическая энергозависимость: процессы обменного курса, неявные в опциях немецкой марки”. Анализ финансовых исследований. Vol 9. № 1. 1996.
[2] Хестон, S. L. “Решение закрытой формы для опций со стохастической энергозависимостью с приложениями к опциям связи и валюты”. Анализ финансовых исследований. Vol 6. № 2. 1993.
[3] Льюис, A. L. “Простая формула опции для общей диффузии скачка и других экспоненциальных процессов налога”. Предположите финансовые системы и OptionCity.net, 2001.
optByBatesFFT
| optByBatesNI
| optByHestonFFT
| optByHestonNI
| optByMertonFFT
| optByMertonNI
| optSensByBatesFFT
| optSensByHestonFFT
| optSensByHestonNI
| optSensByMertonFFT
| optSensByMertonNI
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.