So, in the spirit of 'keep it simple', I have a strategy that uses 2 ETFs, trades long-only, and can be traded and backtested using publicly-available indices and data. I call it the "Volatility Reversion" trade.
Over the past few years, the VIX1D Index has turned into a whole big... Thing thanks to 0-DTE options, and people have done a lot of research on the VIX1D and 0-DTE options, and how to trade 0-DTE Options. But I found something interesting with the VIX1D Index in relation to other volatility products that others may not have covered yet.
The Idea:
The idea is very simple: Volatility ETFs (SVIX, SVXY, and VIXY, which largely have VX Futures as their underlying assets) tend to "revert" day-to-day depending on the VIX1D level.
If volatility for the day is too high, SVIX and SVXY will increase. Too low, and VIXY will increase. The market can't help itself. Investors worry an event will happen in the future, so they’ll splurge on SPX options to hedge their portfolios, translating to rising VIX levels. Then the event doesn’t happen, or it isn’t that scary, so investors stop spending so much on SPX options, translating to dropping VIX levels. Since 2024, 0-DTE options are over 40% of the options market’s volume. So not only is the VIX1D Index more reactive to the day-to-day volatility estimates of the market, it’s also covering a large section of market activity.
It’s important to note here that due to the structure of the VIX1D Index, it will almost always be constantly increasing during the day. This paper gives a good summary of why that happens. But VIX1D intraday movement peculiarities won’t be a concern for this strategy because we’re only looking at the VIX1D Index’s level at a single point in time at the end of each trading day.
The Assets Traded:
The Pro-Shares VIX Short-Term Futures Fund (VIXY) is an interesting little ETF that simply buys and holds the VIX short-term futures index, wieghted to a 1-month time to expiration. They’re not actually trading the VIX index, but what the futures market thinks the VIX will be at when the futures contracts in question expire.
The Pro-Shares Short VIX Short-Term Futures Fund (SVXY) is a similar, but opposing ETF that is 50% short the same futures VIXY is long.
The Volatility Shares -1x Short VIX Futures ETF (SVIX) is like SVXY, but roughly 100% short VIX futures, also containing a small OTM VIX options position to hedge against a massive upswing in the VIX.
The Buy+Hold returns for these instruments has not been great lately:
This is partly from the unpredictability of the VIX and how VIX Futures are structured. You can look at the VIX Index chart to see the index spiking and reverting, over and over, for years on end.
As does the VIX1D, since inception:
One of my favorite articles about investing is this one, a rundown on a phenomenon called "Shannon's Demon". It's worth a full read in my opinion, because by all reports Shannon was an incredible investor and not just academically interested in this topic, achieving annualized returns greater than 25% during his lifetime. Put succinctly, ‘Shannon’s Demon’ suggests that with regular rebalancing of an asset, positive returns can be created from like magic as long as it’s sufficiently volatile.
Buying and holding VIXY, SVXY, and SVIX long-term haven't been good investments. And they’re horribly volatile. Randomly switching between VIXY and SVXY/SVIX each day might be profitable in the long term, but we believe we’ve got a possible edge in ‘reversion‘.
The Rules:
The trading rules are simple:
If the VIX1D is <= 10 at end of day, Long VIXY
If the VIX1D is >= 15 at end of day, Long SVXY or SVIX (depending on your risk appetite, SVIX takes more risk than SVXY to try for higher returns.)
If ^VIX > ^VIX3M at end of day, don't open VIXY or SVXY/SVIX positions, and close out any positions that are already open.
(Note: The VIX3M is an index that is calculated just like the VIX index, but uses a 3-month timeframe, and not a 1-month timeframe.)
The Results:
We don't have a lot of data on this trade, since the VIX1D was introduced in April 2023. But the results are rather good so far. The following is the growth of $1 since 2023-04-01. It uses VIXY and SVXY, and trades no matter the level of the VIX compared to the VIX3M.
We can decompose the trade into the VIXY, and SVXY/SVIX parts of the strategy as well:
As an aside, I’d like to point out that the Long VIXY part of the strategy on its own has nice growth without the large drawdowns that the Short Volatility ETFs have. Nor does it have the consistent decay that VIXY has when bought and held for long periods of time.
For argument's sake, we'll show the differences in returns when VIX < VIX3M or VIX > VIX3M. I believe that the vicious drawdowns of the 'pure' strategy can be largely avoided in the past and future, (at the cost of some of the subsequent recovery's returns) by exiting positions when VIX > VIX3M at market close.
In general, I've found that the VIX index being greater than the VIX 3 Month Index at end of day is a great heuristic for deciding when to avoid going long equities or short volatility. To use fancy finance terms, we want volatility to be in 'contango', and not 'backwardation'. My intuition for this is that Volatility itself tends to cluster. A large spike in volatility will drift back to normalcy eventually, but there will be short period of high volatility following said spike. And when Volatility's elevated and clustering, it's not as predictable day-to-day for moving in the direction we want. I looked at periods when VIX was greater than VIX3M in past, and found that it allowed a strategy to sidestep a lot of volatility, including Volmageddon and the worst of 2008.
I wouldn't and won't use my full portfolio to trade this. VIXY and SVIX could get effectively zero'd out on a very weird and unlucky day, like what almost happened to SVXY and what did happen to XIV during "Volmageddon" some years ago. But I think a 10% allocation in the portfolio is safe enough for my own risk tolerance. Furthermore, this kind of trade is much safer than shorting VIX futures, since the potential downside is capped at 100% instead of infinite.
Now, while a lot of the returns in this strategy occur during the very mild trading period of 2024, 2023 and the first months of 2025 so far have not been walks in the park. The strategy furthermore outperforms simple Buy+Hold strategies for SPY, Long Vol (VIXY) and Short Vol (SVXY or SVIX). So I don’t think this strategy was just lucky.
Some Numbers:
From 2023-04-22 to 2023-04-28, we have the following statistics for an “optimized“ strategy:
Sharpe Ratio: 2.48
Sortino Ratio: 2.02
Profit Factor: 2.01
Average Annual Return of Strategy: 183.17%
Percent of trading days invested: 44.8%
Percent of Trades Profitable: 61.61%
Avg Daily Return while invested: 0.92%
For reference, the Sharpe Ratio of SPY in this period was 0.81 while fully invested for 100% of trading days.
If we decide to use the “optimal“ strategy, (Use VIXY and SVIX for the long and short Volatility assets and have no positions when VIX > VIX3M) our returns look something like this:
In terms of feasibility, this strategy should be easy to check and even automate. An investor would only need access to real time data for VIX, VIX3M and VIX1D indices a few minutes before market close each day, buying and selling their shares of VIXY/SVIX/SVXY as needed. The trade doesn't need to be monitored or adjusted at any other point in the day. If the position wasn't completely filled by market close, the trader could use limit orders during the overnight period after market close as well as the next trading day to fill the position.
I'll be trading this Volatility Reversion strategy and keep track of results starting April 30th, end of day. I don’t expect the returns to be the same or as good as the backtested ones, thanks to the mercurial nature of markets and slippage, but I think the strategy will be profitable in the long run.
Code for the backtesting and charts is listed here.
Within the Code, there is an option to backtest on free yfinance API data, and paid Polygon API data. The prior analysis in this article was done using paid Polygon data.
The Polygon data uses 3:55PM EST prices for all indices and ETFs when calculating returns.
The yfinance data uses 4:00PM EST prices (the “Close“ price you see on OHLC data) for all indices and ETFS when calculating returns.
The performance of the strategy using yfinance data is better for all metrics. For instance, the yfinance Strategy’s Sharpe ratio was roughly 2.71, a 0.3 improvement on the Polygon data’s Sharpe. I suspect that doing the trades between 3:56 and 3:59 will improve performance over the Polygon backtest’s results, but not to the level of the yfinance backtest’s results.
- Lay Quant
This is an amazing intro write up thanks for sharing it must’ve taken some time to put all of this together
Great chart Good work.