Определите европейские цены радужных опций или чувствительность максимум на двух рисковых активах с помощью модели ценообразования Stulz
вычисляет опцию цены с помощью модели ценообразования Stulz опции.PriceSens
= maxassetsensbystulz(RateSpec
,StockSpec1
,StockSpec2
,Settle
,Maturity
,OptSpec
,Strike
,Corr
)
задает опции с использованием одного или нескольких необязательных аргументов пары "имя-значение" в дополнение к входным параметрам в предыдущем синтаксисе.PriceSens
= maxassetsensbystulz(___,Name,Value
)
Рассмотрим европейский вариант радуги, который дает держателю право купить либо $100 000 индекса капитала по цене забастовки 1000 (актив 1), либо $100 000 государственной облигации (актив 2) с ценой забастовки 100% от номинальной стоимости, в зависимости от того, что стоит больше в конце 12 месяцев. 15 января 2008 года индекс акций торгуется на уровне 950, выплачивает дивиденды в размере 2% ежегодно и имеет волатильность возврата 22%. Также 15 января 2008 года гособлигация торгуется на уровне 98, платит купонное выражение в 6% и имеет волатильность возврата 15%. Безрисковая ставка составляет 5%. Используя эти данные, вычислите цену и чувствительность европейской радужной опции, если корреляция между темпами возврата составляет -0,5, 0 и 0,5.
Поскольку цены основных средств в этом примере указаны в различных модулях, необходимо работать либо в индексных точках (для основного средства 1), либо в долларах (для основного средства 2). Европейский радужный вариант позволяет держателю купить следующие: 100 единиц индекса капитала по $1000 каждый (на общую сумму $100 000) или 1000 единиц государственных облигаций по $100 каждый (на общую сумму $100 000). Для преобразования цены облигации (актив 2) в индексные модули (актив 1) необходимо выполнить следующие корректировки:
Умножить цену доставки и текущую цену государственных облигаций на 10 (1000/100).
Умножьте цену опции на 100, учитывая, что в опцию есть 100 модули индекса собственного капитала.
После введения этих корректировок цена доставки одинаковая для обоих активов (1000 долл. США). Во-первых, создайте RateSpec
:
Settle = 'Jan-15-2008'; Maturity = 'Jan-15-2009'; Rates = 0.05; Basis = 1; RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle,... 'EndDates', Maturity, 'Rates', Rates, 'Compounding', -1, 'Basis', Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.9512
Rates: 0.0500
EndTimes: 1
StartTimes: 0
EndDates: 733788
StartDates: 733422
ValuationDate: 733422
Basis: 1
EndMonthRule: 1
Создайте две StockSpec
определения.
AssetPrice1 = 950; % Asset 1 => Equity index AssetPrice2 = 980; % Asset 2 => Government bond Sigma1 = 0.22; Sigma2 = 0.15; Div1 = 0.02; Div2 = 0.06; StockSpec1 = stockspec(Sigma1, AssetPrice1, 'continuous', Div1)
StockSpec1 = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.2200
AssetPrice: 950
DividendType: {'continuous'}
DividendAmounts: 0.0200
ExDividendDates: []
StockSpec2 = stockspec(Sigma2, AssetPrice2, 'continuous', Div2)
StockSpec2 = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.1500
AssetPrice: 980
DividendType: {'continuous'}
DividendAmounts: 0.0600
ExDividendDates: []
Вычислите цену и дельту для различных уровней корреляции.
Strike = 1000 ; Corr = [-0.5; 0; 0.5]; OutSpec = {'price'; 'delta'}; OptSpec = 'call'; [Price, Delta] = maxassetsensbystulz(RateSpec, StockSpec1, StockSpec2,... Settle, Maturity, OptSpec, Strike, Corr,'OutSpec', OutSpec)
Price = 3×1
111.6683
103.7715
92.4412
Delta = 3×2
0.4594 0.3698
0.4292 0.3166
0.4053 0.2512
Область выхода Delta
имеет два столбца: первый столбец представляет Delta
относительно индекса собственного капитала (актив 1), а второй столбец представляет собой Delta
в отношении государственных облигаций (актив 2). Значение 0.4595 представляет Delta
относительно одного модуля индекса собственного капитала. Поскольку существует 100 модули индекса собственного капитала, общая Delta
будет 45,94 (100 * 0,4594) для корреляционного уровня -0,5. Чтобы вычислить Delta
что касается государственных облигаций, помните, что вместо 98 использовалась скорректированная цена 980. Поэтому, например, Delta
что касается государственных облигаций, то для корреляции 0,5 будет 251,2 (0,2512 * 100 * 10).
RateSpec
- Годовая, постоянно сложная структура терминов ставокЕжегодная, постоянно сложенная структура терминов скорости, заданная с помощью intenvset
.
Типы данных: structure
StockSpec1
- Спецификация запаса для актива 1Спецификация запаса для актива 1, заданная с помощью stockspec
.
Типы данных: structure
StockSpec2
- Спецификация запаса для актива 2Спецификация запаса для актива 2, заданная с помощью stockspec
.
Типы данных: structure
Settle
- Даты расчетов или сделокДаты расчетов или сделок, указанные как NINST
-by- 1
вектор числовых дат.
Типы данных: double
Maturity
- Даты погашенияДаты погашения, заданные как NINST
-by- 1
вектор.
Типы данных: double
OptSpec
- Тип опции'call'
или 'put'
Тип опции, заданный как NINST
-by- 1
массив ячеек из векторов символов со значением 'call'
или 'put'
.
Типы данных: cell
Strike
- Цены забастовкиЦены забастовки, указанные как NINST
-by- 1
вектор.
Типы данных: double
Corr
- корреляция между базовыми ценами на активыКорреляция между базовыми ценами на активы, заданная как NINST
-by- 1
вектор.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
[PriceSens] = maxassetsensbystulz(RateSpec, StockSpecA,StockSpecB,Settle,Maturity,OptSpec,Strike,Corr,'OutSpec',OutSpec)
'OutSpec'
- Определить выходы{'Price'}
(по умолчанию) | массив ячеек из векторов символов со значениями 'Price'
, 'Delta'
, 'Gamma'
, 'Vega'
, 'Lambda'
, 'Rho'
, 'Theta'
, и 'All'
Задайте выходы, заданные как разделенная разделенными запятой парами, состоящая из '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'}
Типы данных: cell
PriceSens
- Ожидаемые цены или чувствительностьОжидаемые цены или чувствительность, возвращенные как NINST
-by- 1
или NINST
-by- 2
вектор.
А rainbow option выплата зависит от относительной ценовой эффективности двух или более активов.
Радужный вариант дает держателю право покупать или продавать лучшие или худшие из двух ценных бумаг, или опции, которые платят лучшие или худшие из двух активов. Радужные опции популярны из-за более низкой премиальной стоимости структуры относительно покупки двух отдельных опций. Более низкая стоимость отражает тот факт, что выплата обычно ниже, чем выплата двух отдельных опций.
Financial Instruments Toolbox™ поддерживает два типа радужных опций:
Минимум два актива - держатель опции имеет право купить (продать) один из двух рисковых активов, в зависимости от того, какой из них стоит меньше.
Максимум два актива - держатель опции имеет право купить (продать) один из двух рисковых активов, в зависимости от того, какой из них стоит больше.
Для получения дополнительной информации смотрите Rainbow Option.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.