optstockbylr

Ценовые опции на запасах с помощью модели дерева бинома Лайзена-Раймера

Синтаксис

[Price,PriceTree] = optstockbylr(LRTree,OptSpec,Strike,Settle,ExerciseDates)
[Price,PriceTree] = optstockbylr(___,Name,Value)

Описание

пример

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

пример

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

Примеры

свернуть все

Этот пример показывает, как оценить опции на запасах с помощью модели дерева бинома Лайзена-Раймера. Рассмотрите европейские колл-опционы и пут-опционы с ценой исполнения 95$, которые истекают 1 июля 2010. Базовый запас стоит на уровне 100$ 1 января 2010, предоставляет непрерывную дивидендную доходность 3% в год и имеет энергозависимость 20% в год. Пересчитываемый на год постоянно составляемый безрисковый уровень составляет 8% в год. Используя эти данные, вычислите цену опций с помощью модели Лайзена-Раймера с деревом 15 и 55 временных шагов.

AssetPrice  = 100;
Strike = 95;

ValuationDate = 'Jan-1-2010';
Maturity = 'July-1-2010'; 

% define StockSpec
Sigma = 0.2;
DividendType = 'continuous'; 
DividendAmounts = 0.03;

StockSpec = stockspec(Sigma, AssetPrice, DividendType, DividendAmounts);

% define RateSpec
Rates = 0.08;
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 15 and 55 time steps
LRTimeSpec15  = lrtimespec(ValuationDate, Maturity, 15); 
LRTimeSpec55  = lrtimespec(ValuationDate, Maturity, 55); 

% use the PP2 method
LRMethod  = 'PP2';

LRTree15 = lrtree(StockSpec, RateSpec, LRTimeSpec15, Strike, 'method', LRMethod);
LRTree55 = lrtree(StockSpec, RateSpec, LRTimeSpec55, Strike, 'method', LRMethod);

% price the call and the put options using the LR model:
OptSpec = {'call'; 'put'}; 

PriceLR15 = optstockbylr(LRTree15, OptSpec, Strike, Settle, Maturity);
PriceLR55 = optstockbylr(LRTree55, OptSpec, Strike, Settle, Maturity);

% calculate price using the Black-Scholes model (BLS) to compare values with
% the LR model:
PriceBLS = optstockbybls(RateSpec, StockSpec, Settle, Maturity, OptSpec, Strike);

% compare values of BLS and LR
[PriceBLS PriceLR15 PriceLR55]
ans = 2×3

    9.7258    9.7252    9.7257
    2.4896    2.4890    2.4895

% use treeviewer to display LRTree of 15 time steps
treeviewer(LRTree15)

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

свернуть все

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

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

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

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

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

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

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

  • Для американской опции используйте 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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: [Price,PriceTree] = optstockbylr(LRTree,OptSpec,Strike,Settle,ExerciseDates,'AmericanOpt','1')

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

  • 0 — Европеец или Бермуды

  • 1 — Американец

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

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

свернуть все

ожидаемые цены во время 0, возвращенный как NINST-by-1 вектор.

Древовидная структура, возвращенная как вектор цен на инструменты в каждом узле. Значения:

  • PriceTree.PTree содержит чистые цены.

  • PriceTree.tObs содержит времена наблюдения.

  • PriceTree.dObs содержит даты наблюдения.

Ссылки

[1] Лейсен Д.П., М. Раймер. “Биномиальные модели для Оценки Опции – Исследование и Улучшение Сходимости”. Прикладные Математические Финансы. Номер 3, 1996, стр 319–346.

Представленный в R2010b