iBankCoin
Joined Nov 11, 2007
1,458 Blog Posts

Using the 20 Month Moving Average to Time the S&P 500

Chess has written many times about the 20 month moving average, and I have been meaning to backtest it for him for quite some time. Here are the results.

Buy Rules:

  • Buy $SPX at the close of the last day of the month if the monthly close is above the 2o month moving average.
  • Sell $SPX at the close of the last day of the month if the monthly close is below the 20 month moving average.

The first trade is made on 6.30.1960. No commissions or slippage are included.

Results:

  • Compound Annual Return = 6.08%
  • Exposure = 71.52%
  • Risk Adjusted Return = 8.50%
  • Average Profit/Loss = 17.93%
  • 23 Trades
  • Winners = 65.22%
  • Max System % Drawdown = -33.21%

Buy and Hold of $SPX over Same Time Period

  • Compound Annual Return = 6.31%
  • Max System % Drawdown = -56.77%

Equity Curve for 20 Month Moving Average System

All charts can be enlarged by clicking on them…

Drawdowns

Profit Table

Summary:

Using the 20 month moving average (over the time period above) to time the S&P slightly underperformed buy and hold. However, the maximum percentage drawdown was nearly cut in half. Thus, this method might serve as a good gut check for the long-term investor, allowing him to capture similar returns as buy and hold while lowering the likelihood of a devastating drawdown.

Caveats:

If I use all $SPX data which starts the first trade at 9.30.29, the compound annual return drops to 4.97% and the max drawdown grows to -61.03%. The late 1930s and early 1940s were tough on this strategy as the S&P executed a slow up and down bleed which whipsawed the system.

Chart Showing the 20 Month Moving Average

The blue line is the 20 month moving average.

If you enjoy the content at iBankCoin, please follow us on Twitter

6 comments

  1. Damian

    You running the system on daily or monthly data?

    • 0
    • 0
    • 0 Deem this to be "Fake News"
  2. Woodshedder

    Damian, its being run over daily, but using TimeFrameSet(inMonthly) and TimeFrameExpand to generate the monthly bars and MAs.

    • 0
    • 0
    • 0 Deem this to be "Fake News"
  3. chessNwine

    Great work, Wood. Thanks. I like to use that reference point as a general gauge of bear vs. bull which, to your analysis, is good for managing risk rather than hitting home runs.

    • 0
    • 0
    • 0 Deem this to be "Fake News"
  4. duck

    Did me email ever come through? Any thoughts or guidance?

    Thanks!!

    • 0
    • 0
    • 0 Deem this to be "Fake News"