I’m just starting to explore the possibilities of this Caveman system.
It is very simple, and I like simple. I’m not sure where any of this will lead. For now, I’m just exploring and having fun.
To create the chart below, I ran an optimization using brute force where I tested a minimum number of days to hold each trade against a moving average length.
The system simply ranks the stocks by the number of days they have traded above an X day moving average and holds each trade for Y days before re-ranking and possibly rotating into another stock. There are a maximum of 3 stocks held at one time. If, after the minimum hold time, a stock is no longer in the top 3, it is replaced with the higher-ranked stock. The system goes to cash if the $SPX is beneath its 50 day average and the minimum hold times have been met.
This is simply a proof-of-concept, so no commissions or slippage have been included. Neither has a return on cash. I ran the optimization from 1.1.2007 to 1.1.2010. The Russell 2K data I’m using has been adjusted to included non-surviving stocks.
Click on any of the charts to enlarge…
This shows the optimization results of the X day moving average (num) against the Y days held (HoldMindDays). While the optimized parameters achieved an annualized return of 51.1%, the space is not at all smooth. All those sharp peaks mean there is a substantial likelihood that the system will be curve-fit and will never produce anywhere near 51.1%. More likely, we could expect less than half that in real-time. Although since I only ran through 1.1.2010, we will eventually see how the optimized parameter do in out-of-sample testing.
This graph shows a fairly wide space where holding anywhere between 30 and 70 days has been optimal.
The other side of the 3D optimization graph shows that the optimal moving average was the 150 day. We also see peaks around 100 and 50. I again want to emphasize how “peaky” these results are. We hope that these graphs produce smooth, rolling hills rather than sharp peaks and deep valleys.
So for fun, lets use a 50 day minimum hold with the 150 day moving average.
The system’s compound annual return was 44.54% with a maximum drawdown of -33.83%. It made 53 trades with 66.04% winners and an average trade of 7.05%.
The flat spots of the curve are when the system is holding cash.
While this is a fun exercise, based on the very peaky optimization graph, I’m not so sure there is anyway to trade this system and have any faith that it will continue to perform well in the future. That being said, I’m going to play around with it a little bit more.