Updated: Nov 3, 2020
For all us volatility traders, checking the VIX futures term structure is something we all do several times a day. A solid source for the information is vixcentral.com, and one of the many useful metrics we're looking for there is the level of M1:M2 VIX futures contango/backwardation. I wrote a full article explaining this mechanism here if you need a refresher
* Also the Youtube video explanation is below the article, check it out later
However, the raw contango/backwardation value alone may be misleading, especially around VIX futures expiration as I will show in this article. Here's an example to build off:
VIX futures term structure: From Monday April 15th, 2019
- The 1st month M1 is at 12.76 - The 2nd month M2 is at 14.65
To calculate the current level of VIX futures contango is a simple calculation:
(M2 - M1) / M1
(14.65 - 12.76) / 12.76 = 14.81% contango
The problem with this calculation though is there's only 1 day left until the front month VIX future expires. If you hover over any of the futures on vixcentral you can see additional information. Notice how the front month future expires in 1 day?
Basic explanation of how volatility ETPs like VXX work
Volatility ETPs are unique in that they don't derive their price based on supply and demand of the actual ETP. Instead, they hold a combination of the M1 and M2 VIX futures contracts, and based on the values of those contracts and how they move in relation to the spot VIX (convergence to spot VIX at expiration) they derive their price.
- At the start of a new expiration cycle, VXX would be using 100% of the new M1 contract and 0% of the new M2 contract. As time goes by, that weighting shifts away from M1 and towards M2.
- So in the middle of the expiration cycle for example, VXX would be using 50% of the front month M1 and 50% of the back month M2 in its calculation.
- Right before expiration, the calculation is using 100% of the back month M2 contract and 0% of the front month M1 that is going off the board.
- Then finally expiration happens, and the calculation is once again using 100% of the front month M1, and 0% of the back month M2. Rinse repeat every monthly cycle.
But notice, the M2 that was being used 100% on expiration day is the same contract that's now being used 100% as the new M1. The only thing that's changed is its position in the line, not its value.
* So now relevant to the adjustment mechanism, when M1 expires and moves off the term structure completely, the current M2 becomes the new M1. The current M3 becomes the new M2. The current M4 becomes to new M3. This continues right down the line of VIX futures all the way with the current M8 becoming the new M7. That front month leaves the board on expiration day and the new futures continue until the next monthly expiration.
The "new" M1:M2 contango level
So when that very low priced M1 future contract expires and leaves the board, the new M1:M2 contango relationship is going to be substantially lower on Wednesday right?
- The current M2 that's soon to be M1 is at 14.65 - The current M3 that's soon to be M2 is at 15.47
Same calculation: (15.47 - 14.65) / 14.65 = 5.6% contango
That is quite the difference. From nearly 15% on Monday, to perhaps as high as 17% on Tuesday, and then maybe just around 5.6% on Wednesday. Nothing material would have changed in the markets at all, yet contango will be far lower.
And as far as percentile ranking of all previous values, you can see how much of a difference that makes.
If just using the M1:M2 VIX futures values as is, one might think contango is nearly as high as it ever gets, at the 97th percentile. However the true value, which will reveal itself on Wednesday is fairly middle of the road at just the 55th percentile.
Obviously this could have a dramatic effect on any systematic volatility strategies that are implementing M1:M2 VIX futures as one of the input variables. It may not matter as much if going from 15% to 5%, but what about going from 5% to something closer to zero, or even into backwardation when the front month expires? I can definitely imagine a scenario where that affects the signals.
So we need to adjust the M1 & M2 VIX futures values to also take into account the number of days to expiration.
There's no right way to do it so if you have a method of your own, I'm sure it does the job just fine. I have my own way of calculating it which is how I display it the Volatility Dashboard. Here is a screenshot of a portion of my spreadsheet showing a few relevant data points.
- M1-M7 VIX futures - Trading days to expiration - Future roll / day
All I do is take those simple input variables and adjust the M1 and M2 depending on how many days to expiration and what percentage of each future is being used on average.
Adjusted M1: M2 - ( (M2 - M1) * (days * future roll) ) Adjusted M2: M3 - ( (M3 - M2) * (days * future roll) )
Adjusted contango = (Adjusted M2 - Adjusted M1) / Adjusted M1
Now I have a realistic contango reading that takes into account the number of days to expiration and there is no jump in values around expiration. It's just a smooth reading of VIX futures contango that I can then use any time I need that value
Now I've mentioned many times in the past that VIX futures are actually just a small cog in the wheel of the volatility complex and that's true. I don't want to give the impression today that this is the holy grail of trade signals. It's just one of over a dozen that I use every day (and not even in my top 5 if I'm being honest). Having said that, I do think it's something every aspiring volatility trader needs to understand, and the "adjusted" method is superior in my opinion. Like I said there are other ways to adjust the futures, feel free to get creative with it. The goal is just to smooth out the readings so it's not jumpy around expiration.
Is this information actionable for VXX and the like?
Sometimes I get people ask me if there's any advantage to buying or selling the volatility ETPs a day or two before expiration and then flipping it a day or two after, trying to capture this expected drop in contango.
* Very important: These jumps in M1:M2 VIX futures contango around expiration have ZERO effect on the actual price of the volatility ETPs. They already use constant rolling contracts and are already adjusted for this expiration voodoo.
Adjusted M1:M2 VIX futures contango since Mar 26, 2004
See! Contango isn't as high as it gets right now as the traditional method would have us believe. It's just middle of the road, fairly close to its long term average. This adjustment just makes for a more accurate reading because it removes the uncertainty that expiration creates.
VIX futures expire the third Wednesday of every month. If you want to see why this adjustment method is so important, get into the habit of checking VIX futures both on the Tuesday before expiration, and then the next day on expiration Wednesday. You'll see it for yourself. The M1:M2 contango values will typically be much higher on Tuesday than Wednesday, even on those days when nothing materially changed in the markets.
From our example, on Tuesday Apr 16, 2019 the VIX futures were 16.30% in contango. The absolute contango level rarely gets that high which would give us the impression volatility was extremely low on that date. However the next day on Wednesday Apr 17, 2019 that value dropped to just 6.84% contango. Nothing changed in the markets, volatility was stable, but the passage of one day and the front month VIX future expiring changed that level substantially.
Trading the various volatility ETPs available carry with it certain additional risks, so I feel it's very important that at the very least traders have the correct information to make the most informed decisions. Using the more accurate adjusted M1:M2 VIX futures contango may yield better long term trading results.
Adjusted M1:M2 VIX futures contango values are provided every morning for VTS community subscribers. If you'd like to learn more about this and other important volatility metrics, feel free to claim your free trial below and see what our community is all about.
YouTube video explanation:
Want to join the Awesome VTS Community?
* All information, analysis, and articles on this site are provided for informational purposes only. Nothing herein should be interested as personalized investment advice as I make no recommendations to buy, sell, or hold any securities or positions. I'm making this website available "as is" with no warranty or guarantees of it's accuracy, completeness, or current's. If you rely on this website or any of the information contained, you do so entirely at your own risk. I do not hold myself out as a financial advisor and nothing herein is a solicitation for any fund or securities mentioned. Although I may answer general questions about the information herein, I'm not licensed or registered under security laws to address your personal investment situation. Past performance is not indicative of future results. Any and all financial decisions are the sole responsibility of you the individual.