Mixture model over S&P 500 returns

Market returns have different characteristics depending on whether they are in a “bull” phase or a “bear” phase. Daily returns can be labeled as either belonging to the “bull” camp or the “bear” camp using mixture models. This post extends Eran Raviv’s idea described here.

Rolling vs. whole period analysis

The density plot of daily returns of the distributions fit by the mixture model using the entire data-set of daily returns looked promising. There was a very visible difference in the way returns behaved under the two regimes. However, rolling period analysis hews closer to the real world. And the densities don’t look as pretty:
density plot of returns in stable and unstable regimes

Sure, “unstable” or “bear” regimes have slightly fatter tails but the densities are not as different as they appeared to be in the whole-period analysis.

Another gotcha is that when the regimes are superimposed on the S&P 500 price index, it looks like it could be good idea to use this system to trade it:
S&P 500 regimes
1 (blue) => stable

Timing signal?

It looks like the model helped escape most of the 2008 carnage and the “stable” regime looks to be long most of the up-trends. However, the overall return profile is sub-par when used in a systematic trading strategy:
S&P 500 cumulative returns

Take-away

Mixture models are an interesting tool in the quant tool-box. However, like how using skew as a timing signal appeared to be a good idea on the face of it, it turns out that using mixture models to time trades in a linear fashion is not such a good idea.

Code and charts on github.