Этот пример показывает рабочий процесс по цене товара 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