exponenta event banner

optSensByMertonFD

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

Описание

пример

[PriceSens,PriceGrid,AssetPrices,Times] = optSensByMertonFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,Sigma,MeanJ,JumpVol,JumpFreq) вычисляет ванильную европейскую или американскую цену опциона и чувствительность по Merton76 модели, используя метод IMEX Крэнка-Николсона Адамса-Башфорта (CNAB).

пример

[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

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

свернуть все

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

Типы данных: 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

Среднее значение случайного процентного размера перехода (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] = optByMertonFD(Rate,AssetPrice,Settle,ExerciseDates,OptSpec,Strike,MeanJ,JumpVol,JumpFreq,'Basis',7,'OutSpec','delta')

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

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

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

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

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

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

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

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

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

Определите выходы, указанные как разделенная запятыми пара, состоящая из 'OutSpec' и NOUTоколо-1 или 1около-NOUT строковый массив или массив ячеек символьных векторов с поддерживаемыми значениями.

Пример: OutSpec = ['price','delta','gamma','vega','rho','theta']

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

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

свернуть все

Цена опциона или чувствительность, возвращаемая в виде цифры. Аргумент пары имя-значение OutSpec определяет типы и порядок выходов.

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

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

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

Подробнее

свернуть все

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

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

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

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

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

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

где:

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

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

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

Диффузионная модель Merton Jump

Модель диффузии перехода Мертона [2] расширяет модель Блэка-Шоулза, используя процесс Пуассона для включения параметров диффузии перехода в моделирование внезапных движений цен активов (как вверх, так и вниз).

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

dSt = (r q λ pmc j) Stdt + startStdWt + JStdPtprob (dPt = 1) = λ pdt

где:

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

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

Wt - процесс Вайнера.

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

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

где:

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

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

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

λ - волатильность цены актива для (λ > 0).

Ссылки

[1] Конт, Р. и Е. Вольчкова. «Схема конечных различий для ценообразования опционов в моделях скачкообразной диффузии и экспоненциальной леви». Журнал SIAM по численному анализу. т. 43, № 4, 2005, с. 1596-1626.

[2] Мертон, Р. «Ценообразование опциона, когда возврат базового запаса является прерывистым». Журнал финансовой экономики. Том 3. 1976, стр. 125-144.

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