Цена опциона и чувствительность по модели Бейтса с использованием конечных разниц
[ вычисляет ванильную европейскую или американскую цену опциона и чувствительность по модели Бейтса, используя метод неявного изменения направления (ADI).PriceSens,PriceGrid,AssetPrices,Variances,Times] = optSensByBatesFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,V0,ThetaV,Kappa,SigmaV,RhoSV,MeanJ,JumpVol,JumpFreq)
[ указывает параметры, использующие один или несколько аргументов пары имя-значение в дополнение к входным аргументам в предыдущем синтаксисе. PriceSens,PriceGrid,AssetPrices,Variances,Times] = optSensByBatesFD(___,Name,Value)
Определите переменные опций и параметры модели Бейтса.
AssetPrice = 90; Strike = 100; Rate = 0.03; Settle = '01-Jan-2018'; ExerciseDates = '02-Jul-2018'; V0 = 0.04; ThetaV = 0.04; Kappa = 2; SigmaV = 0.25; RhoSV = -0.5; JumpVol = 0.4; MeanJ = exp(-0.5+JumpVol.^2/2)-1; JumpFreq = 0.2;
Вычислите цену опциона американского пут и чувствительность, используя метод конечных разниц.
OptSpec = 'Put'; [Price, Delta, Gamma, Rho, Theta, Vega, VegaLT] = optSensByBatesFD(Rate, AssetPrice, Settle, ExerciseDates,... OptSpec, Strike, V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, 'AmericanOpt', 1,... 'OutSpec', ["Price" "Delta" "Gamma" "Rho" "Theta" "Vega" "VegaLT"])
Price = 11.6116
Delta = -0.6578
Gamma = 0.0366
Rho = -20.1643
Theta = -4.8425
Vega = 14.3216
VegaLT = 8.1849
Rate - Постоянно усложняемая безрисковая процентная ставкаНепрерывно складываемая безрисковая процентная ставка, заданная как скалярное десятичное число.
Типы данных: double
AssetPrice - Текущая базовая цена активаТекущая базовая цена актива, указанная как скалярное число.
Типы данных: double
Settle - Дата расчета опциона Дата расчета опциона, заданная как скаляр с использованием серийного номера даты, вектора символов даты, объекта datetime или строкового скаляра.
Типы данных: double | char | datetime | string
ExerciseDates - Даты опционных упражненийДаты выполнения опции, указанные как порядковый номер даты, вектор символов даты, объект datetime или строковый скаляр:
Для европейского параметра используйте скалярный серийный номер даты, вектор символов даты, массив datetime или строковый массив. Для европейского варианта: ExerciseDates содержит только одно значение: дату истечения срока действия опции.
Для американского варианта используйте 1около-2 вектор серийных номеров дат, векторы символов даты, массивы даты и времени или строковые массивы для задания границ даты упражнения. Американский опцион может быть осуществлен на любую дату между или включая пару дат. Если только один не -NaN дата указана, то опцион может быть реализован между Settle дата и единственное перечисленное значение в ExerciseDates.
Типы данных: double | char | datetime | string
OptSpec - Определение опциона 'call' или 'put' | строка со значением "call" или "put"Определение параметра, заданного как скаляр с использованием символьного вектора или строки со значением 'call' или 'put'.
Типы данных: cell | string
Strike - Цена страйка опционаЗначение цены страйка опциона, указанное как скалярное число.
Типы данных: double
V0 - Первоначальное отклонение базового активаНачальная дисперсия подстилающего актива, заданная как скалярное число.
Типы данных: double
ThetaV - Долгосрочное отклонение базового активаДолгосрочная дисперсия подстилающего актива, указанная как скалярное число.
Типы данных: double
Kappa - Средняя скорость пересмотра для отклонения базового активаСредняя скорость пересмотра для базового актива, указанная как скалярное число.
Типы данных: double
SigmaV - Волатильность отклонения базового активаВолатильность дисперсии недоделанного актива, определяемая как скалярное число.
Типы данных: double
RhoSV - Корреляция между процессами Weiner для базового актива и его отклонениемКорреляция между процессами Вайнера для базового актива и его дисперсией, заданная как скалярная цифра.
Типы данных: 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,PriceGrid] = optSensByBatesFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,V0,ThetaV,Kappa,SigmaV,RhoSV,MeanJ,JumpVol,JumpFreq,'Basis',7,'OutSpec','delta')'Basis' - Дневная основа прибора0 (по умолчанию) | числовые значения: 0,1, 2, 3, 4, 6, 7, 8, 9, 10, 11, 12, 13Дневной отсчет прибора, определяемый как пара, разделенная запятыми, состоящая из 'Basis' и скаляр, использующий поддерживаемое значение:
0 = факт/факт
1 = 30/360 (SIA)
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 = BUS/252
Дополнительные сведения см. в разделе Базис.
Типы данных: double
'DividendYield' - Постоянно увеличиваемая базовая доходность активов0
(по умолчанию) | скалярный числовойПостоянно смешанная базовая доходность активов, указанная как пара, разделенная запятыми, состоящая из 'DividendYield' и скалярный числовой.
Примечание
При вводе значения для DividendYield, затем установить DividendAmounts и ExDividendDates = [ ] или не вводите их. При вводе значений для DividendAmounts и ExDividendDates, затем установить DividendYield = 0.
Типы данных: double
'DividendAmounts' - Суммы денежных дивидендов[ ]
(по умолчанию) | векторСуммы денежных дивидендов, указанные как пара, разделенная запятыми, состоящая из 'DividendAmounts' и NDIVоколо-1 вектор.
Примечание
Каждая сумма дивидендов должна иметь соответствующую дату. При вводе значений для DividendAmounts и ExDividendDates, затем установить DividendYield = 0.
Типы данных: double
'ExDividendDates' - Даты выплаты бывших дивидендов[ ]
(по умолчанию) | серийный номер даты | вектор символов даты | строковый массив | массив datetimeДаты бывших дивидендов, указанные как пара, разделенная запятыми, состоящая из 'ExDividendDates' и NDIVоколо-1 вектор серийных номеров дат, векторы символов даты, строковые массивы или массивы datetime.
Типы данных: double | char | string | datetime
'AssetPriceMax' - Максимальная цена для границы ценовой сеткиМаксимальная цена для границы сетки цен, указанная как пара, разделенная запятыми, состоящая из 'AssetPriceMax' и положительный скалярный числовой.
Типы данных: double
'VarianceMax' - Максимальное отклонение для границы сетки отклонений1.0 (по умолчанию) | скалярный числовойМаксимальное отклонение для границы сетки дисперсии, указанное как пара, разделенная запятыми, состоящая из 'VarianceMax' как скалярный числовой.
Типы данных: double
'AssetGridSize' - Размер сетки активов для сетки конечных разниц400
(по умолчанию) | скалярный числовойРазмер сетки активов для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'AssetGridSize' и скалярный числовой.
Типы данных: double
'VarianceGridSize' - Количество узлов дисперсионной сетки для сетки конечных разностей200
(по умолчанию) | скалярный числовойКоличество узлов сетки дисперсии для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'VarianceGridSize' и скалярный числовой.
Типы данных: double
'TimeGridSize' - Количество узлов временной сетки для сетки конечных разностей100
(по умолчанию) | положительный числовой скалярКоличество узлов временной сетки для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'TimeGridSize' и положительный числовой скаляр.
Типы данных: double
'AmericanOpt' - Тип опции0 (Европейский) (по умолчанию) | скаляр со значением [0,1]Тип опции, указанный как разделенная запятыми пара, состоящая из 'AmericanOpt' и скалярный флаг с одним из следующих значений:
0 - Европейский
1 - американский
Типы данных: double
'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
PriceSens - Цена опциона или чувствительностьЦена опциона или чувствительность, возвращаемая в виде цифры. Аргумент пары имя-значение OutSpec определяет типы и порядок выходов.
PriceGrid - Сетка, содержащая цены, рассчитанные методом конечных разницСетка, содержащая цены, рассчитанные методом конечных разниц, возвращаемые как двумерная сетка с размером AssetGridSize ⨉ TimeGridSize. Количество столбцов не обязательно равно TimeGridSize потому что функция добавляет даты упражнений и бывших дивидендов к временной сетке. PriceGrid(:, :, end) содержит цену для t = 0.
AssetPrices - Цены активаЦены актива, соответствующие первому измерению PriceGrid, возвращено как вектор.
Variances - ОтклоненияОтклонения, соответствующие второй размерности PriceGrid, возвращено как вектор.
Times - ВремяВремя, соответствующее третьему измерению PriceGrid, возвращено как вектор.
Вариант ванили - это категория вариантов, включающая только самые стандартные компоненты.
Вариант ванили имеет срок годности и простую цену страйка. Варианты в американском и европейском стиле классифицируются как варианты ванили.
Окупаемость опциона на ваниль выглядит следующим образом:
Для вызова: , 0)
Для put: , 0)
где:
St - цена базового актива в момент времени t.
K - цена удара.
Дополнительные сведения см. в разделе Параметр ванили.
Модель Бейтса [1] расширяет модель Хестона за счет включения стохастической волатильности и (аналогично Мертону) параметров диффузии скачков в моделирование внезапных движений цен активов.
Стохастическое дифференциальное уравнение
= λ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).
[1] Бейтс, Д. С. «Скачки и стохастическая волатильность: процессы обменного курса, неявные в опционах Deutsche Mark». Обзор финансовых исследований. Том 9, № 1, 1996.
optByBatesFD | optByHestonFD | optByLocalVolFD | optByMertonFD | optSensByHestonFD | optSensByLocalVolFD | optSensByMertonFD
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.