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

*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!

DV,

Have you ever tried multiple timeframes, something like:

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

David,

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?

dha,

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

Best,

Josh

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?

Thanks

Frank

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?

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.

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.

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.