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] = spreadbyls(___,Name,Value)

Описание

пример

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 должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: 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-by-2-by-NumTrials трехмерный массив. Значение Z генерирует вектор Броуновского движения (то есть, Винеровские процессы), который управляет симуляцией.

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

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

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

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

свернуть все

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

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

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

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

Ссылки

[1] Кармона, R., Деррлмен, V. “Оценок и Хеджирование Опций Распространения”. Анализ SIAM. Издание 45, № 4, стр 627–685, Общество Промышленной и Прикладной математики, 2003.

Введенный в R2013b