In 2006, Meb Faber wrote a highly influential paper on tactical asset allocation and market timing. The strategy was particularly attractive in part because of its simplicity:
- Buy when monthly price > 10-month SMA
- Sell and move to cash when monthly price < 10-month SMA
By applying this simple, mechanical strategy to the S&P 500 going back to 1900, Faber concluded that market timing can be used to enhance the absolute and risk-adjusted returns of a portfolio. The strategy would have deftly avoided the ruinous drawdowns of the Great Depression, Tech Bubble and Financial Crisis which lends substantial credibility to the claim.
However, there are reasons to be skeptical. Market timing is prone to generating false signals which can result in substantial opportunity costs as investors move to cash in what is otherwise a secular bull market. Moreover, given how well the strategy has been publicized there is reason to suspect that investors are now keen to the idea and such inefficiencies will be difficult to exploit going forward.
In this post, I will be taking a critical eye to the Faber strategy with the objective of determining how well it has performed since the initial study was first published and what its prospects are going forward. Given the near record valuations that investors face today understanding how this strategy can help investors play defense is particularly salient.
Strategy and Set Up
For this study I’ll be using data for the S&P 500 Total Return Index (i.e., assumes dividends are reinvested) from January 1988 through May 2021. The S&P TR was selected to align with Faber’s original paper but is arguably more realistic than using the price return series given the strategy’s long-term focus. Faber’s original specification was based on monthly price data and a 10-month simple moving average (SMA). I’ll be employing a slightly different expression of the strategy based on weekly price data and a 44-week simple moving average which allows for slightly more granularity.
My specification uses the same simple logic described by Faber:
- Buy when the weekly price is greater than the 44-week SMA
- Sell and stay in cash when the weekly price is less than the 44-week SMA
The initial strategy equity is set at $100,000 and is fully invested/divested when the appropriate signal is observed. Buy and sell orders are assumed to be executed at the Close on the day of the signal. While this is an obvious simplification, given that the strategy is low turnover and relies on weekly data the overall impact is likely to be small.
Strategy design and backtesting was conducted using the quantstrat family of R packages.
Initial Backtest
Below is a plot of the S&P 500 Total Return Index and 44-week SMA. Several features of the plot stand out, namely the peaks in September of 2000 and August of 2007. This is possibly the single best example of the seduction of market timing: with just a little foresight you could have side stepped two of the worst drawdowns in investor memory.
However, recent experience is more cautionary. Prominent signals were also generated in December of 2018 and, of course, in March 2020 when COVID hit, and the observational evidence is more mixed. Given that both drawdowns were sharp and short-lived, one may wonder up front if timing in this way was the correct approach. With the benefit of hindsight, we know that weathering COVID has been substantially rewarded over the past 15-months.

With these stylized observations in mind, let us present the results of the first backtest. The below series of plots provides a good snapshot of the strategy’s performance. The top plot charts the S&P 500 Total Return Index with indicators for when trades took place. The Green triangles indicate Buy orders while the Red triangles indicate, unsurprisingly, Sell orders. The blue bars in the middle chart depict the number of shares held during the period. The absence of a blue bar implies that the strategy was out of the market and sitting in idle cash. The final two charts are the equity curve and drawdown plot, respectively.

The position plots show that for ~80% of the strategy’s life it was invested in the market. The longest periods of time that the strategy was out of the market occurred during the fall out of the Tech Bubble and during the Financial Crisis; as we have observed. Let’s examine the trade statistics:

quantstrat provides us with a plethora of statistics for the Faber strategy. The Net Trading P&L is $1,578,172 and the Max Drawdown is -$237,575. Let us compare these statistics to the performance of the index. Note that the first trade for the Faber strategy takes place on February 2nd, 1990, to make the comparison “apples-to-apples” I have computed the performance that follows beginning on this date to simulate the difference between trading Faber v. holding the index.
The below figure plots the cumulative return for the S&P and strategy, respectively. The first observation that stands out is that the Faber strategy underperforms the S&P Total Return index over the analysis period. The strategy deftly exits the market in 2000, 2007 and, briefly, in 2020 as desired, but this is not enough to compensate for the false signals generated along the way. Specifically, a prominent false signal was generated in 2016 when markets stalled on fears of a “China slowdown”.

The key selling point of the Faber strategy is that is guards against large drawdowns; as depicted in the below plot. In general, we can see that the Faber strategy works as advertised. Again, in 2000, 2007 & 2020 the strategy’s drawdown is significantly lower than that of the index. However, we do observe the effects of the false signal generated in 2016 when drawdown was about twice that of the index.

Finally, let us examine the risk-adjusted return statistics. In general, they are quite encouraging and what we would hope to see from a timing strategy. The annualized return is lower for the Faber strategy than the index which is indicative of the long-term underperformance we observed, but crucially this return is achieved while taking significantly less risk. On a pure risk basis (as measure by standard deviation) the strategy takes ~29% less risk than the index. The Sharpe for Faber is ~.79 compared to the index’s ~.68; an approximately 14% improvement. The Calmar Ratio (annual return/max drawdown) is over double that of the index and is probably the most salient feature of the strategy.

Parameter Optimization and Feature Analysis
We will now transition to parameter optimization and feature analysis.
The objectives of parameter optimization are twofold:
- Determine if the selected parameter is stable.
- Determine if another value of the parameter can improve results.
Stability is synonymous with consistency. A minor adjustment to the value of a parameter should not lead to significantly different performance. If it does, then we should treat any conclusions with caution. It could be that we just happened to select a parameter that worked well in-sample and the same value for the parameter may not work well when traded out-of-sample. Moreover, if another parameter works particularly well and also appears stable, then this would be a good thing to know, and we should investigate it further.
There are many parameters that we could optimize for (and perhaps we will in the future) based on the indicator, signal, or rule. We could imagine optimizing across order types by adding stop and trailing stop orders to the strategy or adjusting the trade size based on signal “strength”. For this study I will focus on optimizing the indicator. The Faber strategy is simple in the sense that it relies on a single indicator (the simple moving average) which has a single parameter (the length of the SMA).
Our initial backtest was conducted using a SMA length of 44 weeks. In the analysis to follow, I varied the length of the SMA from 20 to 52 weeks (stepping by 2 each time). Let’s check out the results!
The first graph presents the number of trades v. SMA length. We can see that the number of trades placed by the strategy uniformly decreases with length. This is unsurprising as the longer the SMA the closer the strategy approximates simple Buy and Hold.

Moving on to something a little more interesting, the second plot shows strategy P&L v. SMA length. This plot suggests the existence of two stable regions from 26-32 and from 42-50. The extreme ends of the range are instructive. An SMA length of 20 is the worst performing parameter. This suggests that the strategy has difficulty separating signal from noise over short intervals and consequently overtrades the account. Likewise, an SMA length of 52 is quite long and starts to approximate a Buy-and-Hold Strategy. Hence the P&L is higher which is consistent with previously discussed results.
Our original choice of 44 for the SMA lies within a stable region which suggests our initial guess was rather good. However, the plot suggests that the strategy would have performed better if we traded more aggressively using a shorter SMA length.

The next two plots bring risk into consideration: plotting the standard deviation of the P&L and Sharpe Ratio, respectively. Standard deviation appears reasonably stable from 26-36 and from 40-46; similar ranges to the P&L plot. Notably the shorter SMA length region (i.e., 26-36) demonstrates lower risk than the longer region (i.e., 40-46). Meanwhile, the two regions appear to produce roughly similar Sharpe Ratios.


To gain some additional insight into the risk of strategy we can consider drawdown which, as it turns out, is highly instructive. As can be seen in the below plot. The drawdown plot appears to have stable regions from 26-32 and from 42-50 (in line with the P&L plot), but one is significantly more attractive than the other. Trading the strategy more aggressively with a shorter SMA results is more severe drawdowns that using a slower SMA. In fact, the drawdown of the “short SMA” (i.e., 26-32) is almost as bad as the 52 weeks SMA which I have postulated is close to Buy-and-Hold which is not what we want to see from a timing strategy.

We have now established that the short SMA is potentially more profitable than the long SMA, but also results in larger drawdowns. To square these opposing conclusions, we can turn to the Profit to Drawdown Ratio (a variation of the Calmar Ratio discussed previously). The Profit to Drawdown plot is shown below. Interestingly, the two effects essentially cancel out with the Profit to Max DD ratio essentially the same for the short SMA (i.e., 26-32) and long SMA (i.e., 40-48).

In summary, the results from the parameter optimization suggest that our initial choice of 44 for SMA length was pretty good. 44 lies in a stable region for most of the metrics analyzed which indicates consistency. Moreover, 44 has the attractive feature that it appears to guard against drawdowns more effectively than short SMA variants. That being said, if you want to shoot for potentially higher profits and can tolerate larger drawdowns then you can employ a SMA of 26-32 and the risk-adjusted statistics (Sharpe, Profit to Max DD, etc.) will support your approach. As with many things in trading and finance, it is a matter of what you’re optimizing for.
Transaction Based Simulation
To this point we have considered backtesting and parameter optimization and the results have been encouraging. The Faber strategy does not appear to deliver outperformance on an absolute basis, but it does do a good job of managing risk and protecting against market drawdowns.
However, we might reasonably wonder if the strategy’s performance is due to skill or simply luck. To address this question more rigorously, we can employ monte carlo simulation. Generally speaking, the objective of a monte carlo study is to simulate many trading environments to better understand how a given strategy would have performed if the conditions were different. This provides valuable insight into the relative sensitivity of a strategy to the specific, observed market conditions, overall risk of the strategy and how the strategy can be expected to perform going forward. While most MC simulations do this by reordering the P&L/returns to create different price paths, the result is little more than a statistical confidence interval. This is helpful to be sure, but perhaps we can do better.
For this study, I’ll be using the txnsim() function from the blotter package available in R. txnsim() is a unique simulation function that aims to capture the dynamics of the trading strategy rather than simply reordering the P&L. Specifically, txnsim() attempts to incorporate “stylized facts” about the observed trading strategy including: duration of trades, direction of trades, how long the strategy was out of the market and maximum position. Using these facts, it then constructs a more realistic distribution from which to resample. This approach has several advantages:
- More closely compare the strategy to random entries and exits with same overall dynamic.
- Creates a distribution around the trading dynamics (our true object of concern), not just the daily P&L.
- Best for modeling “skill vs. luck”
(To learn more about transaction based simulation and txnsim(), check out the presentation and accompanying blog post by the package authors.)
Results from Strategy Simulation
For this study I will be simulating 100 different price paths for the Faber strategy to trade. Let’s see how the results stack up.
The chart below plots the equity curve of the “original” strategy (i.e., the one we have already examined), plotted in red, and the 100 possible variations which are plotted in grey. As we can see, the equity curve of the original strategy lies in the middle of the pack of the random variants. This tells us that the strategy as initially specified is not obviously better than randomly trading the same dynamics. If the strategy’s performance we’re solely attributable to skill then we would expect the red line to be “higher” than the majority of the grey lines which we do not see here.

However, net P&L is only one part of the equation as we need to consider risk and the risk-adjusted performance. The following three histograms depict the standard deviation, max drawdown and Sharpe Ratio of the simulation. The plots show the distribution for each statistic. The blue lines label the mean as well as the lower and upper bounds for a 95% confidence interval. The red line labels the value for the original backtest. What we want to learn from these plots is if the value for the backtest is statistically significant and if it is the “right” kind of significance.
Starting with standard deviation, we see that the backtest line (again, in red) lies between the confidence bounds. This tells us that the backtest standard deviation is not statistically significant (i.e., we cannot verify it is lower than randomly trading the strategy) at a 95% level of confidence. However, the backtest is close to the lower bound. If we were using a lower standard for significance (say 90%) we would reach a different conclusion.

Turning now to max drawdown we can now see that the backtest value does lie outside the confidence interval. This leads us to conclude that the backtest’s max drawdown is statistically significant at 5%. Moreover, it is the “right” kind of significance because the backtest lies outside the upper bound. For max drawdown we need to remember that we are considering losses (i.e., negative values) hence the upper bound represents smaller drawdowns. Since our backtest lies outside the upper bound we can confidently say that the Faber strategy results in lower drawdowns than a random variant. If the backtest value were below the lower bound we could still claim the result was statistically significant, but that wouldn’t be a good thing!

Finally, we can consider the Sharpe Ratio. Here, again, the backtest value lies between the confidence bounds which does not allow us to claim the Faber strategy results in a higher Sharpe than the randomly traded variants.

Concluding Remarks
In this post we have done a deep dive on the Faber strategy and learned quite a lot along the way. In my opinion, the key takeaway is that the Faber strategy does work for guarding against large market drawdowns but does so at the expense of long run performance. The Faber strategy should not be expected to deliver long run outperformance on an absolute basis over a simple by and hold but is able to achieve solid returns while taking a lot of risk (particularly, the most painful risk) off the table.
In many ways this makes intuitive sense. Volatility is often synonymous with “bad” outcomes but can be valuable if you are on the right side of the trade (option prices go up with volatility). With Faber, you are eliminating the risks and rewards from high volatility which has advantages and disadvantages. Had the COVID Crisis played out differently we might all be singing a different tune today. It’s important to remember that with market timing you need to know what you are getting yourself into and what you’re trying to achieve; it’s a difficult game after all.
Interestingly, my conclusion runs counter to that of Faber’s original paper which should give the reader pause. It is not that I think Faber’s conclusion or calculations were wrong, but, rather, incomplete. My hunch is that because he used market data going back to 1900 most of strategy’s outperformance can be attributed to timing out during the Great Depression. This is not an inconsequential feature as you would have avoided the worst economic meltdown in recorded history and, were it to happen today, you’d feel pretty good about that. If the advantage of Faber is that you avoid black swans, then you should probably think carefully about whether that is something you want to incorporate into your portfolio.
Final thought. In this post, I examined the most elementary implementation of the strategy: trade the 44-week moving average. It is quite possible that incorporating shorting, buying bonds rather than exiting to cash, setting stops and trailing stops or adding trade filters would have led to better results (indeed, I believe it would), but that, dear reader, is an exercise for another time.
Until next time, thanks for reading!
-Aric Lux.



