Direct Answer
Rate of Change (ROC) measures the percentage change in price between the current period and a price a set number of periods earlier, oscillating above and below a zero line. A rising ROC signals accelerating upward momentum, a falling ROC signals decelerating or reversing momentum, and unlike many oscillators it applies no additional smoothing to the calculation.
Key Takeaways
- ROC compares the current price to the price N periods ago and expresses the difference as a percentage.
- It oscillates above and below a zero line: positive means price is higher than N periods ago, negative means lower.
- ROC applies no smoothing. It is one of the most direct, unfiltered measures of price momentum.
- The slope of the ROC line, not just its sign, indicates whether momentum is accelerating or decelerating.
- Shorter lookback periods react faster and produce more noise; longer periods are smoother but slower to turn.
- A zero-line crossover is a commonly watched signal, but like any single-indicator signal it benefits from confirmation.
- ROC is unbounded, unlike bounded oscillators such as RSI, so its absolute values aren't directly comparable across assets with different volatility.
What Is the Rate of Change Indicator?
Rate of Change (ROC) is a momentum oscillator that measures the percentage change in price between the current period and the price a specified number of periods earlier. It plots as a single line that moves above and below a zero line: above zero means price is currently higher than it was N periods ago (positive momentum), below zero means it's lower (negative momentum).
What sets ROC apart from many other momentum oscillators is what it doesn't do. Indicators like RSI apply averaging and smoothing methods to the underlying gain/loss data before producing a reading. ROC skips that step, it's a direct, unsmoothed comparison between two prices. That makes it simple and responsive, but also means it can look noisier on a raw price chart than a smoothed oscillator covering the same lookback window.
How ROC Is Calculated
ROC = [(Current Price − Price N periods ago) ÷ Price N periods ago] × 100
"N periods ago" depends entirely on the chart timeframe and the setting chosen, 10 periods on a daily chart means 10 trading days ago; 10 periods on an hourly chart means 10 hours ago. The calculation itself never changes, only which two prices are being compared.
Worked example: Suppose a stock closed at $50.00 exactly 10 trading days ago and closes at $52.50 today, using a 10-period ROC. ROC = [($52.50 − $50.00) ÷ $50.00] × 100 = 5%. If the same stock had instead closed at $48.00 today, ROC = [($48.00 − $50.00) ÷ $50.00] × 100 = −4%. The first case shows positive momentum (price up 5% over the lookback window); the second shows negative momentum (price down 4% over the same window). Neither result says anything about what the stock does next, it's purely a description of the move that already happened.
How to Read ROC
The zero line
The most basic reference point. ROC above zero means the current price exceeds the price from N periods ago; ROC below zero means the reverse. A crossover from negative to positive is sometimes watched as a shift toward positive momentum, and a crossover from positive to negative as a shift toward negative momentum, but a single crossover on its own doesn't confirm a trend change; it only confirms that momentum measured over that specific window has flipped sign.
Slope and acceleration
Because ROC is a direct percentage-change measure, its slope carries information beyond just its sign. A rising positive ROC means upward momentum is accelerating, price is gaining ground faster than before. A falling positive ROC means momentum is decelerating even though price is still up over the lookback window; price could be losing steam well before ROC actually crosses back below zero. The same logic applies symmetrically on the negative side.
Magnitude
Because ROC is unbounded (it isn't capped like a 0-100 oscillator), the size of a reading is only meaningful relative to that same asset's own typical historical range. A 5% ten-period ROC reading might be unremarkable for a volatile small-cap stock and unusually large for a low-volatility blue-chip index, there's no fixed "overbought" or "oversold" threshold that applies universally across assets.
Choosing a Lookback Period
| Lookback | Responsiveness | Trade-off |
|---|---|---|
| Short (e.g., 5-10 periods) | Fast, reacts quickly to recent moves | More noise, more false signals |
| Medium (e.g., 12-20 periods) | Balanced | General-purpose, common default range |
| Long (e.g., 25+ periods) | Smoother, slower to turn | Fewer signals, more lag behind actual price shifts |
There is no single correct setting. The right lookback depends on the asset's typical volatility, the timeframe being traded, and how the indicator is being used alongside other tools. Shorter periods surface momentum shifts sooner but generate more whipsaw; longer periods filter noise at the cost of reacting later.
Limitations and Common Mistakes
- Treating any single ROC reading as a trade signal, ROC describes momentum over one specific window; it doesn't account for trend, support/resistance, volume, or fundamentals.
- Ignoring the lack of smoothing, because ROC is unsmoothed, it can whipsaw across the zero line more than a smoothed oscillator covering a similar window, especially on volatile or choppy price action.
- Comparing raw ROC values across different assets, since ROC is unbounded, a "large" reading for one asset can be a "small" reading for a more volatile one. Compare an asset's ROC to its own historical range, not to another asset's.
- Assuming a zero-line cross confirms a reversal, it confirms that the specific N-period price comparison flipped sign, not that the broader trend has changed.
- Ignoring the lookback period's meaning on the given timeframe, a 10-period setting means something very different on a 1-minute chart than on a weekly chart.
- Using ROC in isolation, like any single momentum indicator, it reflects only historical price change and says nothing directly about liquidity, news, or valuation.
The Price on the Other End of the Comparison
ROC has one feature that is easy to miss and matters more than any signal rule: it compares today price to one single bar from N periods ago, not to an average of that period. If that anchor bar was a gap, an earnings spike or a flash of illiquidity, today ROC reading is distorted by an event that happened weeks back, and it will keep being distorted until that bar rolls out of the window. A sudden move in ROC does not always mean something moved today.
That is also why the slope carries more information than the sign. A positive ROC that has been falling for several bars says price is still above where it was N periods ago while gaining ground more slowly, and that deceleration is visible well before the line crosses zero. Waiting for the crossover discards most of what the indicator was telling you.
Two habits to avoid. Do not compare raw ROC values between assets, because ROC is unbounded and a five percent reading on a steady large-cap and on a volatile small-cap describe entirely different situations. And do not expect the smoothness of a filtered oscillator, because ROC applies no smoothing at all, which is its main virtue and the reason it crosses zero more often in choppy conditions.
Before acting on any reading, translate the lookback into real time on the chart in front of you. Ten periods is two trading weeks on a daily chart and ten minutes on a one-minute chart, and the same number in the settings box describes a different question in each.
Rate of Change FAQs
What does the ROC indicator measure?
It measures the percentage change in price between the current period and the price a set number of periods earlier, expressed as a single number oscillating above and below zero.
What does a positive ROC mean?
Price is higher than it was N periods ago, meaning upward momentum. A rising positive ROC suggests that upward momentum is accelerating; a falling positive ROC suggests it is decelerating even though price is still up over the period.
Is ROC the same as RSI?
No. RSI compares average gains to average losses over a period and applies smoothing, producing a bounded 0-100 line. ROC is a direct, unsmoothed percentage comparison between two prices and is unbounded.
What lookback period should I use for ROC?
There is no universal best setting. Shorter periods react faster and generate more signals and noise; longer periods are smoother but slower to reflect new momentum. The right choice depends on the asset, timeframe, and what the indicator is being used for.
Does ROC predict where price will go next?
No. It describes how momentum has behaved over the chosen lookback window using historical prices. It does not forecast direction, magnitude, or timing of future price moves.
What happens to ROC across a stock split in unadjusted data?
It produces an enormous reading that reflects nothing about the market. A two for one split halves the quoted price overnight, so a ten-period ROC computed across that date reports something close to a fifty percent decline for the next ten bars until the split date leaves the window. The same applies in reverse for reverse splits. Adjusted data removes the artefact, which is why the data source matters before the indicator does.
Is ROC the same as the momentum indicator?
They are close relatives with one important difference. The classic momentum indicator subtracts the price from N periods ago, giving a result in currency units that depends on the price level. ROC divides instead, giving a percentage that does not. On a single chart over a short window they look almost identical; across a long history or across securities at different price levels they diverge sharply.
Why does ROC move when nothing has happened to price?
Because both ends of the comparison are moving. ROC compares today price against the price N periods ago, and each new bar drops an old observation from the far end of the window. If that old observation was an unusual price, the ratio changes as it leaves, with no new price action at all. A sharp move exactly N periods ago therefore produces an echo in the indicator today.
What does a small ROC reading mean in a market that is clearly trending?
That the price N periods ago is close to today price, which can happen in a steady grind if the lookback happens to span a full round trip, or if the trend is slow enough that the N-period change is genuinely small. ROC measures the endpoints and ignores the path between them entirely, so a trending market with a modest total change over the window reads as unremarkable.