Ценовые опции на запасах с помощью модели дерева бинома Лайзена-Раймера
[
добавляет дополнительный аргумент пары "имя-значение" для 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
— Древовидная структура запасаДревовидная структура запаса, заданная lrtree
.
Типы данных: struct
OptSpec
— Определение опции 'call'
или 'put'
Определение опции как 'call'
или 'put'
, заданный как NINST
- 1
массив ячеек из символьных векторов со значениями 'call'
или 'put'
.
Типы данных: char |
cell
Strike
— Значения цены исполнения опциона опцииЗначение цены исполнения опциона опции, заданное с неотрицательным целым числом:
Для европейской опции используйте NINST
- 1
вектор цен исполнения опциона.
Для опции Бермуд используйте NINST
- NSTRIKES
вектор цен исполнения опциона. Каждая строка является расписанием для одной опции. Если опция имеет меньше, чем NSTRIKES
осуществите возможности, конец строки дополнен NaN
s.
Для американской опции используйте NINST
- 1
вектор цен исполнения опциона.
Типы данных: double
Settle
— Урегулирование или торговая датаУрегулирование или торговая дата, заданная как NINST
- 1
матрица с помощью последовательных чисел даты или векторов символов даты.
Типы данных: double |
char
ExerciseDates
— Даты осуществления опцииДаты осуществления опции, заданные как вектор векторов символов даты или последовательных чисел даты, где каждая строка является расписанием для одной опции и последнего элемента каждой строки, должны совпасть со зрелостью дерева.
Для европейской опции используйте NINST
- 1
вектор дат. Для европейской опции существует только один ExerciseDate
на дате окончания срока действия опции.
Для опции Бермуд используйте NINST
- NSTRIKEDATES
вектор дат.
Для американской опции используйте NINST
- 1
вектор дат осуществления. Для американского типа опция может быть осуществлена на любых древовидных данных между ValuationDate
и древовидная зрелость.
Типы данных: double |
char
Задайте дополнительные разделенные запятой пары Name,Value
аргументы. Name
имя аргумента и Value
соответствующее значение. Name
должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN
.
[Price,PriceTree] = optstockbylr(LRTree,OptSpec,Strike,Settle,ExerciseDates,'AmericanOpt','1')
'AmericanOpt'
— Тип опции
Европеец или Бермуды (значение по умолчанию) | значения: [0,1]
Тип опции, заданный как разделенная запятой пара, состоящая из 'AmericanOpt'
и NINST
- 1
вектор флагов со значениями:
0 — Европеец или Бермуды
1 — Американец
Типы данных: double
Price
— Ожидаемые цены во время 0ожидаемые цены во время 0, возвращенный как NINST
- 1
вектор.
PriceTree
— Древовидная структураДревовидная структура, возвращенная как вектор цен на инструменты в каждом узле. Значения:
PriceTree.PTree
содержит чистые цены.
PriceTree.tObs
содержит времена наблюдения.
PriceTree.dObs
содержит даты наблюдения.
vanilla option является категорией опций, которая включает только самые стандартные компоненты.
Опция ванили имеет дату истечения срока и прямую цену исполнения опциона. Американские параметры стиля и европейские параметры стиля оба категоризированы как опции ванили.
Выплата для опции ванили следующие:
Для вызова:
Для помещенного:
где:
St является ценой базового актива во время t.
K является ценой исполнения опциона.
Для получения дополнительной информации см. Опцию Ванили.
[1] Лейсен Д.П., М. Раймер. “Биномиальные модели для Оценки Опции – Исследование и Улучшение Сходимости”. Прикладные Математические Финансы. Номер 3, 1996, стр 319–346.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.