Tag: backtest

Rolling MADs

Our previous posts introduced portfolios based on Moving Average Distance (Part 1, Part 2). To answer questions regarding the stability of the moving average lookbacks, we ran a rolling window, picked the “best” MA lookbacks and walked the portfolio forward by a month. We expanded the window through 12 to 60 months in 12 month increments.

Turns out, most of them fall within the 20/200 region.

The data-mined parameters create portfolios that perform on par with the 21/200 used in the paper. While we are always skeptical about magical parameters that make the research work, at least in this case, the magic is not too far fetched.

You can follow along the live version of the original strategy here: MAD 21/200

Multiple MADs

Our previous post introduced a paper that used a moving average crossover to create a portfolio of stocks. While the backtest using the parameters in the paper looks good, the presence of these “magic” lookback parameters gives us pause. Did the authors just try a bunch of different parameters and published what worked? What if we do an exhaustive search through all possible combinations?

Here are the annualized returns and Sharpe ratios pre-COVID:

The magic 21/200 lookbacks look legit. However, the post-COVID picture looks different:

The magic parameters don’t quite figure in the top 5. However, even if you used the data-mined set, you would be ok?

Also, the paper used a “sigma” parameter as a threshold to activate the crossover. Getting rid of it seemed to have lopped 10% off the post-COVID returns.

You can follow along the live version of the original strategy here: MAD 21/200

Code and charts on github.

MAD – Moving Average Distance

Sometimes, a research paper comes along that gives academic rigor to an obvious thing that trend-followers were doing for decades and makes you sit up and take notice. Moving Average Distance as a Predictor of Equity Returns, Avramov, Kaplanski and Subrahmanyam (SSRN) does just that.

Turns out, a simple moving average crossover signal proves robust to momentum, 52-week highs, profitability, and other prominent anomalies.

A later paper extends it to international stocks and finds similar results (SSRN).

A quick backtest shows that it works for Indian stocks as well.

It looks like COVID turbo-charged this strategy. The pre-COVID equity curve is saner.

The returns are good but it comes with some nasty drawdowns. Not sure if most investors can stomach a 25% drawdown that lasts over a year. Can it be made better by applying a volatility filter?

By sacrificing 2 points of returns, you can get to a sub 20% drawdown. Also, the filter worked during the most recent 2021-23 drawdown as well.

You can follow along the live version of this strategy here: MAD 21/200

Code and charts on github.

Momentum Portfolio Size

Previously, we looked at skip-months, rebalance frequencies and formation periods for momentum portfolios. A 1-month skip & monthly rebalance turned out to be ideal. However, the most popular 12-month formation period is “magic” – not a terrible choice but not super scientific either. The only thing left to toggle is the portfolio size.

A 20-stock momentum portfolio seems to be the ideal config.

This is pretty much the standard direct-equity momentum portfolio: 12-month formation, 1-month skip, 20-stocks with a monthly rebalance.

Code and chart on github.

Momentum Formation Period

Previously, we looked at skip-months and rebalance frequencies for momentum portfolios. A 1-month skip & monthly rebalance turned out to be ideal. However, we did these analyses keeping the formation period the same at 12-months. What if we changed that as well?

Turns out, there is no single “ideal” formation period where all stats converge. However, if set the rebalance frequency to 1-month, the average of the formation periods of the top performing portfolios works out to 12-months.

If the momentum fund is large enough, then it could probably be sliced into multiple sub-portfolios, each with different configs to avoid this magic 12-month formation.

Also, since the underlying process creating these portfolios is the same, the equity curves come out all bunched together. There maybe differences in month-over-month performances but they are all highly correlated.

Code, charts and statistics on github.