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