I’ve been looking into trading a rotational model using momentum lately. This post covers a few good reason for why one should trade momentum. My personal reasons are:
- It provides diversification
- I plan to trade a mean-reversion system soon, so adding a trend-following trading system will smooth my equity curve.
- It is proven within academia
- There are multitudes of research papers written over the momentum effect, and it is well-established anomaly within academia. You can find some of these for free over at QuantPedia.
- Easy to trade
- Trading a momentum system will only require to monitor it weekly, or monthly, leaving time for research into other efforts.
The momentum system being tested:
- Invests 100% of equity in the top four stocks using equal weights.
- The stock universe is all NASDAQ-100 stocks according to the NASDAQ website on 01/01/2013 (ticker list: NASDAQ Ticker List)
- Not free from survivor-ship bias – results will be inflated
- Test will be frictionless, from 01/01/1998 – 01/13/2013
- Re-ranks and trades monthly. Does NOT re-balance monthly.
- I used AmiBroker to test this. I re-rank at the first, second, and third day of every month. I also set an option where I am forced to hold onto a position for at least 5 days before selling. There are some occurrences where this may not perfectly replicate a monthly re-rank.
For this test, I will be using four different indicators:
- TSI()
- CAGR: 31.52%
- MDD: -69.06%
- Close relative to the 250-day high of the high
- CAGR: 13.38%
- MDD: -50.84%
- 250-day ROC of Close
- CAGR: 35.25%
- MDD: -73.00%
- Close relative to the all-time high of the high
- CAGR: 15.17%
MDD: -49.86%
- CAGR: 15.17%
For the purposes of creating a better performing ranking criterion, I will aggregated all four indicators into one. There are two obstacles I must first overcome:
- Normalizing the criterion
- The four indicators each have different scalings and different distributions. To create an aggregate indicator, we should normalize the indicators so they have similar sensitivies.
- Weighting the criterion
- The four indicators will most likely not contribute equal amounts to increasing performance. TSI() may have twice as much predictive power as the 250-day ROC, or it may be the other way around. Designing a weighting scheme will assign relative importance to the contribution of an indicator to ranking criterion
Normalizing the data:
There are two methods of normalizing the data which I will be testing for individual performance. The perfect rank function, and the z-score function.
Z-Score:
- TSI()
- CAGR: 18.48%
- MDD: -68.04%
- Close relative to the 250-day high of the high
- CAGR: 17.33%
- MDD: -49.88%
- 250-day ROC of Close
- CAGR: 25.55%
- MDD: -46.69%
- Close relative to the all-time high of the high
- CAGR: 19.29%
- MDD: -42.78%
Percent Rank:
- TSI()
- CAGR: 20.21%
- MDD: -65.30%
- Close relative to the 250-day high of the high
- CAGR: 14.45%
- MDD: -54.53%
- 250-day ROC of Close
- CAGR: 22.48%
- MDD: – 45.45%
- Close relative to the all-time high of the high
- CAGR: 16.07%
- MDD: -50.51%
Conclusion:
Z-score turned out to be better at normalizing indicator sensitivities while maintaining (or in the case of close relative to the all-time high of the high/250-day high of the high, increasing) performance. From this test, we can also form a tentative conclusion that TSI and 250-day ROC are indicators that perform better as a ranking indicator on an absolute basis (it doesn’t matter historically where the indicator resided), whereas for indicators such as the close relative to a variable, they perform better on a relative basis (where the indicator has resided historically positively impacts performance).