В этом примере показан поток операций для определения цены товара. 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 object и используйте ratecurve объект для 'DiscountCurve' аргумент пары имя-значение.
BJSPricer = finpricer("Analytic", 'Model', BlackScholesModel, 'SpotPrice', [Price1 , Price2], 'DiscountCurve', ZeroCurve,'PricingMethod', "BjerksundStensland");
Kirk Объект прайсераИспользовать finpricer для создания Kirk pricer object и используйте 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