exponenta event banner

spreadbyls

Варианты ценового европейского или американского спреда с использованием моделирования Монте-Карло

Описание

пример

Price = spreadbyls(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает цену европейского или американского опциона на спред или пут-спред с помощью моделирования Монте-Карло.

Для американских вариантов используется метод наименьших квадратов Лонгстаффа-Шварца для расчета ранней надбавки за упражнения.

Price = spreadbyls(___,Name,Value) возвращает цену европейского или американского опциона на спред или пут-спред с помощью моделирования Монте-Карло с использованием необязательных аргументов пары имя-значение.

[Price,Paths,Times,Z] = spreadbyls(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает значение Price, Paths, Times, и Z европейского или американского звонка или опциона спреда с использованием моделирования Монте-Карло.

[Price,Paths,Times,Z] = spreadbyls(___,Name,Value) возвращает значение Price, Paths, Times, и Z европейского или американского варианта вызова или спреда с использованием моделирования Монте-Карло с использованием необязательных аргументов пары имя-значение.

Примеры

свернуть все

Определите даты опциона разворота.

Settle = '01-Jan-2012';
Maturity = '01-April-2012';

Определите основное средство 1. Цена и волатильность бензина RBOB

  Price1gallon = 2.85;          % $/gallon
  Price1 = Price1gallon * 42;   % $/barrel
  Vol1 = 0.29;

Определите основное средство 2. Цена и волатильность нефти WTI

   Price2 = 93.20;         % $/barrel
   Vol2 = 0.36;

Определите корреляцию между базовыми ценами основного средства 1 и основного средства 2.

Corr = 0.42;

Определите опцию разворота.

OptSpec = 'call';
Strike = 20;

Определите RateSpec.

rates = 0.05;
Compounding = -1;
Basis = 1;
RateSpec = intenvset('ValuationDate', Settle, 'StartDates', Settle, ...
'EndDates', Maturity, 'Rates', rates, ...
'Compounding', Compounding, 'Basis', Basis)
RateSpec = struct with fields:
           FinObj: 'RateSpec'
      Compounding: -1
             Disc: 0.9876
            Rates: 0.0500
         EndTimes: 0.2500
       StartTimes: 0
         EndDates: 734960
       StartDates: 734869
    ValuationDate: 734869
            Basis: 1
     EndMonthRule: 1

Определите StockSpec для этих двух активов.

StockSpec1 = stockspec(Vol1, Price1)
StockSpec1 = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.2900
         AssetPrice: 119.7000
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

StockSpec2 = stockspec(Vol2, Price2)
StockSpec2 = struct with fields:
             FinObj: 'StockSpec'
              Sigma: 0.3600
         AssetPrice: 93.2000
       DividendType: []
    DividendAmounts: 0
    ExDividendDates: []

Вычислите цену опциона спреда с помощью моделирования Монте-Карло на основе модели Лонгстафа-Шварца.

Price = spreadbyls(RateSpec, StockSpec1, StockSpec2, Settle, ...
Maturity, OptSpec, Strike, Corr)
Price = 11.0799

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

свернуть все

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

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

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

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

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

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

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

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

Дата расчета для указанной опции разворота в виде вектора символов даты или неотрицательного скалярного целого числа.

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

Дата погашения для опции разворота, заданная как вектор символов даты или неотрицательное скалярное целое число.

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

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

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

Цена страйка опциона, указанная как неотрицательное скалярное целое число.

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

Корреляция между базовыми ценами активов, заданными как скалярное целое число.

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

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

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

Пример: Price = spreadbyls(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr,'AmericanOpt',1)

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

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

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

Примечание

Для американских вариантов используется метод наименьших квадратов Лонгстаффа-Шварца для расчета ранней надбавки за упражнения. Для получения дополнительной информации о методе наименьших квадратов см. https://people.math.ethz.ch / % 7Ehjfurrer/teaching/LongstaffSchwartzAmericanOptionsLeastSquareMonteCarlo.pdf.

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

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

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

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

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

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

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

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

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

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

свернуть все

Ожидаемая цена опциона спреда, возвращенная как 1около-1 скаляр.

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

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

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

Подробнее

свернуть все

Опцион разворота

Опцион спреда - это опцион, написанный на разнице двух базовых активов.

Например, европейский призыв о разнице двух активов X1 и X2 будет иметь следующие выплаты при погашении:

max (X1 X2 K, 0)

где:

K - цена удара.

Дополнительные сведения см. в разделе Опция разворота.

Ссылки

[1] Кармона, Р., Дуррлеман, В. «Опционы на ценообразование и хеджирование спредов». Обзор СИАМ. том 45, № 4, стр. 627-685, Общество промышленной и прикладной математики, 2003.

Представлен в R2013b