barrierbyls

Ценовые европейские или американские барьерные опции с помощью симуляций Монте-Карло

Описание

пример

[Price,Paths,Times,Z] = barrierbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,ExerciseDates,BarrierSpec,Barrier) вычисляет цены барьерной опции на один базовый актив с помощью модели Лонгстафа-Шварца. barrierbyls вычисляет цены европейских и американских барьерных опций.

Для американских опций Longstaff-Schwartz методом наименьших квадратов используется для вычисления премии за ранние упражнения.

пример

[Price,Paths,Times,Z] = barrierbyls(___,Name,Value) добавляет необязательные аргументы пары "имя-значение".

Примеры

свернуть все

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

Rates = 0.0325;
Settle = '01-Jan-2016';
Maturity = '01-Jan-2017';
Compounding = -1;
Basis = 1;

Задайте RateSpec.

 RateSpec = intenvset('ValuationDate',Settle,'StartDates',Settle,'EndDates',Maturity, ...
     'Rates',Rates,'Compounding',Compounding,'Basis',Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9680
            Rates: 0.0325
         EndTimes: 1
       StartTimes: 0
         EndDates: 736696
       StartDates: 736330
    ValuationDate: 736330
            Basis: 1
     EndMonthRule: 1

Задайте StockSpec.

 AssetPrice = 40;
 Volatility = 0.20;
 StockSpec = stockspec(Volatility,AssetPrice)
StockSpec = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2000
         AssetPrice: 40
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Рассчитать цену американского барьера вниз в опции пут.

Strike = 45;
OptSpec = 'put';
Barrier = 35;
BarrierSpec = 'DI';
AmericanOpt = 1;

Price = barrierbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,Maturity,BarrierSpec,...
Barrier,'NumTrials',2000,'AmericanOpt',AmericanOpt)
Price = 4.7306

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

свернуть все

Структура процентной ставки (в годовом исчислении и постоянно сложной), определяемая 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 | cell

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Задайте необязательные разделенные разделенными запятой парами Name,Value аргументы. Name - имя аргумента и Value - соответствующее значение. Name должны находиться внутри кавычек. Можно задать несколько аргументов в виде пар имен и значений в любом порядке Name1,Value1,...,NameN,ValueN.

Пример: Price = barrierbyls(RateSpec,StockSpec,OptSpec,Strike,Settle,Maturity,BarrierSpec,Barrier,Rebate,1000)

Тип опции, заданный как разделенная разделенными запятой парами, состоящая из 'AnericanOpt' и a NINST-by- 1 положительные целочисленные скалярные флаги со значениями:

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

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

Примечание

Для американских опций Longstaff-Schwartz методом наименьших квадратов используется для вычисления премии за ранние упражнения. Для получения дополнительной информации о методе наименьших квадратов смотрите https ://people.math.etz.ch/% 7Ehjfurrer/training/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.

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

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

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

Количество независимых путей выборки (испытания симуляции), заданное как разделенная разделенными запятой парами, состоящая из 'NumTrials' и скаляр неотрицательное целое число.

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

Количество периодов симуляции в пробной версии, заданное как разделенная разделенными запятой парами, состоящая из 'NumPeriods' и скаляр неотрицательное целое число.

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

Массив временных рядов зависимых случайных вариатов, заданный как разделенная разделенными запятой парами, состоящая из 'Z' и a NumPeriods-by- 1-by- NumTrials 3-D массив временных рядов. The Z значение генерирует вектор движения Brownian (то есть процессы Винера), который управляет симуляцией.

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

Индикатор для антитетической выборки, заданный как разделенная разделенными запятой парами, состоящая из 'Antithetic' и значение true или false.

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

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

свернуть все

Ожидаемые цены на барьерные опции, возвращенные как NINST-by- 1 матрица.

Моделируемые пути коррелированных переменных состояния, возвращенные как NumPeriods + 1-by- 1-by- NumTrials 3-D массив временных рядов моделируемых путей коррелированных переменных состояния. Каждая строка Paths - транспонирование вектора X (t) состояния в момент t для данного исследования.

Время наблюдения, сопоставленное с моделируемыми путями, возвращается как NumPeriods + 1-by- 1 вектор-столбец, сопоставленный с моделируемыми путями. Каждый элемент Times связана с соответствующей строкой Paths.

Массив временных рядов зависимых случайных вариаций, возвращаемый как NumPeriods-by- 1-by- NumTrials трехмерный массив, когда Z задается как входной параметр. Если на Z входной параметр не задан, тогда Z выходной аргумент содержит случайные изменения, сгенерированные внутри.

Подробнее о

свернуть все

Барьерные Опции

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

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