exponenta event banner

spreadsensbyfd

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

Описание

пример

PriceSens = spreadsensbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает цену и чувствительность европейских или американских вариантов спреда или спреда с помощью метода конечных разностей Alternate Direction Implicit (ADI). Спред находится между основными средствами, определенными в StockSpec1 минус актив, определенный в StockSpec2.

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

[PriceSens,PriceGrid,AssetPrice1,AssetPrice2,Times] = spreadsensbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr) возвращает значение PriceSens, PriceGrid, AssetPrice1, AssetPrice2, и Times для европейских или американских вариантов вызова или размещения спреда с использованием метода конечных разностей Alternate Direction Implicit (ADI). Спред находится между основными средствами, определенными в StockSpec1 минус актив, определенный в StockSpec2.

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

Примеры

свернуть все

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

Settle = '01-Jun-2012';
Maturity = '01-Sep-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: 735113
       StartDates: 735021
    ValuationDate: 735021
            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: []

Вычислите цену опциона спреда и чувствительность на основе метода конечных разностей Alternate Direction Implicit (ADI).

OutSpec = {'Price', 'Delta', 'Gamma'};
[Price, Delta, Gamma, PriceGrid, AssetPrice1, AssetPrice2, Times] = ...
spreadsensbyfd(RateSpec, StockSpec1, StockSpec2, Settle, ...
Maturity, OptSpec, Strike, Corr, 'OutSpec', OutSpec);

Отображение цены и чувствительности.

Price
Price = 11.1998
Delta
Delta = 1×2

    0.6736   -0.6082

Gamma
Gamma = 1×2

    0.0190    0.0214

Постройте график сетки конечных разностей.

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. The axes 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 векторные или клеточные массивы символьных векторных дат.

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

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

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

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

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

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

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

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

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

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

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

Пример: [PriceSens,PriceGrid,AssetPrice1,AssetPrice2,Times] = spreadsensbyfd(RateSpec,StockSpec1,StockSpec2,Settle,Maturity,OptSpec,Strike,Corr, 'AssetPriceMin','AssetPriceMax','PriceGridSize','TimeGridSize','AmericanOpt',0,'OutSpec',{'All'})

Определите выходы, указанные как разделенная запятыми пара, состоящая из 'OutSpec' и NOUTоколо-1 или 1около-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

Минимальная цена для границы сетки цен, указанная как пара, разделенная запятыми, состоящая из '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.

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

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

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

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

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

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

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

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

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

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

свернуть все

Ожидаемая цена или чувствительность опциона спреда, возвращенного как 1около-1 массив, как определено OutSpec.

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

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

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

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

Подробнее

свернуть все

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

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

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

max (X1 X2 K, 0)

где:

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

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

Ссылки

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

[2] Вильнев, С., Занетт, А. «Параболические методы ADI для ценообразования американских опционов на две акции». Математика исследований операций. том 27, № 1, стр. 121-149, INFORMS, 2002.

[3] Иконен, С., Тойванен, Дж. Эффективные численные методы ценообразования американских опционов при стохастической волатильности. Wiley InterScience, 2007.

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