In this post we’re going to continue our work with the Consistent Momentum strategy that we explored here. Initial investigation of the strategy (kindly provided by the good folk at Quantpedia) proved to be relatively good, with a CAGR of +19% and a single losing year through the test period. One shortfall however was the significant drawdown that investors had to endure to achieve the compounded annual return, specifically, the 2008 financial crisis saw the strategy drawdown by -67%. If we compute my favourite risk-adjusted ratio, the MAR ratio ( CAGR/ABS(Max DD) ), we get a value of 0.28, which in effect means investors earned 0.28 units of return for every unit of risk, less than desirable. But given that all the nasty drawdown was associated with the 2008 financial crisis, coupled with the fact that the underlying strategy’s logic is to buy relative outperformance against peers, positive or negative, a few simple overlays will likely improve drawdown and the risk-adjusted measures.
In my mind a strategy attempting to capture momentum should be aware of the return of the counters it’s exposing capital to. Simple relative performance, as in the Consistent Momentum strategy, is clearly not going to work when the entire market is losing value as was the case in 2008 – buying stocks that are losing less than their peers will not produce positive returns. Therefore, one obvious filter to consider is something that tracks the current market regime. We’re interested in a simple binary overly that can distinguish between rising and falling markets in the medium term. During falling markets we’ll cease trading and move to cash and vice versa. The S&P 500 is a good proxy of market performance, but we could use others, such as the Russel 1000. The general idea is to apply a simple moving average to the index, a 200-period moving average for instance, and then use that to classify rising markets – the index is above its average, keep trading – and falling markets – the index is below its average, cease trading. Our filter should mitigate some of the nasty drawdown during the 2008 financial crisis and help boost our overall performance stats.
Regime Awareness Works
First off, the logic associated with out regime filter is sound. Mathematically, a series can never move above its average without rising, and the converse holds. It’s a good idea to ensure that any overlays we apply are intuitive. First box checked. Second, we hope to see meaningful improvements. For every additional rule, a degree of freedom is lost, which means robustness somewhat deteriorates. Here again we check the second box – improvements in performance are significant. By moving the portfolio to cash during major market inflection points, we were able to halve our drawdown from -66% to -33% while maintaining the same return profile. Said differently, our regime filter doubled our risk-adjusted metrics: the MAR ratio jumped from 0.28 to 0.66, not too shabby. Here’s a comparison of both the equity and drawdown curves – a notable improvement during the 2008 financial crisis.
** A 200-period moving average was applied to the S&P 500 for the regime filter.
In the final bit of testing I wanted to examine whether the parameters used in the model are optimal. Recall that we employed a six-month rate of change in price to rank for momentum and a 6-month time stop. Further, we selected the top 100 counters based on consistent momentum for possible portfolio inclusion. These were the default parameters used in the initial strategy, but there are any number of parameter combinations which could have been employed and possibly perform better. However, a more important aspect of performing this test is to confirm model robustness – we hope to see performance positive over a broad combination of parameters to ensure our model is not fitted to a single combination. This is important because it implies that our model will be better able to adapt to changes in market conditions, in other words, it displays robustness. Here the news is good yet again: performance remains positive across a broad spread of parameters. Some combinations performed significantly better than our default set, but it’s pleasing to observe that regardless of the parameters used the model’s positive performance persisted. Here’s a quick look at the top ten performing parameter combinations – the best combination being a 3 month momentum and time stop parameter and 25 used for counter selection.
**Parameter testing as follows: momentum parameter (3,6,12); monthly time stop parameter (3,6,12); counter selection top (25, 50, 75, 100)
Engineering a Parameter Diversified Portfolio
I’ll end this post by sharing a powerful method to mitigate the effects luck in trading to ensure the greatest correlation between live performance expectations and backtested data. The secret to this is accepting that no single parameter combination will remain optimal through time, therefore, allocating 100% of equity to a single, and seemingly optimal, parameter combination is senseless – over any given timeframe, the best performing parameter combination is attributed to blind luck. Rather, we should allocate a portion of capital to a good spread of parameter combinations. That way we have a piece of everything and so we don’t care which combination is optimal, we’ll participate to some extent with its success. In theory, this approach should yield the optimal performance through time since we capture the average performance of the algorithm instead of portions that may or may not perform well due to luck.
In this post we took a simple momentum strategy and reworked it into a powerful and robust portfolio that is more likely to stand up to the test of time. There are however many more things one should consider to further convert this into a fully formed quant process. Other overlays may include specific return interval targets before considering a counter for inclusion, correlation between the counters in the portfolio, sector allocation restrictions and position sizing algorithms that allow for volatility in each stock. One could possibly control risk further with the use of stop losses, or relative performance ranking daily. No cash returns were included during periods of cash allocations, which would further improve returns. Finally, one may seek ways to hedge the portfolio from time-to-time to smooth performance further.
Hope you enjoyed reading.