optstocksensbylr

Определите цены опций или чувствительность с помощью модели биномиального дерева Лейзена-Реймера

Описание

пример

PriceSens = optstockbylr(LRTree,OptSpec,Strike,Settle,ExerciseDates) вычисляет цены опций или чувствительности с помощью модели биномиального дерева Лейзена-Реймера.

пример

PriceSens = optstockbylr(___,Name,Value) добавляет необязательные аргументы пары "имя-значение" для AmericanOpt и OutSpec.

Примеры

свернуть все

В этом примере показано, как вычислить цены опций и чувствительность с помощью биномиальной модели дерева Лейзена-Реймера. Рассмотрим европейские опции вызова и размещения с ценой исполнения $100, которые истекают 1 декабря 2010 года. Базовые акции торгуются на уровне $100 1 июня 2010 года и имеют волатильность 30% годовых. Годовая непрерывно повышенная безрисковая ставка составляет 7% годовых. Используя эти данные, вычислите цену, дельту и гамму опций с помощью модели Лейзена-Реймера с деревом 25 временных шагов и PP2 способ.

AssetPrice  = 100;
Strike = 100;

ValuationDate = 'June-1-2010';
Maturity = 'December-1-2010'; 

% define StockSpec
Sigma = 0.3;

StockSpec = stockspec(Sigma, AssetPrice);

% define RateSpec
Rates = 0.07;
Settle = ValuationDate;
Basis = 1;
Compounding = -1;

RateSpec = intenvset('ValuationDate', ValuationDate, 'StartDates', Settle, ...
'EndDates', Maturity, 'Rates', Rates, 'Compounding', Compounding, 'Basis', Basis);

% build the Leisen-Reimer (LR) tree with 25 time steps
LRTimeSpec  = lrtimespec(ValuationDate, Maturity, 25); 

% use the PP2 method
LRMethod  = 'PP2';  

TreeLR = lrtree(StockSpec, RateSpec, LRTimeSpec, Strike, 'method', LRMethod);

% compute prices and sensitivities using the LR model:
OptSpec = {'call'; 'put'}; 
OutSpec = {'Price', 'Delta', 'Gamma'};

[Price, Delta, Gamma] = optstocksensbylr(TreeLR, OptSpec, Strike, Settle, ... 
Maturity, 'OutSpec', OutSpec)
Price = 2×1

   10.1332
    6.6937

Delta = 2×1

    0.6056
   -0.3944

Gamma = 2×1

    0.0185
    0.0185

Входные параметры

свернуть все

Древовидная структура запаса, заданная как lrtree.

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

Определение опции как 'call' или 'put', заданный как NINST-by- 1 массив ячеек из векторов символов со значениями 'call' или 'put'.

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

Значение цены опции, заданное с неотрицательным целым числом:

  • Для европейской опции используйте NINST-by- 1 вектор страйк-цен.

  • Для опции Бермудских островов используйте NINST-by- NSTRIKES вектор страйк-цен. Каждая строка является расписанием для одной опции. Если опция имеет меньше NSTRIKES возможности упражнений, конец строки заполнен NaNс.

  • Для американской опции используйте NINST-by- 1 вектор страйк-цен.

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

Дата расчета или сделки в виде NINST-by- 1 матрица с использованием серийных номеров дат или векторов символов дат.

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

Даты упражнения по опции, заданные как вектор векторов символов даты или серийных номеров даты, где каждая строка является расписанием для одной опции, и последний элемент каждой строки должен совпадать со зрелостью дерева.

  • Для европейской опции используйте NINST-by- 1 вектор дат. Для европейской опции существует только один ExerciseDate на дату истечения срока действия опции.

  • Для опции Бермудских островов используйте NINST-by- NSTRIKEDATES вектор дат.

  • Для американской опции используйте NINST-by- 1 вектор дат упражнений. Для американского типа опция может быть использована на любых древовидных данных между ValuationDate и древовидная зрелость.

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

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

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

Пример: [Price,Delta,Gamma] = optstocksensbylr(LRTree,OptSpec,Strike,Settle,ExerciseDates,'OutSpec',OutSpec)

Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanOpt' и a NINST-by- 1 вектор флагов со значениями:

  • 0 - Европейский или Бермудский

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

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

Задайте выходы, заданные как разделенная разделенными запятой парами, состоящая из 'OutSpec' и a NOUT- by- 1 или 1-by- NOUT массив ячеек из векторов символов с возможными значениями 'Price', 'Delta', 'Gamma', 'Vega', 'Lambda', 'Rho', 'Theta', и 'All'.

OutSpec = {'All'} указывает, что выходы должны быть Delta, Gamma, Vega, Lambda, Rho, Theta, и Price, в таком порядке. Это то же самое, что и установка OutSpec для включения каждой чувствительности:

Пример: OutSpec = {'delta','gamma','vega','lambda','rho','theta','price'}

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

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

свернуть все

Ожидаемые будущие цены или значения чувствительности, возвращенные как NINST-by- 1 вектор.

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

Подробнее о

свернуть все

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

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

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

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

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

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

где:

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

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

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

Ссылки

[1] Leisen D.P., M. Reimer. «Биномиальные модели для оценки опций - изучение и улучшение сходимости». Прикладные математические финансы. № 3, 1996, с. 319-346.

Введенный в R2010b