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