Skip to content

SMA ROC(1): A Better Trend Measurement Than Price-Based Moving Averages

December 21, 2009

NOTE: The strategies below were traded long/short using yahoo finance data. For sma roc(1) a long signal is triggered when sma roc(1) is greater than zero , and a short signal when it is less than zero.  The SMA strategies were traded using the standard method, long>sma, short<sma.

Sometimes simple refinements that improve upon inherent flaws in other methods can really make a big difference. One of the primary problems with the venerable SMA or simple moving average of price is that it is distorted by  historical compounding and is slow to respond to price movements. When prices or trends change suddenly this lag and distortion can cause some serious whipsaw problems. Momentum or simple returns are a measure of velocity have the benefit of reacting much faster to price changes. This increased sensitivity and accuracy in capturing price fluctuations is highly valuable. It is also the reason that historical volatility calculations factor in the standard deviation of price returns rather than the standard deviation of prices divided by an average such as bollinger bands. The simplest and most basic application of this concept is to take the SMA of returns or the 1-day ROC (rate of change) instead of the price. The use of this method substantially improves returns and reduces drawdowns. Below is a chart of the 20, and 200 sma of prices versus the sma of ROC(1) on the SPY (S&P500). As they say, the devil is in the details!

7 Comments leave one →
  1. dha3936420 permalink
    December 21, 2009 8:11 am


    Have you ever tried multiple timeframes, something like:

    SMA( ROC(Close, 1) + ROC(Close, 10) + ROC(Close,20) + … , 8)

  2. December 21, 2009 10:44 am


    What’s the buy/sell criteria for the SMA(ROC(1))? Does it compare ROC(1) with SMA(ROC(1)), or do you buy/sell when SMA(ROC(1)) is above/below zero?


    I believe that’s Martin Pring’s Know Sure Thing.


  3. Frank permalink
    December 21, 2009 10:55 am

    Hello DV,

    i guess your system is long when the ROC1>SMA(ROC1,200) for example.
    I get very different returns.

    In my case the SMA(ROC1,200) is 0.25 for Friday (12/18). Have you got the same?


  4. geckoman permalink
    December 21, 2009 1:14 pm

    Just playing around here but I wondered what would happen if I did a Golden Cross on this method. I took the 50 DMA of the ROC(1) and thw 200 Day of the ROC(1). Eyeballing it looks good. Try it and tell me what you think. A better golden Cross perhaps?

  5. toptick permalink
    December 21, 2009 6:15 pm

    Interesting. Thanks, DV!

    My first thought was Average(RateOfChange(Close, 1), 200) simplifies to Summation(RateOfChange(C, 1), 200) if comparing with 0, so we have an arithmetic return average, which should be less than the geometric (compounded) return. True, but irrelevent.

    Experimenting, I found that the Average(RateOfChange(C, 1), 200) is almost identical to RateOfChange(Close, 200) when compared with 0. When traded as suggested on SPY, the latter gives slightly better results always trading 100 shares, and indistinguishable results if compounding.

  6. Curtis White permalink
    December 21, 2009 7:20 pm

    Looks interesting: wish you would provide greater details on exactly how you tested this. Since 1994 when I compared SMA(ROC(200) > 0 against SMA(200) trending then the results were identical using a look-back period of 5. I.e slowSma(bar) > slowSma(bar-5). But I’m super tired so I could be missing something.

  7. mhf permalink
    December 23, 2009 10:37 am

    Unless I’m going something differently, 200 SMA had better cumulative return than 200 SMA ROC(1) *prior to* 1993. Haven’t had time to check other moments (st. dev, skewness, kurtosis), max drawdown, etc just yet. But I thought I’d point this out anyway.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: