Live Demo: Crude Oil Trading Strategy

Live Demo: Crude Oil Trading Strategy

1 December 2021
Demo

Discover how to build an options hedged Brent crude oil strategy using the SigTech platform.

Watch a step by step demo as SigTech Product Manager, Estèphe Corlin, demonstrates how to develop a PMI manufacturing signal to trade Brent crude oil futures, hedged with an options collar.

Video transcript

In this video, we're using the SigTech platform to build a Brent crude oil trading strategy, based on a PMI manufacturing signal, hedged with an options collar to reduce volatility. I’ll begin with a brief introduction to our platform.

There are three fundamental object types in the platform:

Tradable instruments mimic their real-world financial counterparts as closely as possible, accounting for nuances like transaction costs and corporate actions.

Non tradable data consists of macro economic and alternative data sets that are often used to construct signals.

The two are combined in strategies, where a set of rules are defined to trade our instruments over a timeline.

Here, you can access the September 2021 futures contract for Brent crude oil. You can see the data points available, as well as query them through the history method, which by default will return the last price.

Within the SigTech platform, individual futures contracts belong to over-arching futures groups. You can query the term structure of future groups historically.

In the next example, we are accessing the Brent crude oil options group. This allows you to query the daily vol surface for brent. We can also retrieve individual options as shown in the get option method, which accepts the desired strike, maturity and option type as parameters.

Next, we query historical greeks for the option object returned. And plot the valuation of the option, compared to the underlying, minus the strike. This allows you to see the convergence of the two prices as the option approaches expiry.

Building blocks are a set of pre-built strategies in our platform that allow you to easily create new strategies.

The rolling futures strategy building block handles the rolling of futures contracts in a customisable manner. Here, you can define a rolling futures strategy that trades the Brent crude oil futures group. The rolling rule parameter specifies to roll into the third contract, while the front offset specifies, in Python notation, how close to the expiry date y contracts are rolled. In this example, half the contracts will be rolled six days before expiry, with the other half being rolled five days before expiry. Finally, we specify to set target weights from initial cash, to avoid re-investing PnL, and configure the initial cash to USD 100k for our strategy. This will allow you to match your exposures when hedging our strategy with options.

You can backtest this strategy by calling the history method.

Now that we have defined the rolling future strategy, you need to specify a signal to trade it.

As shown from the rolling futures strategy, Brent crude oil suffered large draw-downs in the first half of 2020, dampened by pandemic lockdowns. However, the subsequent economic recovery has led to inflationary pressures and supply chain disruptions which have driven energy prices to record highs.

The Manufacturing Purchasing Managers Index acts as an indicator of economic activity by measuring the performance of the manufacturing sector. This strategy will compute a momentum signal over the monthly US manufacturing PMI and go long or short when the value crosses the two month exponentially weighted moving average.

Non-tradable data in the form of US manufacturing PMI is loaded into a pandas dataframe and the signal is calculated as 1 or -1 to either long or short our rolling futures strategy.

The resulting data-frame is passed into a signal object which in turn is passed into our signal strategy building block and backtested.

As you can see, while the strategy outperforms the price of crude oil, returns are quite volatile and the strategy suffers from large drawdowns. An options strategy is therefore applied to improve our strategy’s return profile.

Protective collars are common options strategies employed by oil traders, they are constructed by purchasing out-of-the-money put options and writing out-of-the-money call options with the same expiry. This strategy allows traders to hedge downside risk while reducing the cost of the strategy by selling the call. The trader will have a limited upside set at the strike price of the call but has partially offset the cost of the hedge.

The DynamicOptionStrategy building block allows users to easily define a basket of options to trade. The basket creation method is called on each rebalance date and returns a dictionary of options and units to trade. To construct our protective collar, options are struck 10% out-of-the money with three months maturities as seen in the get option method. Similarly to our rolling futures strategy, a fixed SpotNotional target of USD 100K is set to match the exposure taken in our futures. Now that we have defined the instrument for our protective collar, you can include it in the signal strategy by adding it to the signal dataframe. Our strategy will trade the collar in the same direction as the Brent futures.

SigTech’s performance report compares our two backtests. This returns key metrics such as the annualised excess return, max drawdown and so on. Some rolling plots can also be generated to visually display the difference in performance between the strategies. Indeed we can see the improved risk-return profile of the collar hedged strategy.

Thank you for watching. Get in touch to learn more, we’d love to hear from you.