# VIX-Adjusted Momentum

The addition of many small details can make a big difference in seemingly simple strategies. I often like to use cooking analogies, and so I like to think of tomato sauce as a classic example: it contains few ingredients and is simple to make but difficult to master without understanding the interaction between components. Trend-following strategies are no different: anyone can create a simple strategy, few can master the nuances. One of the problems in measuring trends in financial market data is that the variance is not constant. In statistics we know that heteroscedacity can render the use of traditional regression analysis meaningless. Therefore, to use un-adjusted price data in conjunction with a moving average strategy, or even taking the simple compound return or ROC (rate of change) can lead to potentially poor timing decisions and increase the frequency of trading.

The good news is that it is well-accepted that volatility is highly predictable in financial markets. Perhaps one of the best measures of volatility is implied volatility reflected by market participants in the VIX. A simple idea would be to use the VIX to adjust daily returns in order to create a trend-following strategy that is more robust to non-constant variance. The method as follows is very simple:

1) compute daily returns or log returns for the S&P500 time series

2) divide each daily return by the VIX level on the same day

3) take a lag of your choosing and compute the simple average–say 200-days in this example

Strategy: Go LONG when the VIX-Adjusted Momentum>0, Go to cash if sma, cash if not) and a 200-day traditional momentum strategy (go long when the ROC>0, cash if not).

here is a graph comparing the strategies:

Clearly the VIX-ajusted momentum is superior to the traditional trend-following strategies using this set of parameters. This concept can be extended in several different ways- for example, one could instead use historical volatility, or the difference between historical and implied in other creative ways. Hopefully readers will be inspired to take a fresh look at improving upon a simple and traditional strategy.

Hi David,

Hope all is well with you. My own testing confirms what you’ve already outlined. 2-3 years back, I modified your AggM in a way that incorporated the VIX. Basically, when the VIX was elevated (VIX Close Value >.xx PERCENTRANK(Close,252)), the calculation of the AggM was adjusted, adding weight to the mean reverting component. Vice versa when the VIX was low. I believe I had setup my algo to shift between a 25/75;50/50;75/25 weighting scheme, as opposed to a static 50/50. I recall this tweak being very effective in the long term, so I hope your post will inspire others to do the same.

hi Chris, hope you are well also–long time. I think that is a very interesting idea–I haven’t looked at that in a while (AggM) but it makes sense. I like the multiple entry scheme also– makes things more robust.

Nice suggestion!

best

david

Hi David,

It seems that the critical two-liner with the description of your three illustrated strategies got garbled–can you restore/rephrase it? (“Strategy: Go LONG when the VIX-Adjusted Momentum>0, Go to cash if sma, cash if not) and a 200-day traditional momentum strategy (go long when the ROC>0, cash if not)”.

hi Wg, you are being kind when you say “garbled” 🙂 I often put together these posts late at night after the coffee has long worn off. I will re-emphasize that in my next post, thank you.

best

david

No problem, David. The reality is most of us operate on the same schedule 😉

Let us know when you straighten out the rules, or even better–if you have a spreadsheet, attach it, as the language of formulas is always clearer than any verbal description. For instance it is not clear if you divide the raw return of the index by the raw level of the VIX or the VIX’s return… lots of those questions that a spreadsheet will answer instantaneously.

Hello David,

Thank you again for your very inspiration blog. I am wondering about the third step here.

3) take a lag of your choosing and compute the simple average–say 200-days in this example

How do you calculate the 200 SMA in Excel for example when you have divided the daily returns and not the price series itself?

I have tried to take the average of 200 daily returns or the product sum of 200 daily returns but it does not give me the same signals as when you apply the moving average to the price series.

Kind regards,

Peter

hi Peter, thank you for the kind words. the calculation is on the returns– standardize (divide) each return by the trailing error, then take the 200-day moving average of those adjusted values. Signals are generated by looking at the sign of the average of the adjusted values- long if >0, cash if <0. There is no need to convert this to price-based moving average, nor should it match up in terms of signals. hope that helps.

best

david

Thank you David. I understand completely now. I’ve just tried 200 ROC and the average of 200 daily returns. These two give the signal at the same time. So the VIX-adjusted signal is like a 200 day “error”-adjusted ROC 🙂

Kind regards,

Peter