exponenta event banner

optByBatesFD

Цена опциона по модели Бейтса с использованием конечных разниц

Описание

пример

[Price,PriceGrid,AssetPrices,Variances,Times] = optByBatesFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,V0,ThetaV,Kappa,SigmaV,RhoSV,MeanJ,JumpVol,JumpFreq) вычисляет ванильную европейскую или американскую цену опциона по модели Бейтса, используя неявный метод чередующегося направления (ADI).

пример

[Price,PriceGrid,AssetPrices,Variances,Times] = optByBatesFD(___,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 = optByBatesFD(Rate, AssetPrice, Settle, ExerciseDates, OptSpec, Strike, ...
V0, ThetaV, Kappa, SigmaV, RhoSV, MeanJ, JumpVol, JumpFreq, 'AmericanOpt', 1)
Price = 11.6116

Входные аргументы

свернуть все

Непрерывно складываемая безрисковая процентная ставка, заданная как скалярное десятичное число.

Типы данных: double

Текущая базовая цена актива, указанная как скалярное число.

Типы данных: double

Дата расчета опциона, заданная как скаляр с использованием серийного номера даты, вектора символов даты, объекта datetime или строкового скаляра.

Типы данных: double | char | datetime | string

Даты выполнения опции, указанные как порядковый номер даты, вектор символов даты, массив datetime или строковый массив:

  • Для европейского параметра используйте скалярный порядковый номер даты, вектор символов даты, объект datetime или строковый скаляр. Для европейского варианта: ExerciseDates содержит только одно значение: дату истечения срока действия опции.

  • Для американского варианта используйте 1около-2 вектор серийных номеров дат, векторы символов даты, массивы даты и времени или строковые массивы для задания границ даты упражнения. Американский опцион может быть осуществлен на любую дату между или включая пару дат. Если только один не -NaN дата указана, то опцион может быть реализован между Settle дата и единственное перечисленное значение в ExerciseDates.

Типы данных: double | char | datetime | string

Определение параметра, заданного как скаляр с использованием символьного вектора или строки со значением 'call' или 'put'.

Типы данных: cell | string

Значение цены страйка опциона, указанное как скалярное число.

Типы данных: double

Начальная дисперсия подстилающего актива, заданная как скалярное число.

Типы данных: double

Долгосрочная дисперсия подстилающего актива, указанная как скалярное число.

Типы данных: double

Средняя скорость пересмотра для базового актива, указанная как скалярное число.

Типы данных: double

Волатильность дисперсии недоделанного актива, определяемая как скалярное число.

Типы данных: double

Корреляция между процессами Вайнера для базового актива и его дисперсией, заданная как скалярная цифра.

Типы данных: double

Среднее значение случайного процентного размера перехода (J), заданного как скалярное десятичное число, где log(1 + J) обычно распределяется со средним (log(1+MeanJ)-0.5*JumpVol^ 2) и стандартное отклонениеJumpVol.

Типы данных: double

Стандартное отклонение log(1 + J) гдеJ - случайный размер перехода в процентах, заданный как скалярное десятичное число.

Типы данных: double

Годовая частота процесса перехода Пуассона, заданная как скалярное число.

Типы данных: double

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: [Price,PriceGrid] = optByBatesFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,V0,ThetaV,Kappa,SigmaV,RhoSV,MeanJ,JumpVol,JumpFreq,'Basis',7)

Дневной отсчет прибора, определяемый как пара, разделенная запятыми, состоящая из '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' и скалярный числовой.

Примечание

При вводе значения для DividendYield, затем установить DividendAmounts и ExDividendDates = [ ] или не вводите их. При вводе значений для DividendAmounts и ExDividendDates, затем установить DividendYield = 0.

Типы данных: double

Суммы денежных дивидендов, указанные как пара, разделенная запятыми, состоящая из 'DividendAmounts' и NDIVоколо-1 вектор.

Примечание

Каждая сумма дивидендов должна иметь соответствующую дату. При вводе значений для DividendAmounts и ExDividendDates, затем установить DividendYield = 0.

Типы данных: double

Даты бывших дивидендов, указанные как пара, разделенная запятыми, состоящая из 'ExDividendDates' и NDIVоколо-1 вектор серийных номеров дат, векторы символов даты, строковые массивы или массивы datetime.

Типы данных: double | char | string | datetime

Максимальная цена для границы сетки цен, указанная как пара, разделенная запятыми, состоящая из 'AssetPriceMax' и положительный скалярный числовой.

Типы данных: double

Максимальное отклонение для границы сетки дисперсии, указанное как пара, разделенная запятыми, состоящая из 'VarianceMax' как скалярный числовой.

Типы данных: double

Размер сетки активов для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'AssetGridSize' и скалярный числовой.

Типы данных: double

Количество узлов сетки дисперсии для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'VarianceGridSize' и скалярный числовой.

Типы данных: double

Количество узлов временной сетки для сетки конечных разностей, указанной как разделенная запятыми пара, состоящая из 'TimeGridSize' и положительный числовой скаляр.

Типы данных: double

Тип опции, указанный как разделенная запятыми пара, состоящая из 'AmericanOpt' и скалярный флаг с одним из следующих значений:

  • 0 - Европейский

  • 1 - американский

Типы данных: double

Выходные аргументы

свернуть все

Цена опциона, возвращаемая в виде скалярного числа.

Сетка, содержащая цены, рассчитанные методом конечных разниц, возвращаемые как двумерная сетка с размером AssetGridSizeTimeGridSize. Количество столбцов не обязательно равно TimeGridSize потому что функция добавляет даты упражнений и бывших дивидендов к временной сетке. PriceGrid(:, :, end) содержит цену для t = 0.

Цены актива, соответствующие первому измерению PriceGrid, возвращено как вектор.

Отклонения, соответствующие второй размерности PriceGrid, возвращено как вектор.

Время, соответствующее третьему измерению PriceGrid, возвращено как вектор.

Подробнее

свернуть все

Вариант ванили

Вариант ванили - это категория вариантов, включающая только самые стандартные компоненты.

Вариант ванили имеет срок годности и простую цену страйка. Варианты в американском и европейском стиле классифицируются как варианты ванили.

Окупаемость опциона на ваниль выглядит следующим образом:

  • Для вызова: max (St K, 0)

  • Для put: max (K St, 0)

где:

St - цена базового актива в момент времени t.

K - цена удара.

Дополнительные сведения см. в разделе Параметр ванили.

Модель диффузии скачка стохастической волатильности Бейтса

Модель Бейтса [1] расширяет модель Хестона за счет включения стохастической волатильности и (аналогично Мертону) параметров диффузии скачков в моделирование внезапных движений цен активов.

Стохастическое дифференциальное уравнение:

dSt = (r−q−λpμJ) Stdt+vtStdWt+JStdPtdvt =κ (θ−vt) dt +σvvtdWtE [dWtdWtv] =pdtprob (dPt=1) = λpdt

где:

r - непрерывная безрисковая ставка.

q - непрерывный дивидендный выход.

St - цена актива в момент времени t.

vt - отклонение цены основного средства в момент времени t.

J - случайный процентный размер скачка, обусловленный происходящим скачком, где ln(1 + J) обычно распределяется со средним значением ln (1 + мкJ) − δ22 и стандартным отклонением δ, а (1 + J) имеет логнормальное распределение:

1 (1 + J) δ2āexp {[ln (1 + J) (ln (1 + мкJ) − δ22] 2δ22}

где:

v0 - начальное отклонение цены основного средства при t = 0 (v0 > 0).

λ - долгосрочный уровень дисперсии для (start> 0).

δ - средняя скорость реверсирования для («» > 0 «»).

startv - дисперсная волатильность для (startv > 0).

p - корреляция между процессами Вайнера Wt и Wtv для (-1 ≤ p ≤ 1).

мкДж представляет собой среднее значение J для (мкДж > -1).

δ - стандартное отклонение ln(1 + J) для (δ ≥ 0 ).

λ p - годовая частота (интенсивность) процесса Пуассона Pt для (λ p ≥ 0).

Ссылки

[1] Бейтс, Д. С. «Скачки и стохастическая волатильность: процессы обменного курса, неявные в опционах Deutsche Mark». Обзор финансовых исследований. Том 9, № 1, 1996.

Представлен в R2019a