optSensByMertonFD

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

Описание

пример

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

пример

[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-by- 2 вектор серийных номеров дат, векторов символов даты, массивов datetime или строковых массивов для определения контуров дат упражнения. Американская опция может быть реализован в любую дату между или включая пару дат. Если только один не - 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-by- 1 вектор.

Примечание

Каждая сумма дивидендов должна иметь соответствующую дату экс-дивидендов. Если вы вводите значения для DividendAmounts и ExDividendDates, затем установите DividendYield = 0.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

Подробнее о

свернуть все

Ванильные Опции

A vanilla option - это категория опций, которая включает только самые стандартные компоненты.

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

Выплата для ванильной опции следующая:

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

  • Для размещения: max(KSt,0)

где:

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

K - цена доставки.

Для получения дополнительной информации смотрите Опцию Vanilla.

Модель диффузии перехода Мертона

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

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

dSt=(rqλpμj)Stdt+σStdWt+JStdPtprob (dPt=1)=λpdt

где:

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

q - непрерывное дивидендное выражение.

W 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}

где:

μ J является средним значением J для (μ J > -1).

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

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

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

Ссылки

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

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

Введенный в R2019a
Для просмотра документации необходимо авторизоваться на сайте