barriersensbyfd

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

Описание

пример

[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

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

свернуть все

Структура процентной ставки (в годовом исчислении и постоянно сложной), определяемая 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 вектор контуров дат упражнения. Опция может быть использована в любую дату между или включая пару дат в этой строке. Если только один не - NaN дата указана, опция может быть реализована между Settle и одинарная дата, указанная в ExerciseDates.

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

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

  • 'UI' - Нокинг Вверх

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

  • 'UO' - Нокаут Вверх

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

  • 'DI' - Нисходящий ввод

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

  • 'DO' - Нисходящий нокдаун

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

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

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

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

Типы данных: 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' и скалярным числом. Для опций Knock-in, Rebate выплачивается по истечении срока действия. Для Knock-out опции, Rebate оплачивается, когда Barrier достигается.

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

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

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

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

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

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

  • 0 - Европейский

  • 1 - Американский

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

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

свернуть все

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

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

Цены основного средства, определяемые StockSpec соответствующий первой размерности 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.

Введенный в R2016b