Rate of Change (ROC)

Rate of Change (ROC)


The Rate-of-Change (ROC) indicator, which is also referred to as simply Momentum, is a pure momentum oscillator that measures the percent change in price from one period to the next. The ROC calculation compares the current price with the price “n” periods ago. The plot forms an oscillator that fluctuates above and below the zero line as the Rate-of-Change moves from positive to negative. As a momentum oscillator, ROC signals include centerline crossovers, divergences and overbought-oversold readings. Divergences fail to foreshadow reversals more often than not, so this article will forgo a detailed discussion on them. Even though centerline crossovers are prone to whipsaw, especially short-term, these crossovers can be used to identify the overall trend. Identifying overbought or oversold extremes comes naturally to the Rate-of-Change oscillator.


ROC = [(Close - Close n periods ago) / (Close n periods ago)] * 100

ROC - Spreadsheet 1

Click here to download this spreadsheet example.

ROC - Chart 1

The table above shows the 12-day Rate-of-Change calculations for the Dow Industrials in May 2010. The yellow cells show the Rate-of-Change from April 28th to May 14th. It is actually 13 trading days, but the close on the 28th acts as the starting point on the 29th. The blue cells show the 12-day Rate-of-Change from May 7th until May 25th.


As noted above, the Rate-of-Change indicator is momentum in its purest form. It measures the percentage increase or decrease in price over a given period of time. Think of it as the rise (price change) over the run (time). In general, prices are rising as long as the Rate-of-Change remains positive. Conversely, prices are falling when the Rate-of-Change is negative. ROC expands into positive territory as an advance accelerates. ROC dives deeper into negative territory as a decline accelerates. There is no upward boundary on the Rate-of-Change. The sky is the limit for an advance. There is, however, a downside limit. Securities can only decline 100%, which would be to zero. Even with these lopsided boundaries, Rate-of-Change produces identifiable extremes that signal overbought and oversold conditions.

Trend Identification

Even though momentum oscillators are best suited for trading ranges or zigzag trends, they can also be used to define the overall direction of the underlying trend. There are approximately 250 trading days in a year. This can be broken down into 125 days per half year, 63 days per quarter and 21 days per month. A trend reversal starts with the shortest timeframe and gradually spreads to the other timeframes. In general, the long-term trend is up when both the 250-day and 125-day Rate-of-Change are positive. This means that prices are higher now than they were 12 and 6 months ago. Long positions taken 6 or 12 months ago would be profitable and buyers would be happy.

ROC - Chart 2

Chart 2 shows IBM with the 250-day, 125-day, 63-day and 21-day Rate-of-Change. There have been three big trends in the last three years. The first was up as the 250-day Rate-of-Change was largely positive until September 2008 (1). The second was down as the indicator turned negative from October 2008 until September 2009 (2). The third is up as the indicator turned positive in late September 2009 (3). Even though the big uptrend remains in force, IBM flattened out on the price chart, which affected the 125-day and 63-day Rate-of-Change. The 63-day Rate-of-Change (quarterly) has been flirting with negative territory since February (4). The 125-day Rate-of-Change (six-month) dipped into negative territory for the first time since April 2009 (5). This shows some deterioration in IBM that serves as an alert to watch the stock carefully. A break below the six-month trading range would be a bearish development (6).

Overbought/Oversold Extremes

There are basically three price movements: up, down and sideways. Momentum oscillators are ideally suited for sideways price action with regular fluctuations. This makes it easier to identify extremes and forecast turning points. Security prices can also fluctuate when trending. For example, an uptrend consists of a series of higher highs and higher lows as prices zigzag higher. Pullbacks often occur at regular intervals based on the percentage move, time elapsed or both. A downtrend consists of lower lows and lower highs as prices zigzag lower. Counter trend advances retrace a portion of the prior decline and usually peak below the prior high. Peaks can occur at regular intervals based on the percentage move, time elapsed or both. The Rate-of-Change can be used to identify periods when the percentage change nears a level that foreshadowed a turning point in the past.

ROC - Chart 3

Chart 3 shows Aetna (AET) with an uptrend from April 2009 until April 2010. Notice how the stock zigzagged up with a series of higher highs and higher lows. Because the overall trend was up, the Rate-of-Change indicator was used to identify short-term oversold levels as a chance to partake in the bigger uptrend. Short-term overbought signals were ignored because the bigger trend was up. Based on the May-June bounces, -10% was set as the oversold boundary. Movements below this level indicated that prices were at a short-term extreme. Overbought and oversold settings depend on the volatility of the underlying security. A more volatile stock may use -15% for oversold, while a less volatile stock may use -5%. Oversold readings serve as an alert to be ready for a turning point. Prices are oversold, but have yet to actually turn. Remember, a security can become oversold and remain oversold as the decline continues. A 20-day moving average was overlaid to identify an actual upturn. After ROC became oversold in early October, AET moved above its 20-day SMA in late October to confirm an upturn (1). The second oversold reading occurred in early February and AET moved above its 20-day SMA in late February (2).

ROC - Chart 4

Chart 4 shows Microsoft (MSFT) in a downtrend from November 2007 until March 2009. This example uses a 20-day Rate-of-Change to identify oversold levels within a bigger downtrend. The number of time periods depends on the individual security and the desired trading timeframe. The late December high occurred with an overbought reading above +10%. This means Microsoft was up over 10% in a 20-day period, which is about a month. That's a pretty good bounce within a bigger downtrend. The next overbought reading did not occur until April, when the Rate-of-Change again exceeded +10%. MSFT broke trend line support in May to signal a continuation of the downtrend. The next overbought reading occurred in early August 2008. It took a while, but the stock eventually broke support at 24 in mid-September and again in early October.

ROC - Chart 5

Chart 5 shows Abercrombie & Fitch (ANF) within a trading range from October 2006 to February 2008. The 20-day Rate-of-Change indicator sets overbought at +10% and oversold at -10%. The overbought and oversold levels identify extremes quite well, but timing the actual turn is more difficult because of the volatility. The next chart reduces this volatility by using an exponential moving average in place of the price plot.

ROC - Chart 6

Chart 6 shows ANF as a 10-day EMA (black) and the actual price plot is invisible. A 30-day EMA has been overlaid as a signal line. Furthermore, the 20-day Rate-of-Change is shown with a 5-day SMA to smooth out the fluctuations. There are fewer overbought and oversold readings using the 5-day SMA. Focusing only on the buy signals, the green dotted line shows when ROC exceeds -10% and the green arrow shows when the 10-day EMA crosses above the 30-day SMA. The oversold readings are usually early, but the moving average crossovers are usually late. Such is life with technical analysis. The point here is to reduce whipsaws by smoothing the data. A 10-day EMA was used because it is faster than a 10-day SMA. A 30-day SMA was used because it is slower than a 30-day EMA. Speeding up the shorter moving average and slowing down the longer moving average makes for slightly quicker signals.


The Rate-of-Change oscillator measures the speed at which prices are changing. An upward surge in the Rate-of-Change reflects a sharp price advance. A downward plunge indicates a steep price decline. Even though chartists can look for bullish and bearish divergences, these formations can be misleading because of sharp moves. Sustained advances often start with a big surge out of the gate. Subsequent advances are usually less sharp and this causes a bearish divergence to form in the Rate-of-Change oscillator. It is important to remember that prices are constantly increasing as long as the Rate-of-Change remains positive. Positive readings may be less than before, but a positive Rate-of-Change still reflects a price increase, not a price decline. Like all technical indicators, the Rate-of-Change oscillator should be used in conjunction with other aspects of technical analysis.

ROC - Chart 7

Using with SharpCharts

Rate-of-Change can be set as an indicator above, below or behind a security's price plot. When the indicator is first chosen from the dropdown list, its parameter is set to 12 by default; from there, it can be adjusted to increase or decrease sensitivity. Users can add a moving average by clicking “advanced options” and choosing an overlay. A moving average can be used as a signal line or to simply smooth the data. Horizontal lines can also be added to mark overbought or oversold levels. Click here for a live example of Rate-of-Change.

ROC - SharpCharts

Suggested Scans

Oversold Rate-of-Change

This scan reveals stocks with a positive 125-day Rate-of-Change and an oversold 21-day Rate-of-Change (below -8%). For stocks that meet these criteria, a bullish signal is triggered when the stock closes above the 20-day SMA.

[type = stock] AND [country = US] 
AND [Daily SMA(20,Daily Volume) > 40000] 
AND [Daily SMA(60,Daily Close) > 20] 

AND [Daily ROC(125,Daily Close) > 0] 
AND [Daily ROC(21,Daily Close) < -8] 
AND [Yesterday's Daily Close < Yesterday's Daily SMA(20,Daily Close)] 
AND [Daily Close > Daily SMA(20,Daily Close)]

Overbought Rate-of-Change

This scan reveals stocks with a negative 125-day Rate-of-Change and an overbought 21-day Rate-of-Change (above 8%). For stocks that meet these criteria, a bearish signal is triggered when the stock closes below the 20-day SMA.

[type = stock] AND [country = US] 
AND [Daily SMA(20,Daily Volume) > 40000] 
AND [Daily SMA(60,Daily Close) > 20] 

AND [Daily ROC(125,Daily Close) < 0] 
AND [Daily ROC(21,Daily Close) > 8] 
AND [Yesterday's Daily Close > Yesterday's Daily SMA(20,Daily Close)] 
AND [Daily Close < Daily SMA(20,Daily Close)]

For more details on the syntax to use for ROC scans, please see our Scanning Indicator Reference in the Support Center.

Further Study

Technical Analysis of the Financial Markets has a chapter devoted to momentum oscillators and their various uses. John Murphy covers the pros and cons as well as some examples specific to Rate-of-Change. Martin Pring's Technical Analysis Explained shows the basics of momentum indicators by covering divergences, crossovers, and other signals. There are two more chapters covering specific momentum indicators, each containing plenty of examples.

Technical Analysis of the Financial Markets
John J. Murphy
Technical Analysis Explained by Martin Pring
Martin Pring
Buy Now Buy Now