Trend following is all about following the price. Typically the only input we need for a trend following model is the price. But what if I told that we could make a kind of trend following model which does not use the price direction as an input at all? It also has no stops and no targets.
In this article, I’d like to introduce you to a different way of thinking about futures trading models. It may sound a little strange at first, but I can assure you that it’s perfectly logical. What we’ll be doing is constructing a model that uses only the implied yield of the term structure. No, that’s not as complicated as it sounds. In fact, it’s something that you really should understand if you trade futures.
Let’s start with a quick recap of what term structure means. It’s really quite important and you shouldn’t be trading futures if you don’t understand that part.
If you for instance want to buy gold futures, you’ll need to pick a specific delivery. As of writing this, you could trade the December 2016, February 2017, April 2017 etc. Which months are available varies for different markets. There is usually one delivery month which is by far the most liquid one, and that’s usually where almost all futures traders have their positions. Right now, the primary month just shifted from December 2016 (Z6) to February 2017 (F7).
Looking at the usual futures chain, in most market data systems it would look something like this image below. The chain will show you what deliveries are listed and the key data for them.
What is important to understand here is that the price for two different deliveries of the same market will always be different. Sure, gold is gold, but we’re not trading actual gold bars here. We’re trading a contract that requires a delivery of gold at some point in the future. How far in the future this point is, will be a factor in pricing that contract.
The graph below shows this relationship. The green dots, connected by a line, shows the price for the different deliveries. As you can see, gold is currently cheaper for a December delivery than for the later deliveries. This is what’s called contango.
If the prices are lower further out in the future, that would be called backwardation. In the example below, you see the term structure graph for orange juice. Note how the green price markets are lower and lower for each successive delivery. This is because this market is in backwardation.
There are several factors at play in the price differences. Interest rates, storage costs etc. For financial futures, like equity index futures or currency futures, the price difference is minor. For commodities and fixed income, the difference tends to be more significant.
So far, none of this should be new to you. If you trade futures or have in interest in the subject, this is all old news. After all, this is the reason why we need to adjust futures continuations.
Now if you understand the logic so far, you should also understand that the term structure impacts the direction of the price. No, no, that’s not at all a stretch of the logic. Here’s how to think about it.
In this example, the price of spot gold is now exactly $1,000. The February futures contract is trading at $1,020. We know that by the very definition, the futures price will at expiry settle at the same price as the spot market. From the above, you should understand why the price might be a little different in the futures. But here’s the kicker: If the actual futures price does not move at all, and stays at exactly $1,000 the entire time, the price of the futures contract has to, by mathematical certainty, fall $20 until it goes to delivery.
Below is a chart that someone who seems to have the same level of artistic skills as I do has contributed to Wikipedia. The logic shown here is correct, but I can’t help but think that the label “Expected future spot” is both incorrect and misleading. It would be more clear if it just said “Spot”. Also, this graph has the word forward in the labels, but the logic is exactly the same for futures.
Ok, are you with me so far? What did we learn here that is of real value?
We learnt that a market in contango has a bearish bias and a market in backwardation has a bullish bias. Now we’re getting to the juicy parts.
This of course doesn’t mean that a market in contango is always falling. It is very much dependent on the price movements of the underlying asset, but it does put a bias on the price. A market in contango will need to see a price increase in the underlying just for the futures contract to remain flat. It can be a powerful driver of long term market moves if the term structure is steep enough.
For some markets, the term structure is so steep and so persistent over time, that it’s really all that matters. This is the situation we had for so many years in natural gas, and something that is very clearly visible in STIR markets.
A couple of paragraphs ago, I threw out the phrase “if the term structure is steep enough”. That begs the question about how you could measure the steepness. If you have a background in finance, you already know the logical answer. Calculate an implied annual yield!
Simple stuff, people. Take the price difference between two contracts. Calculate the percentage difference. Check how many days difference there is in the two deliveries. Now use that to annualize the difference to standard money market yield conventions. And now you have a number that you can relate to and compare across all markets. It tells you the implied annual yield between two points in the term structure.
Is this information useful?
Let’s find out. Let’s build a model that only uses this information. Nothing else. We’ll just trade on the shape of the term structure.
The only indicator we use is a time series of the implied yield between the active contract and the next. We’re just looking one point out in this simple example. Nothing fancy, we just want to see if there’s any informational value to this.
The rules are very simple. If the implied yield between the second and first contract is more than 3%, we go long. If it’s below -3%, we’ll go short. Allocation is standard volatility parity and these rules are applies on a large set of futures markets, covering agricultural commodities, metals, energies, fixed income and STIRs.
Keep in mind that this is a highly simplistic demo model. It’s not meant for live trading but it is something that holds a great educational value.
A simulation starting in 1990 saw an annual return of 30.7% with a maximum drawdown of 50%. Not bad for a model as simple as this. Did I pick some over optimized settings? No, not really. Let’s change the number up a bit. Let’s run it again, and set the yield threshold at 10% instead of 3%. Just to make an extreme change and see if we break the logic.
Now we get an annualized yield of 16%, at a max drawdown of 38%. Note how most of the return was made in the 90’s, with returns leveling out a bit in the past decade. That’s not too strange, given the change in interest rate climate. Yes, that means that you may want to model different thresholds based on the yield situation at the time, but there you need to do your own homework. I just want to get your interest in the idea here.
What we can see here is that seemingly crazy rules like this, actually has a clear value. Now again, no one in their right mind would launch a model in this shape, but now we know that there is a value to be found in the implied yield.
By standardizing the term structure shape into what resembles an indicator, you have a easily accessible way to base models on this data. There are plenty of more things you can do with this information of course. This is just a simple demo to show the value.
Getting the Data
So why isn’t everyone using this data as an input factor? Well, a lot of people do. But not on the retail side. It’s really not that hard to get this data, but it may require a little more work than just punching up a chart on a website.
All the data you need is actually available for free, if you’re willing to do the work yourself. You need end of day time series for the currently trading contracts as well as data on price, expiration dates and preferably some data on volume and open interest. This is all available from the exchanges for free. Now you just need to crunch the data and automate the process.
Once you have the time series for the implied yield, you can put that into your simulation platform and start developing models. In this article, I made a simple demo model that only uses the structure as input. You might also want to construct models that use the structure as one of several inputs.
I’ve already automated this process of course, and it’s available on this site. You can check the implied yield between different points and download a full time series history that can be imported into your simulation platform.
The automated daily data is currently only available to subscribers of course. Sorry about that. But that seems reasonable, I think, given that I actually explain above how you can do it yourself. I will write more on this topic going forward and I plan to publish some sample model code in the premium section as well for making use of the term structure data. Feel free to sign up and give it a spin.
I’m also trying out this article as a bit of an experiment. In my own view, this is likely one of the most useful and valuable articles on this site. But I also suspect it will be one of the least read. It’s a funny internet phenomenon, I suppose. If I write an article about how Elliot Waves are for people who believe in chem trails, I get 100,000 people reading it even though it’s just really obvious stuff. Usually when I actually write something of value, very few people read it. Let’s see what happens to this one. If there’s a real interest, there’ll be more useful articles. Otherwise, I’ll go back to picking on the mathematically challenged…