Расчет цены опциона барьера или чувствительности с использованием метода конечных разниц
[ вычисляет цены европейских и американских заградительных опционов или чувствительность одного базового актива с использованием метода конечных разниц. 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 европейского вызова Down и 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около-2 вектор границ даты упражнения. Опцион может быть реализован на любую дату между или включая пару дат в этой строке. Если только один не -NaN дата указана, опцион может быть осуществлен между Settle и единственная дата, указанная в ExerciseDates.
Типы данных: double | char | datetime
BarrierSpec - Тип параметра «Барьер»'UI', 'UO', 'DI', 'DO'Тип параметра «Барьер», заданный как символьный вектор со следующими значениями:
'UI' - Up Stock-in
Этот вариант вступает в силу, когда цена базового актива переходит выше барьерного уровня. Это дает держателю опциона право, но не обязательство, покупать или продавать (колл/пут) основное обеспечение по цене страйка, если базовый актив выходит за пределы барьерного уровня в течение срока действия опциона. Примечание, barrierbyfd не поддерживает американские задирные варианты.
'UO' - Вырубка вверх
Этот опцион дает держателю опциона право, но не обязательство, покупать или продавать (колл/пут) основное обеспечение по цене страйка, если базовый актив не выходит за пределы барьерного уровня в течение срока действия опциона. Эта опция прекращается, когда цена базового актива переходит выше барьерного уровня. Обычно с опцией «вверх и назад» скидка выплачивается, если спотовая цена андерлаинга достигает или превышает уровень барьера.
'DI' - Посадка вниз
Этот вариант вступает в силу, когда цена базовой акции проходит ниже барьерного уровня. Это дает держателю опциона право, но не обязательство, покупать или продавать (звонить/ставить) основное обеспечение по цене страйка, если основное обеспечение опускается ниже барьерного уровня в течение срока действия опциона. При использовании опциона «вниз-внутрь» бонус выплачивается, если спотовая цена андерлаинга не достигает барьерного уровня в течение срока действия опциона. Примечание, barrierbyfd не поддерживает американские задирные варианты.
'DO' - Сбивка вниз
Этот опцион дает держателю опциона право, но не обязательство, покупать или продавать (колл/пут) базовый актив по цене страйка, если базовый актив не опускается ниже барьерного уровня в течение срока действия опциона. Эта опция прекращается, когда цена базового обеспечения проходит ниже барьерного уровня. Как правило, владелец опциона получает сумму бонуса, если опцион истекает бесполезно.
| Выбор | Тип барьера | Окупаемость при пересечении барьера | Окупаемость, если барьер не пересечен |
|---|---|---|---|
| Вызов/ввод | Выбивание вниз | Бесполезный | Стандартный вызов/ввод |
| Вызов/ввод | Down Knock-in | Вызов/ввод | Бесполезный |
| Вызов/ввод | Вырубка вверх | Бесполезный | Стандартный вызов/ввод |
| Вызов/ввод | Up Stock-in | Стандартный вызов/ввод | Бесполезный |
Типы данных: 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' и скалярный числовой. Для опций Stock-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' и NOUTоколо-1 или 1около-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около-1 матрица.
PriceGrid - Сетка, содержащая цены, рассчитанные методом конечных разницСетка, содержащая цены, рассчитанные методом конечных разниц, возвращаемые как двумерная сетка с размером PriceGridSize*length(Times). Количество столбцов не должно быть равно TimeGridSize, потому что даты бывших дивидендов в StockSpec добавляются к временной сетке. Цена за t = 0 содержится в PriceGrid(:, end).
Times - Время, соответствующее второму размеру PriceGridВремя, соответствующее второму размеру PriceGrid, возвращено как вектор.
Вариант «Барьер» имеет не только цену страйка, но и уровень барьера, а иногда и скидку.
Бонус - это фиксированная сумма, которая выплачивается, если опцион не может быть реализован, поскольку уровень барьера достигнут или не достигнут. Выплата для этого типа опциона зависит от того, пересекает ли нижележащий актив заданное значение триггера (уровень барьера), обозначенное Barrier, в течение срока действия опциона. Дополнительные сведения см. в разделе Параметр барьера.
[1] Халл, J. Опционы, фьючерсы и другие деривативы. Четвертое издание. Prentice Hall, 2000, стр. 646-649.
[2] Айтсалия, Ф., Л. Имхоф и Т. Л. Лай. «Ценообразование и хеджирование американских опционов.» Журнал производных. т. 11.3, 2004, стр. 44-50.
[3] Рубинштейн М. и Э. Рейнер. «Сломать барьеры.» Риск. Том 4 (8), 1991, стр. 28-35.
barrierbybls | barrierbyfd | barrierbyls | barriersensbybls | barriersensbyls
Имеется измененная версия этого примера. Открыть этот пример с помощью изменений?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.