Momentum · Indicator
Rate of Change is the percentage difference between the current price and the price N bars ago, oscillating around zero.
Overview
Rate of Change measures the percentage price change between the current bar and N bars ago: the close minus the close N bars back, divided by that older close, times 100. It is a simple momentum oscillator that swings around zero, positive when price is above where it was N bars ago and negative when below. There is no smoothing and no bounding, which makes it the most direct measure of momentum available.
Its usefulness comes from that directness. Where MACD and RSI both apply smoothing that introduces lag, ROC reports exactly how much the market has moved over a defined window with no filtering at all. Expressing the result as a percentage rather than in price units also means readings are comparable across instruments and across time, unlike MACD.
The trade-off is that ROC has two moving parts: the current bar and the bar N periods ago. A change in the reading can come from either end, so ROC can fall sharply simply because a large move is dropping out of the window while current price has done nothing. This 'drop-off effect' is the main thing to understand before using it.
How it is calculated
The current source value is compared with the value N bars earlier and the difference is expressed as a percentage of the older value. The result is unbounded in the positive direction and floored at -100, which corresponds to price falling to zero.
No averaging is applied, so ROC inherits every bit of the source's noise. Some traders apply a moving average to the ROC line to make it readable, which reintroduces the lag that ROC avoids.
ROC = (close - close[N bars ago]) / close[N bars ago] * 100
Inputs
How to read it
The sign gives direction and the magnitude gives speed. ROC above zero means price is higher than it was N bars ago, and a large positive value means it got there quickly. Because the scale is percentage terms, a reading of 10 has the same meaning on any instrument, which makes ROC convenient for comparing momentum across a watchlist.
Zero-line crossings mark the point where the current price equals the price N bars ago, which is a mechanical definition of momentum turning. In a trending market these crossings are infrequent and meaningful; in a range they occur constantly and carry no information.
Extremes are relative. There is no universal overbought level because the scale is unbounded, so traders compare a reading to the range ROC has occupied on that instrument historically. A value at the top of its own two-year range describes a genuinely unusual burst of momentum.
Signals to look for
ROC crossing above zero means price has moved above where it stood N bars ago, and the reverse below. It is the simplest momentum-direction signal the indicator offers.
Price making a new high while ROC peaks lower than on the previous advance says the latest move covered less ground in the same number of bars, describing a decelerating trend.
A value at the top or bottom of its own historical range marks an unusually fast move. Such moves often mean-revert, but strong trends can sustain elevated ROC for extended periods.
Limitations
Frequently asked questions
Rate of Change is the percentage difference between the current price and the price N bars ago, oscillating around zero.
The sign gives direction and the magnitude gives speed. ROC above zero means price is higher than it was N bars ago, and a large positive value means it got there quickly. Because the scale is percentage terms, a reading of 10 has the same meaning on any instrument, which makes ROC convenient for comparing momentum across a watchlist.
Zero-line cross: ROC crossing above zero means price has moved above where it stood N bars ago, and the reverse below. It is the simplest momentum-direction signal the indicator offers.
ROC is affected by both ends of the window. A large bar dropping out of the lookback can cause a dramatic change in the reading even though current price has barely moved, which produces signals that reflect old data rather than new.
Related indicators