spreadbyfd

Ценовой европеец или американские опции распространения с помощью метода конечной разности

Описание

пример

Price = spreadbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает цену европейского или американского вызова или помещенных опций распространения с помощью метода конечной разности Альтернативного неявного направления (ADI). Распространение между активом, заданным в StockSpec1 минус актив, заданный в StockSpec2.

Price = spreadbyfd(___,Name,Value) добавляют дополнительные аргументы пары "имя-значение".

[Price,PriceGrid,AssetPrice1,AssetPrice2,Times] = spreadbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает Price, PriceGrid, AssetPrice1, AssetPrice2, и Times поскольку европеец или американец вызывают или помещенные опции распространения с помощью метода конечной разности Альтернативного неявного направления (ADI). Распространение между активом, заданным в StockSpec1 минус актив, заданный в StockSpec2.

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

Примеры

свернуть все

Задайте даты опции распространения.

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: []

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

[Price, PriceGrid, AssetPrice1, AssetPrice2, Times] = ...
 spreadbyfd(RateSpec, StockSpec1, StockSpec2, Settle, ...
 Maturity, OptSpec, Strike, Corr);

Отобразите цену.

Price
Price = 11.1998

Постройте сетку конечной разности.

mesh(AssetPrice1, AssetPrice2, PriceGrid(:, :, 1)');
    title('Spread Option Prices for Range of Underlying Prices');
    xlabel('Price of underlying asset 1');
    ylabel('Price of underlying asset 2');
    zlabel('Price of spread option');

Figure contains an axes object. The axes object with title Spread Option Prices for Range of Underlying Prices contains an object of type surface.

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

свернуть все

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

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

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

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

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

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

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

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

Расчетные дни для опции распространения в виде векторов символов даты или как последовательные числа даты с помощью NINST- 1 векторный массив или массив ячеек дат вектора символов.

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

Дата погашения для опции распространения в виде векторов символов даты или как последовательные числа даты с помощью NINST- 1 векторный массив или массив ячеек дат вектора символов.

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

Определение опции как 'call' или 'put'В виде NINST- 1 массив ячеек из символьных векторов.

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

Значения цены исполнения опциона опции в виде целого числа с помощью NINST- 1 вектор из значений цены исполнения опциона.

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

Корреляция между ценами базового актива в виде целого числа с помощью NINST- 1 вектор.

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

Аргументы name-value

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

Пример: [Price,PriceGrid,AssetPrice1,AssetPrice2,Times] = spreadbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr,'AssetPriceMin','AssetPriceMax','PriceGridSize','TimeGridSize','AmericanOpt',0)

Минимальная цена на ценовой контур сетки в виде разделенной запятой пары, состоящей из 'AssetPriceMin' и 1- 2 массив. Первая запись в массиве соответствует первому активу, заданному StockSpec1 и вторая запись соответствует второму активу, заданному StockSpec2.

Для метода конечной разности состав сетки влияет на качество выхода и время выполнения. Это настоятельно рекомендовано, чтобы использовать дополнительные аргументы AssetPriceMin, AssetPriceMax, PriceGridSize, и TimeGridSize управлять составом сетки, чтобы гарантировать качество выхода и разумное время выполнения.

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

Максимальная цена за ценовой контур сетки в виде разделенной запятой пары, состоящей из 'AssetPriceMax' и 1- 2 массив. Первая запись в массиве соответствует первому активу, заданному StockSpec1 и вторая запись соответствует второму активу, заданному StockSpec2.

Для метода конечной разности состав сетки влияет на качество выхода и время выполнения. Это настоятельно рекомендовано, чтобы использовать дополнительные аргументы AssetPriceMin, AssetPriceMax, PriceGridSize, и TimeGridSize управлять составом сетки, чтобы гарантировать качество выхода и разумное время выполнения.

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

Размер для сетки конечной разности в виде разделенной запятой пары, состоящей из 'PriceGridSize' и 1- 2 массив. Первая запись соответствует первому активу, заданному StockSpec1 и вторая запись соответствует второму активу, заданному StockSpec2.

Для метода конечной разности состав сетки влияет на качество выхода и время выполнения. Это настоятельно рекомендовано, чтобы использовать дополнительный argumentsAssetPriceMax, PriceGridSize, и TimeGridSize управлять составом сетки, чтобы гарантировать качество выхода и разумное время выполнения.

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

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

Для метода конечной разности состав сетки влияет на качество выхода и время выполнения. Это настоятельно рекомендовано, чтобы использовать дополнительный argumentsAssetPriceMax, PriceGridSize, и TimeGridSize управлять составом сетки, чтобы гарантировать качество выхода и разумное время выполнения.

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

Тип опции в виде разделенной запятой пары, состоящей из 'AmericanOpt' и NINST- 1 положительный целочисленный скаляр отмечает с помощью значений:

  • 0 — Европеец

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

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

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

свернуть все

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

Сетка, содержащая цены, вычисленные методом конечной разности, возвращенным как 3-D сетка с размером PriceGridSize(1) * PriceGridSize(2) * TimeGridSize. Цена за t = 0 содержится в PriceGrid(:, :, 1).

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

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

Времена соответствуя третьей размерности PriceGrid, возвращенный как вектор.

Больше о

свернуть все

Распространите опцию

spread option является опцией, записанной на различии двух базовых активов.

Например, европеец обращаются к различию двух активов, X1 и X2 имели бы следующее, окупаются в зрелости:

max(X1X2K,0)

где:

K является ценой исполнения опциона.

Для получения дополнительной информации см. Опцию Распространения.

Ссылки

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

[2] Вильнев, S., Zanette, A. “Параболические Методы ADI для Оценки американских Опций на Двух Запасах”. Математика Исследования операций. Издание 27, № 1, стр 121–149, INFORMS, 2002.

[3] Ikonen, S., Тойванен, J. Эффективные численные методы для оценки американских опций под стохастической энергозависимостью. Вайли InterScience, 2007.

Введенный в R2013b