Инструмент ценового спреда для товара с использованием модели Блэка-Скоулза и аналитических цен

Этот пример показывает рабочий процесс по цене товара Spread инструмент, когда вы используете BlackScholes модель и Kirk и BjerksundStensland аналитические методы ценообразования.

Понимание опций распространения трещин

В нефтяной промышленности нефтепереработчики обеспокоены различием между их исходными затратами (сырая нефть) и ценами выход (продукты нефтепереработки - бензин, топочное масло, дизельное топливо и так далее). Разница между этими двумя базовыми товарами упоминается как трещина. Он представляет собой маржу прибыли между сырой нефтью и продуктами.

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

Определение товара

Предположим, что текущие цены на бензин сильны, и вы хотите смоделировать стратегию опции разброса трещин для защиты маржи бензина. Стратегия опции разброса трещин используется для сохранения прибыли в следующем сезоне. Фьючерсы на нефть WTI находятся на уровне $93,20 за баррель, а фьючерсы на бензин RBOB - на уровне $2,85 за галлон.

Strike = 20;
Rate = 0.05;

Settle = datetime(2020,1,1);
Maturity = datemnth(Settle,3);

% Price and volatility of RBOB gasoline
PriceGallon1 = 2.85;          % Dollars per gallon
Price1 = PriceGallon1 * 42;   % Dollars per barrel
Vol1 = 0.29;

% Price and volatility of WTI crude oil
Price2 = 93.20;         % Dollars per barrel
Vol2 = 0.36;

% Correlation between the prices of the commodities
Corr = 0.42;

Создание Spread Объект прибора

Использование fininstrument для создания Spread объект прибора.

SpreadOpt = fininstrument("Spread", 'ExerciseDate', Maturity, 'Strike', Strike,'ExerciseStyle',"european",'Name',"spread_instrument")
SpreadOpt = 
  Spread with properties:

       OptionType: "call"
           Strike: 20
    ExerciseStyle: "european"
     ExerciseDate: 01-Apr-2020
             Name: "spread_instrument"

Создание BlackScholes Объект модели

Использование finmodel для создания BlackScholes объект модели.

BlackScholesModel = finmodel("BlackScholes", 'Volatility', [Vol1,Vol2], 'Correlation', [1 Corr; Corr 1]);

Создание ratecurve Объект

Создайте плоскую ratecurve объект, использующий ratecurve.

ZeroCurve = ratecurve('zero', Settle, Maturity, Rate, 'Basis', 1);

Создание BjerksundStensland Объект прейскуранта

Использование finpricer для создания BjerksundStensland и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

BJSPricer = finpricer("Analytic", 'Model', BlackScholesModel, 'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "BjerksundStensland");

Создание Kirk Объект прейскуранта

Использование finpricer для создания Kirk и используйте объект pricer ratecurve объект для 'DiscountCurve' аргумент пары "имя-значение".

KirkPricer = finpricer("Analytic", 'Model', BlackScholesModel,'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "Kirk");

Ценовые Spread Использование инструмента BjerksundStensland и Kirk Аналитические Методы ценообразования

Использование price вычислить цену и чувствительность для сырьевого Spread прибора.

[PriceKirk, outPR_Kirk] = price(KirkPricer, SpreadOpt, "all");
[PriceBJS,  outPR_BJS]  = price(BJSPricer,  SpreadOpt, "all");

[outPR_Kirk.Results; outPR_BJS.Results]
ans=2×7 table
    Price           Delta                  Gamma                 Lambda                Vega           Theta      Rho  
    _____    ___________________    ____________________    _________________    ________________    _______    ______

    11.19    0.67224    -0.60665    0.019081    0.021662    7.1907    -6.4891    11.299    9.8869    -14.539    3.1841
     11.2    0.67371    -0.60816    0.018992    0.021572    7.2003    -6.4997    11.198    9.9878    -14.555    3.1906