Цена опции и чувствительность моделью Merton76 с помощью конечных разностей
[
вычисляет европейца ванили или американскую цену опции и чувствительность моделью Merton76, с помощью метода Crank-Nicolson Adams-Bashforth (CNAB) IMEX.PriceSens
,PriceGrid
,AssetPrices
,Times
] = optSensByMertonFD(Rate
,AssetPrice
,Settle
,ExerciseDates
,OptSpec
,Strike
,Sigma
,MeanJ
,JumpVol
,JumpFreq
)
[
задает опции с помощью одного или нескольких аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе. PriceSens
,PriceGrid
,AssetPrices
,Times
] = optSensByMertonFD(___,Name,Value
)
Задайте переменные опции и параметры модели Мертона.
AssetPrice = 90; Strike = 100; Rate = 0.06; DividendYield = 0.1; Settle = '01-Jan-2018'; ExerciseDates = '02-Apr-2018'; Sigma = 0.40; MeanJ = -0.10; JumpVol = 0.01; JumpFreq = 1.00;
Вычислите американскую цену колл-опциона и чувствительность с помощью метода конечных разностей.
OptSpec = 'Call'; [Price, Delta, Gamma, Rho, Theta, Vega] = optSensByMertonFD(Rate, AssetPrice, Settle, ExerciseDates, OptSpec, Strike,... Sigma, MeanJ, JumpVol, JumpFreq, 'DividendYield', DividendYield, 'AmericanOpt', 1,... 'OutSpec', ["Price" "Delta" "Gamma" "Rho" "Theta" "Vega"])
Price = 3.4551
Delta = 0.3211
Gamma = 0.0195
Rho = 5.6610
Theta = -11.9877
Vega = 15.5156
Rate
— Постоянно составляемая безрисковая процентная ставкаПостоянно составляемая безрисковая процентная ставка в виде скалярного десятичного значения.
Типы данных: double
AssetPrice
— Текущая цена базового активаТекущая цена базового актива в виде числового скаляра.
Типы данных: double
Settle
— Расчетный день опции Расчетный день опции в виде скаляра с помощью последовательного номера даты, вектора символов даты, массива datetime или массива строк.
Типы данных: double |
char
| datetime
| string
ExerciseDates
— Даты осуществления опцииДаты осуществления опции в виде последовательного номера даты, вектора символов даты, массива datetime или массива строк:
Для европейской опции используйте скалярный последовательный номер даты, вектор символов даты, массив datetime или массив строк. Для европейской опции, ExerciseDates
содержит только одно значение: дата окончания срока действия опции.
Для американской опции используйте 1
- 2
вектор из последовательных чисел даты, векторов символов даты, массивов datetime или строковых массивов, чтобы задать контуры даты осуществления. Американская опция может быть осуществлена в любую дату между или включая пару дат. Если только один non-NaN
дата перечислена, затем опция может быть осуществлена между Settle
дата и одно перечисленное значение в ExerciseDates
.
Типы данных: double |
char
| datetime
| string
OptSpec
— Определение опции 'call'
или 'put'
| массив строк со значением "call"
или "put"
Определение опции в виде скаляра с помощью вектора символов или массива строк со значением 'call'
или 'put'
.
Типы данных: cell
| string
Strike
— Значение цены исполнения опциона опцииЗначение цены исполнения опциона опции в виде числового скаляра.
Типы данных: double
Sigma
— Энергозависимость базового активаЭнергозависимость актива подчиненного в виде числового скаляра.
Типы данных: 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
.
[Price,PriceGrid] = optByMertonFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,MeanJ,JumpVol,JumpFreq,'Basis',7,'OutSpec','delta')
'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'
и числовой скаляр.
Примечание
Если вы вводите значение для 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
'AssetGridSize'
— Размер сетки актива для сетки конечной разности
(значение по умолчанию) | числовой скалярРазмер сетки актива для сетки конечной разности в виде разделенной запятой пары, состоящей из 'AssetGridSize'
и числовой скаляр.
Типы данных: double
'TimeGridSize'
— Количество узлов сетки времени для сетки конечной разности
(значение по умолчанию) | положительный числовой скалярКоличество узлов сетки времени для сетки конечной разности в виде разделенной запятой пары, состоящей из 'TimeGridSize'
и положительный числовой скаляр.
Типы данных: double
'AmericanOpt'
— Тип опции
(Европейское) (значение по умолчанию) | скаляр со значением [0,1]
Тип опции в виде разделенной запятой пары, состоящей из 'AmericanOpt'
и скалярный флаг с одним из этих значений:
0 — Европеец
1 — Американец
Типы данных: double
'OutSpec'
— Задайте выходные параметры['price']
(значение по умолчанию) | массив ячеек из символьных векторов со значениями 'price'
\delta
\Gamma
, 'vega'
\rho
, и 'theta'
| массив строк со значениями "price"
\delta
\Gamma
, "vega"
\rho
, и "theta"
Задайте выходные параметры в виде разделенной запятой пары, состоящей из 'OutSpec'
и NOUT
- 1
или 1
- NOUT
массив строк или массив ячеек из символьных векторов с поддерживаемыми значениями.
Пример: OutSpec = ['price','delta','gamma','vega','rho','theta']
Типы данных: string
| cell
PriceSens
— Цена опции или чувствительностьЦена опции или чувствительность, возвращенная как числовое. Аргумент пары "имя-значение" OutSpec
определяет типы и порядок выходных параметров.
PriceGrid
— Сетка, содержащая цены, вычисленные методом конечной разностиСетка, содержащая цены, вычисленные методом конечной разности, возвращенным как двумерная сетка с размером AssetGridSize
⨉ TimeGridSize
. Количество столбцов не обязательно равно TimeGridSize
потому что осуществление и без дивиденда даты добавляются к сетке времени. PriceGrid(:, :, end)
содержит цену за t = 0
.
AssetPrices
— Цены активаЦены актива, соответствующего первой размерности PriceGrid
, возвращенный как вектор.
Times
\timesВремена соответствуя второму измерению PriceGrid
, возвращенный как вектор.
vanilla option является категорией опций, которая включает только самые стандартные компоненты.
Опция ванили имеет дату истечения срока и прямую цену исполнения опциона. Американские параметры стиля и европейские параметры стиля оба категоризированы как опции ванили.
Выплата для опции ванили следующие:
Для вызова:
Для помещенного:
где:
St является ценой базового актива во время t.
K является ценой исполнения опциона.
Для получения дополнительной информации см. Опцию Ванили.
Модель [2] диффузии скачка Мертона расширяет модель Black-Scholes при помощи Пуассоновского процесса, чтобы включать параметры диффузии скачка в моделирование внезапных перемещений цен активов (оба вверх и вниз).
Стохастическое дифференциальное уравнение
где:
r является непрерывным безрисковым уровнем.
q является непрерывной дивидендной доходностью.
W t является процессом Вайнера.
J является случайным условным выражением размера скачка процента на появлении скачка, где ln
(1+J) нормально распределено со средним значением и стандартное отклонение δ, и (1+J) имеет логарифмически нормальное распределение:
где:
μ J является средним значением J для (μ J>-1).
δ является стандартным отклонением ln
(1+J) для (δ ≥ 0).
ƛ p является ежегодной частотой (интенсивность) Пуассоновского процесса P t для (ƛ p ≥ 0).
σ является энергозависимостью цены активов на (σ> 0).
[1] Продолжение следует, R. и Е. Волчкова. “Схема Конечной разности Оценки Опции в Диффузии Скачка и Экспоненциальных Моделях Lévy”. SIAM Journal согласно Числовому Анализу. Издание 43, Номер 4, 2005, стр 1596-1626.
[2] Мертон, R. "Оценка опции, Когда Базовые Возвраты Запаса Прерывисты". Журнал Финансовой Экономики. Vol 3. 1976, стр 125-144.
optByBatesFD
| optByHestonFD
| optByLocalVolFD
| optByMertonFD
| optSensByBatesFD
| optSensByHestonFD
| optSensByLocalVolFD
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.