Tag: backtest

Global Equities Momentum, Part III

We saw in our earlier posts on Global Equities Momentum (Part I, Part II) that by swapping the momentum equivalent of the equity indices in the GEM decision tree, one could significantly boost returns. Also, momentum trumped value.

Correlation between momentum and base indices

In the original GEM dual momentum model, the S&P 500 index was used to decide and to trade. What we claim here is that we can continue to use the S&P 500 index to decide, but we will use the momentum equivalents to trade. To back our claim, we present the correlation in the monthly returns of the base/momentum index pairs:
SP500.USA-MOMENTUM.correlation
WORLD%20ex%20USA.WORLD%20ex%20USA%20MOMENTUM.correlation

The indices move pretty much in tandem.

Robustness

If dual momentum is robust, then our strategy piggybacks on its robustness through the decision tree. Where we differ is in the way we express the trade. And our backtest shows that GEM is superior to buying and holding the underlying indices themselves both in terms of returns and drawdowns:

USA%20MOMENTUM.WORLD%20ex%20USA%20MOMENTUM.GEM.cumulative

Annual returns:
USA%20MOMENTUM.WORLD%20ex%20USA%20MOMENTUM.GEM.annual

Instruments

Implementing this strategy is fairly straightforward. You need to track the following ETFs:

  • SPY: for S&P 500
  • BIL: for US T-bills
  • IDEV: World ex-US
  • MTUM: US Momentum
  • IMTM: World ex-US Momentum
  • AGG: Aggregated bond

You will be long one of the last three ETFs above at any given point in time:
USA%20MOMENTUM.WORLD%20ex%20USA%20MOMENTUM.GEM.instruments

We will setup a virtual portfolio for this strategy and post the link here when it is up and running.

Code and more charts on github.

Global Equities Momentum, Part II

In our previous post on Global Equities Momentum, we explored how we could potentially replace the indices used in the GEM decision tree with their momentum counterparts to boost returns. Corey Hoffstein (@choffstein) pointed out that given the excess turnover of momentum strategies, measuring their trend maybe adding too much noise. Also, could using value indices, given their lower turnover, make more sense?

We setup the following backtest to fix the first problem and explore the second.

  1. We will use the S&P 500 index to make the first decision of the GEM model: Should we invest in equities or bonds?
  2. Once we get past #1, we will use different sets of indices to make the next one: USA or ex-USA? And trade the same.
  3. We will use the MSCI USA PRIME Value index to represent US Value and MSCI ACWI ex USA PRIME Value index and MSCI WORLD ex USA PRIME Value index, in turn, to represent international value.

USA/All World ex-USA Value GEM
USA/All World ex-US Value GEM

USA/Developed World ex-USA Value GEM
USA/Developed World ex-US Value GEM

  1. The GEM models both show vastly better returns and shallower drawdowns compared to buying and holding the underlying indices alone.
  2. There is not a lot of difference between the two GEM models.
  3. However, there are no equivalent ETFs for investors interested in implementing either of these GEM models.

In contrast, USA Momentum/MSCI World ex-USA Momentum:
USA Momentum/MSCI World ex-USA Momentum

Not only does the momentum GEM vastly outperform the value GEMs, it can be easily implemented with the MTUM and IMTM etfs.

Before jumping into any of these strategies, it is worth asking: Is this just data mining? How can we be sure that these backtests are statistically valid? By the same token, how can we be sure that even the dual-momentum model is robust? Gary Antonacci’s GEM backtest goes as far back as 1971 but we only have MSCI index data starting from 1995 or later. Besides, we are not sure if it is even possible to construct a reasonable momentum index going that far back. So, caveat emptor!

Code and more charts on github.

Global Equities Momentum

Gary Antonacci created the Global Equities Momentum (GEM) model that applied dual momentum to stock and bond indices. It toggles between stocks and bonds using 12-month trailing returns. And when it toggles to “stocks,” it chooses between US equities and International (ex-US) equities based on whichever posted higher returns in the previous 12-months. Newfound Research has a chart that puts it across succinctly:

The model uses the S&P 500 index as a stand-in for US equities and the WORLD ex USA index for international stocks. However, there is nothing in the construction that prevents us from replacing those market-cap based indices with momentum based ones.

US Momentum / Market-cap International

Scenario 1: keep everything the same, except in the last stage, instead of buying S&P 500, buy US Momentum (SP 500×1).
Scenario 2: swap out S&P 500 and put US Momentum everywhere in the decision tree (MOM).

In the cumulative return chart below, the black line is the base case. It represents GEM as originally designed. The red line is Scenario 1 above, green is Scenario 2.
sp500.mom.GEM.cumulative

Even though Scenario 2 has higher returns, it comes at the cost of higher drawdowns. Scenario 1 seems to strike a compromise.
Base case drawdowns:
SP500.GEM.dd
Scenario 1 drawdowns:
SP500x.GEM.dd
Scenario 2 drawdowns:
MTUM.GEM.dd

US Momentum / International Momentum

What if, we bought International Momentum (WORLD ex USA MOMENTUM) instead of the market-cap based WORLD ex USA?
Scenario 3 (dark blue): keep everything the same, except in the last stage, instead of buying S&P 500, buy US Momentum. And instead of buying market-cap international, buy WORLD ex USA MOMENTUM (SP 500×2).
Scenario 4 (light blue): swap out S&P 500 and put US Momentum everywhere. And instead of buying market-cap international, buy WORLD ex USA MOMENTUM (MOMx2).

sp500.mom.world.GEM.cumulative

Scenario 3 drawdowns:
SP500x2.GEM.dd
Scenario 4 drawdowns:
MTUMx2.GEM.dd

Here are returns broken down annually for all the scenarios discussed above:
sp500.mtum.x2.GEM.annual

It appears that using the S&P 500 index for making decisions about buying US vs. World ex-US momentum boosts returns while keeping a floor under drawdowns.

Code and charts are on github.

Streaks, Part II – Backtest

In Part I of this series, we saw that it is very rare for two consecutive down months to be followed by a third one. Here, we present a simple backtest that goes long NIFTY 50 for a month if the previous two months were negative.

backtest cumulative returns

The shallow drawdowns of this strategy makes it ideal for leveraged trades. NIFTY futures are about 7x levered. That should transform the 190% gross return to about 1330%, beating buy and hold by a wide margin. The MIDCAP 100 index behaves similar to this between the 2005 through 2018 time-frame. However, the results are not so great if you include data prior to 2005.

This looks like a case of severe data-mining and should be discounted as such. But it is an interesting result nevertheless.

Code and charts are on github.

SMA Distance, Part III – Backtest

In Part II, we saw that when the 50- and 100-day SMA Distance is in the first quintile, subsequent 20-day returns have smaller left tails. Can that observation be turned into a market-timing system?

The backtest

We setup two long-only portfolios: one that goes long S&P 500 if either of the 50-day or 100-day SMA Distance is in the first quintile and another that, in addition to the 50- and 100-day being in the first quintile, also makes sure that the 200-day SMA Distance is not in the first quintile. These are L1 and L2 in the chart below:

Using SMA Distance is a poor long-term strategy. However, it does help avoid deep drawdowns. It is not very useful as a standalone indicator but perhaps could be used to confirm other signals.

Code and charts are on github.