19th Ave New York, NY 95822, USA

Trend Following With ETFs and Large Cap Stocks


I was browsing Quantpedia and came across an investment strategy called Asset Class Trend Following, originally credited to Meb Faber.

The strategy is very simple so I decided to run a couple of quick backtests and see if I could find anything interesting. 

Asset Class Trend Following Rules

The rules are straightforward…

Using an investment universe of 5 large ETFS (SPY for US stocks, EFA for foreign stocks, BND for bonds, VNQ for REITs and GSG for commodities) we will hold each ETF whenever it is over its 10-month Simple Moving Average and whenever the ETF moves below the 10-month SMA we will move into cash. The portfolio will be equal weighted and we will use the 3-month Treasury bill for cash.

The idea behind this strategy is to create something robust and reliable that any ordinary investor can follow.

We are going to hold up to 5 liquid ETFs whenever they are above their 10-month moving average. When we are not invested in an ETF, the remaining cash will earn interest according to the 3-month Treasury bill.

Essentially, this strategy combines the benefits of momentum and asset allocation in one model. 

Backtest Results

The strategy on Quantpedia is shown as having an indicated performance of 11.27% between 1973-2008 with a low volatility of 6.87%.

However, I was surprised to get a very different result when backtesting the same strategy. 

When I ran the system from the beginning of the out-of-sample in 1/2008 to 12/2020 I produced an annualised return of only 3.41% with a maximum drawdown of -11.23%. 

As you can see from the following graphics, the return in this period is low and equates to only a 3.41% CAR. However, the drawdown is very manageable which means some leverage could be used:

trend following with etfs equity curve
trend following with etfs profit table

Meanwhile, the strategy on Quantpedia is shown as producing an 8.6% annualised return over the same time period with a -13.7% drawdown. This is using the backtest engine from Quantconnect:

quantconnect backtest result

I’m not sure what I’m missing here as the rules appear to be identical but my annualised return is significantly lower than reported on the website. I spent some time investigating this but not sure why I get such different numbers.

Nevertheless, I like the simplicity of this strategy so I decided to persevere and see if I could come up with something for individual equities.

Trend Following Using S&P 100 Stocks

Inspired by the monthly asset strategy above I decided to test a few more ideas this time using equities instead of ETFs.

Focussing on S&P 100 stocks I decided to keep the 10-month trend rule the same. The main difference is that I introduced a ranking rule based on strength of the stock and the industry it belongs to.

Here’s what I came up with: 

Buy and Sell Rules

  • Buy when Close > 10-month SMA
  • Sell when Close < 10-month SMA


  • Industry RSI(14) + stock RSI(14) – highest values preferred.

The ranking uses the Relative Strength Index indicator (RSI) and consists of two different scores which are combined together. We then take the stocks with the highest combined score.

In other words, we take the RSI(14) score for the industry that the stock belongs to, then we combine it with the RSI(14) score for the stock itself. 

For example, Bank of America (BAC) belongs to the Banking and Invesments sector and is further classified in Reuters as belonging to the S&P 1500 Diversified Banks Sub Index. 

If we just look at the most recent date, the RSI(14) score for the industry on the 15th December was 51.88 and the RSI(14) score for Bank of America was 54.96. This gives the stock a combined score of 106.83.

bank of america example

Bank of America is also trading above its 10-month SMA so it will be bought if the ranking score is high enough.

Backtest Settings

To backtest this strategy we are going to use the following settings:

  • Universe: S&P 100 stocks (includes delisted stocks)
  • Starting Capital: $50,000
  • Timeframe: Monthly
  • Backtest dates: 1/1995 – 12/2020
  • Max portfolio Size: 10
  • Position Size: 10% (equal weight)
  • Commissions: $0.005 per share
  • Ranking: Combined RSI score (as above)
  • Execution: All trades placed on same monthly close

Backtest Results

To recap, this strategy buys stocks from the S&P 100 index that are trading above their 10-month SMA and sells when they drop below the 10-month SMA. 

We ranks stocks according to a combined score of the industry RSI and individual stock RSI and take the highest scores first. 

It is therefore a system that buys strong stocks in strong industries.

The following statistics and equity curve show the results of this strategy backtested on S&P 100 stocks back to January 1995:

  • Trades: 391
  • Annualised Return: 12.58%
  • Risk-adjusted Return: 13.12%
  • Max Drawdown: -39.54%
  • CAR/MDD: 0.32
  • Win Rate: 44.25%
  • Sharpe: 0.20
large cap stocks trend following equity curve
large cap stocks trend following profit table

Overall, first impressions are good. For comparison, a buy and hold return on the S&P 500 over the period was 10.3% with a drawdown of -55%.

Highest Ranked Stock

Out of interest, the highest ranked stock as of December 2020 is Thermo Fisher Scientific Inc. (TMO).

TMO trades above its 10-month moving average with an RSI(14) score of 81.04 and it’s industry (healthcare services & equipment) RSI(14) score is 76.59. That means it has a combined score of 157.63.

TMO trade example


In this article I tested a well known market timing strategy that holds a selection of liquid ETFs when they trade above their 10-month moving average. 

I didn’t find the results I was looking for and decided to migrate the strategy over to an equity universe. 

With the help of a simple scoring mechanism (combining RSI at the industry level and RSI as the stock level) we produced an annualised return of 12.6% over 26 years with a maximum drawdown of -40% and a win rate of 44.25%. 

The results are not bad for such a simple strategy and may be suited to some investors. The strategy would take just a few minutes to run and can be further fine tuned with human input. The drawdown profile is also fairly mild with only five losing years out of 26.

Full code for this strategy is provided in our program Marwood Research.


Data used for this analysis comes from Norgate Data and includes historical constituents and delisted stocks so as to minimize survivorship-bias. Data also includes dividends, is adjusted for splits and corporate actions. Stock charts and analysis produced in Amibroker.

Comments (4)

Hi Joe,
This is interesting as I like very simple systems.
Logged onto Marwood Research and can’t find the system.

All the best,

Interesting approach. I would like to understand better: do I buy the 10 companies above the 10-month moving average (equally weighted) and then do I have to repeat the observation month by month? Correct?

Leave a comment