barriersensbyfd

Вычислите цены барьерного опциона или чувствительность с помощью метода конечной разности

Синтаксис

[PriceSens,PriceGrid,AssetPrices,Times] = barriersensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,BarrierSpec,Barrier)
[PriceSens,PriceGrid,AssetPrices,Times] = barriersensbyfd(___,Name,Value)

Описание

пример

[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 европейца Вниз и колл-опциона с помощью метода конечной разности.

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

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

свернуть все

Структура термина процентной ставки (пересчитанный на год и постоянно составляемый), заданный RateSpec получена из intenvset. Для получения информации о спецификации процентной ставки смотрите intenvset.

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

Спецификация запаса для базового актива. Для получения информации о спецификации запаса смотрите stockspec.

stockspec обрабатывает несколько типов базовых активов. Например, для физических предметов потребления ценой является StockSpec.Asset, энергозависимостью является StockSpec.Sigma, и урожаем удобства является StockSpec.DividendAmounts.

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

Определение опции как 'call' или 'put', заданный как вектор символов или массив строк со значениями "call" или "put".

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

Значение цены исполнения опциона опции, заданное как числовой скаляр.

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

Урегулирование или торговая дата барьерного опциона, заданного как последовательный номер даты, вектор символов даты или объект datetime.

Типы данных: double | char | datetime

Даты осуществления опции, заданные как последовательный номер даты, вектор символов даты или объект datetime:

  • Для европейской опции существует только один ExerciseDates на дате окончания срока действия опции, которая является зрелостью инструмента.

  • Для американской опции используйте 1-by-2 вектор контуров даты осуществления. Опция может быть осуществлена в любую дату между или включая пару дат на той строке. Если только одна non-NaN дата перечислена, опция может быть осуществлена между Settle и одной перечисленной датой в ExerciseDates.

Типы данных: double | char | datetime

Тип барьерного опциона, заданный как вектор символов со следующими значениями:

  • 'UI' — стучит - в

    Эта опция вступает в силу, когда цена базового актива передает выше уровня барьера. Это дает держателю опции, право, но не обязательство, чтобы купить или продать (вызывает/помещает) базовый актив по цене исполнения опциона, если базовый актив выходит за предел уровня барьера во время жизни опции. Примечание, barrierbyfd не поддерживает американский удар - в барьерных опционах.

  • 'UO' — Нокаут

    Эта опция дает держателю опции, право, но не обязательство, чтобы купить или продать (вызывает/помещает) базовый актив по цене исполнения опциона, пока базовый актив не выходит за предел уровня барьера во время жизни опции. Эта опция останавливается, когда цена базового актива передает выше уровня барьера. Обычно, с-и опцией, уступка заплачена, если спотовая цена базовых пределов или превышает уровень барьера.

  • 'DI' — вниз стучит - в

    Эта опция вступает в силу, когда цена базового запаса передает ниже уровня барьера. Это дает держателю опции, право, но не обязательство, чтобы купить или продать (вызывает/помещает) базовый актив по цене исполнения опциона, если базовый актив понижается уровень барьера во время жизни опции. С down-in опцией заплачена уступка, если спотовая цена базового не достигает уровня барьера во время жизни опции. Примечание, barrierbyfd не поддерживает американский удар - в барьерных опционах.

  • 'DO' — Вниз удар

    Эта опция дает держателю опции, право, но не обязательство, чтобы купить или продать (вызывает/помещает) базовый актив по цене исполнения опциона, пока базовый актив не понижается уровень барьера во время жизни опции. Эта опция останавливается, когда цена базового актива передает ниже уровня барьера. Обычно держатель опции получает сумму уступки, если опция истекает бесполезная.

ОпцияТип барьераВыплата, если Пересеченный БарьерВыплата, если Барьер, не Пересеченный
Вызвать/ПоместитьВниз нокаутБесполезныйСтандарт вызывает/Помещает
Вызвать/ПоместитьВниз удар - вВызвать/ПоместитьБесполезный
Вызвать/ПоместитьНокаутБесполезныйСтандарт вызывает/Помещает
Вызвать/ПоместитьУдар - вСтандарт вызывает/ПомещаетБесполезный

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

Уровень барьера, заданный как числовой скаляр.

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

Аргументы в виде пар имя-значение

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (Name) — это имя аргумента, а значение (Value) — соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

Пример: PriceSens = barriersensbyfd(RateSpec,StockSpec,OptSpec,Strike,Settle,Maturity,BarrierSpec,Barrier,Rebate,1000,AmericanOpt,1)

Значение уступки, заданное как пара, разделенная запятой, состоящая из 'Rebate' и числового скаляра. Для Удара - в опциях, Rebate заплачен при истечении. Для опций Knock-out заплачен Rebate, когда Barrier достигнут.

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

Задайте выходные параметры, заданные как пара, разделенная запятой, состоящая из 'OutSpec' и NOUT - 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' и скаляра, положительного числовой.

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

Размер сетки времени используется для сетки конечной разности, заданной как пара, разделенная запятой, состоящая из 'TimeGridSize' и скаляра, положительного числовой.

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

Тип опции, заданный как пара, разделенная запятой, состоящая из 'AmericanOpt' и скалярного флага с одним из следующих значений:

  • 0 — Европеец

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

Типы данных: логический

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

свернуть все

Ожидаемые цены или чувствительность (заданное использование OutSpec) для барьерных опционов, возвращенных как NINST-by-1 матрица.

Сетка, содержащая цены, вычисленные методом конечной разности, возвращенным как двумерная сетка с размером PriceGridSize*length(Times). Количество столбцов не должно быть равно TimeGridSize, потому что без дивиденда даты в StockSpec добавляются к сетке времени. Цена за t = 0 содержится в PriceGrid(:, end).

Цены актива, заданного StockSpec, соответствующим первой размерности PriceGrid, возвращенного как вектор.

Времена соответствуя второму измерению PriceGrid, возвращенного как вектор.

Больше о

свернуть все

Барьерный опцион

Барьерный опцион не имеет только цены исполнения опциона, но также и уровня барьера и иногда уступки.

Уступка является установленной суммой, которая заплачена, если опция не может быть осуществлена, потому что уровень барьера был достигнут или не достигнут. Выплата для этого типа опции зависит от того, пересекает ли базовый актив предопределенное триггерное значение (уровень барьера), обозначенный Barrier, во время жизни опции.

Ссылки

[1] Оболочка, J. Опции, фьючерсы и Другие Производные. Четвертый Выпуск. Prentice Hall, 2000, стр 646–649.

[2] Aitsahlia, F., Л. Имхоф и Т.Л. Лай. “Оценивая и страхуясь американского удара - в опциях”. Журнал Производных. Издание 11.3, 2004, стр 44–50.

[3] Рубинштайн М. и Э. Райнер. “Устраняя препятствия”. Риск. Издание 4 (8), 1991, стр 28–35.

Введенный в R2017b

Для просмотра документации необходимо авторизоваться на сайте