Вычислите цены барьерной опции или чувствительности с помощью метода конечных различий
[
вычисляет европейские и американские цены барьерной опции или чувствительность одного базового актива с помощью метода конечного различия. PriceSens
,PriceGrid
,AssetPrices
,Times
]
= barriersensbyfd(RateSpec
,StockSpec
,OptSpec
,Strike
,Settle
,ExerciseDates
,BarrierSpec
,Barrier
)barrierbyfd
принимает, что барьер постоянно контролируется.
[
добавляет необязательные аргументы пары "имя-значение". PriceSens
,PriceGrid
,AssetPrices
,Times
]
= barriersensbyfd(___,Name,Value
)barriersesbyfd
принимает, что барьер постоянно контролируется.
Создайте RateSpec
.
AssetPrice = 50; Strike = 45; Rate = 0.035; Volatility = 0.30; Settle = '01-Jan-2015'; Maturity = '01-Jan-2016'; Basis = 1; RateSpec = intenvset('ValuationDate',Settle,'StartDates',Settle,'EndDates',... Maturity,'Rates',Rate,'Compounding',-1,'Basis',Basis)
RateSpec = struct with fields:
FinObj: 'RateSpec'
Compounding: -1
Disc: 0.9656
Rates: 0.0350
EndTimes: 1
StartTimes: 0
EndDates: 736330
StartDates: 735965
ValuationDate: 735965
Basis: 1
EndMonthRule: 1
Создайте StockSpec
.
StockSpec = stockspec(Volatility,AssetPrice)
StockSpec = struct with fields:
FinObj: 'StockSpec'
Sigma: 0.3000
AssetPrice: 50
DividendType: []
DividendAmounts: 0
ExDividendDates: []
Вычислим Price
, Delta
, и Theta
для опции вызова European Down and Out с использованием метода конечного различия.
Barrier = 40; BarrierSpec = 'DO'; OptSpec = 'Call'; OutSpec = {'price';'delta';'theta'}; [Price, Delta, Theta] = barriersensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,... Maturity, BarrierSpec,Barrier,'Outspec',OutSpec)
Price = 8.5020
Delta = 0.8569
Theta = -1.8502
StockSpec
- Спецификация запаса для базового активаСпецификация запаса для базового актива. Для получения информации о спецификации запаса см. stockspec
.
stockspec
обрабатывает несколько типов базовых ресурсов. Для примера, для физических товаров цена StockSpec.Asset
, волатильность StockSpec.Sigma
, и удобное выражение StockSpec.DividendAmounts
.
Типы данных: struct
OptSpec
- Определение опции 'call'
или 'put'
| строковые массивы со значениями 'call'
или 'put'
Определение опции как 'call'
или 'put'
, заданный как вектор символов или строковые массивы со значениями "call"
или "put"
.
Типы данных: char
| string
Strike
- значение цены опционной доставкиЗначение цены доставки опции, заданное в виде скалярного числа.
Типы данных: double
Settle
- Дата расчета или сделкиДата расчета или сделки для барьерной опции, заданная как серийный номер даты, вектор символов даты или объект datetime.
Типы данных: double
| char
| datetime
ExerciseDates
- Даты опционных упражненийДаты упражнения опции, заданные как серийный номер даты, вектор символов даты или объект datetime:
Для европейской опции существует только один ExerciseDates
на дату истечения срока действия опции, которая является сроком погашения инструмента.
Для американской опции используйте 1
-by- 2
вектор контуров дат упражнения. Опция может быть использована в любую дату между или включая пару дат в этой строке. Если только один не - NaN
дата указана, опция может быть реализована между Settle
и одинарная дата, указанная в ExerciseDates
.
Типы данных: double
| char
| datetime
BarrierSpec
- Тип варианта барьера'UI'
, 'UO'
, 'DI'
, 'DO'
Тип опции барьера, заданный как вектор символов со следующими значениями:
'UI'
- Нокинг Вверх
Эта опция вступает в силу, когда цена базового актива переходит выше уровня барьера. Это дает держателю опции право, но не обязательство, покупать или продавать (звонить/ставить) базовое обеспечение по цене забастовки, если базовый актив становится выше барьерного уровня в течение срока действия опции. Обратите внимание, barrierbyfd
не поддерживает американские барьерные опции.
'UO'
- Нокаут Вверх
Эта опция дает держателю опциона право, но не обязательство, покупать или продавать (звонить/ставить) базовое обеспечение по цене забастовки, пока базовый актив не переходит выше барьерного уровня в течение срока действия опциона. Эта опция прекращается, когда цена базового актива переходит выше уровня барьера. Обычно с опцией «вверх и наружу» скидка выплачивается, если спотовая цена базового объекта достигает или превышает уровень барьера.
'DI'
- Нисходящий ввод
Эта опция вступает в силу, когда цена базового запаса переходит ниже уровня барьера. Он дает держателю опции право, но не обязательство, покупать или продавать (звонить/ставить) базовую гарантию по цене забастовки, если базовая гарантия идет ниже барьерного уровня в течение срока действия опции. С опцией down-and-in скидка выплачивается, если спотовая цена базового компонента не достигает уровня барьера в течение срока действия опции. Обратите внимание, barrierbyfd
не поддерживает американские барьерные опции.
'DO'
- Нисходящий нокдаун
Эта опция дает держателю опциона право, но не обязательство, покупать или продавать (звонить/ставить) базовый актив по цене страйкинга, если базовый актив не опускается ниже уровня барьера в течение срока действия опциона. Эта опция прекращается, когда цена базового обеспечения переходит ниже уровня барьера. Обычно держатель опции получает сумму скидки, если срок действия опции истекает бесполезно.
Опция | Тип барьера | Окупаемость при пересечении барьера | Окупаемость, если барьер не пересечен |
---|---|---|---|
Вызов/Размещение | Нисходящий выбой | Бесполезный | Стандартный вызов/размещение |
Вызов/Размещение | Нисходящий ввод | Вызов/Размещение | Бесполезный |
Вызов/Размещение | Нокаут Вверх | Бесполезный | Стандартный вызов/размещение |
Вызов/Размещение | Нокин-ин вверх | Стандартный вызов/размещение | Бесполезный |
Типы данных: char
Barrier
- Уровень барьераУровень барьера, заданный в виде скалярного числа.
Типы данных: double
Задайте необязательные разделенные разделенными запятой парами Name,Value
аргументы. Name
- имя аргумента и Value
- соответствующее значение. Name
должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN
.
PriceSens = barriersensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,Maturity,BarrierSpec,Barrier,Rebate,1000,AmericanOpt,1)
'Rebate'
- значение скидки0
(по умолчанию) | числоЗначение скидки, заданное как разделенная разделенными запятой парами, состоящая из 'Rebate'
и скалярным числом. Для опций Knock-in, Rebate
выплачивается по истечении срока действия. Для Knock-out
опции, Rebate
оплачивается, когда Barrier
достигается.
Типы данных: double
'OutSpec'
- Определить выходы{'Price'}
(по умолчанию) | символьный вектор со значениями 'Price'
, 'Delta'
, 'Gamma'
, 'Vega'
, 'Lambda'
, 'Rho'
, 'Theta'
, и 'All'
| массив ячеек векторов символов со значениями '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'}
Типы данных: char
| cell
'AssetGridSize'
- Размер сетки активов, используемый для сетки конечных различий400
(по умолчанию) | положительным числомРазмер сетки активов, используемой для сетки конечных различий, задается как разделенная разделенными запятой парами, состоящая из 'AssetGridSize'
и скаляр положительное число.
Типы данных: double
'TimeGridSize'
- Размер временной сетки, используемой для конечной разностной сетки100
(по умолчанию) | положительным числомРазмер временной сетки, используемой для сетки с конечным различием, задается как разделенная разделенными запятой парами, состоящая из 'TimeGridSize'
и скаляр положительное число.
Типы данных: double
'AmericanOpt'
- Тип опции0
Европейское (по умолчанию) | целое число со значениями 0
или 1
Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AmericanOpt'
и скалярный флаг с одним из следующих значений:
0
- Европейский
1
- Американский
Типы данных: logical
PriceSens
- Ожидаемые цены или значения чувствительности для барьерных опцийОжидаемые цены или чувствительности (определяются с помощью OutSpec
) для барьерных опций, возвращенного как NINST
-by- 1
матрица.
PriceGrid
- Сетка, содержащая цены, рассчитанные методом конечных различийСетка, содержащая цены, рассчитанные методом конечного различия, возвращается как двумерная сетка с размером PriceGridSize*length(Times)
. Количество столбцов не должно равняться TimeGridSize
, потому что бывшие даты дивидендов в StockSpec
добавляются к временной сетке. Цена за t = 0
содержится в PriceGrid(:, end)
.
Times
- Время, соответствующее второму измерению PriceGrid
Времени, соответствующего второму измерению PriceGrid
, возвращается как вектор.
Барьерная опция имеет не только цену доставки, но и уровень барьера, а иногда и скидку.
Скидка является фиксированной суммой, которая выплачивается, если опция не может быть реализована, поскольку уровень барьера достигнут или не достигнут. Выплата для этого типа опции зависит от того, пересекает ли базовый актив предопределенное значение триггера (уровень барьера), обозначенное Barrier
, в течение срока действия опции. Для получения дополнительной информации см. Раздел «Опция барьера».
[1] Hull, J. Options, Futures and Other Derivatives. Четвертое издание. Prentice Hall, 2000, с. 646-649.
[2] Aitsahlia, F., L. Imhof, and T.L. Lai. «Ценообразование и хеджирование американских опций». Журнал производных. Том 11.3, 2004, стр. 44-50.
[3] Рубинштейн М. и Э. Райнер. «Разрушение барьеров». Риск. Том 4 (8), 1991, стр. 28-35.
barrierbybls
| barrierbyfd
| barrierbyls
| barriersensbybls
| barriersensbyls
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.