Momentum & oscillators

Rate of Change · ROC

The percentage change in price over a fixed lookback — pure, unsmoothed momentum.

Works in most conditionsEngine-computed on a fixed sample series
14512096Above zero = bullish momentumBelow zero = bearish momentum
ROC 3.52How to read ROC on the chart — the callouts mark what to look for.

The formula

Divide today's close by the close N bars ago, subtract one, and multiply by 100. It oscillates around zero: positive means price is higher than N bars back, negative means lower, and the further from zero the faster the move.

ROC = (Close ÷ Close N bars ago − 1) × 100
Worked example
InputValue
Close now110.00
Close 10 bars ago100.00
Close ÷ Close(n)1.10

ROC = (110 ÷ 100 − 1) × 100 = +10% — price is 10% higher than it was 10 bars ago.

What it is

The Rate of Change is the simplest possible momentum indicator: it measures the percentage change in price over a fixed number of bars, capturing pure, unsmoothed speed of movement. It answers the direct question of how fast and in which direction price is moving compared with where it was a set time ago. Plotted as a line oscillating around zero, it reads positive when price is higher than it was N bars back and negative when lower, with the distance from zero showing how fast the move is. Because it applies no smoothing, it reflects raw momentum without lag from averaging, at the cost of being noisy. For a beginner it is best understood as a speedometer for price that simply asks how much higher or lower we are than N bars ago, in percent.

How it is calculated

ROC takes today's close, divides it by the close N bars ago, subtracts one, and multiplies by 100 to express the result as a percentage, so a close of 110 today against a close of 100 ten bars ago gives a ROC of plus 10 percent. It oscillates around a zero line, where positive means price is above its level N bars ago and negative means below, and the magnitude reflects the pace of the move. The only parameter is the lookback N, which sets how far back the comparison reaches — a short N measures recent, fast momentum and a long N measures a broader sweep. Because nothing is averaged or smoothed, each reading depends on exactly two prices, today's close and the close N bars ago. Its close cousin Momentum uses the raw price difference instead of the percentage, making ROC the scale-free, comparable version.

Reading it, step by step

Zero-line crosses are the basic events — ROC rising through zero means momentum has turned positive, price is now above where it was N bars ago, and falling through zero means it has turned negative. A rising ROC signals an accelerating advance, while a ROC that is still positive but falling means the advance is decelerating even though price is higher than before. Extremes relative to the indicator's own recent history flag stretched moves, though because ROC is unbounded there is no fixed overbought or oversold level. Divergence is one of its most valuable reads: if price makes a higher high but ROC makes a lower high, the move is losing momentum and may be near exhaustion. The shape — rising, falling, diverging — often matters more than the precise value.

Reading the signals on the chart

14512096
ROC 3.52The ▲/▼ marks flag the most recent zero-line crossings, where momentum flips from negative to positive and back.

Best timeframes

  • Scalping1m – 5mnoisy
  • Day trading5m – 15m
  • Swing1h – Dailycommon
  • PositionDaily – Weeklyrotation

ROC is unsmoothed, so pair it with a short average on fast timeframes and judge extremes against recent history.

ROC vs Momentum vs RSI

ROCMomentumRSI
UnitsPercentPrice0–100
Comparable across assetsYesNoYes
BoundedNoNoYes
Zero lineYesYesNo (50 mid)

Common price-action setups

How the signal typically plays out on the chart.

Zero-line cross up

ROC crosses above zero — price is now higher than N bars ago and momentum has turned positive; buy with the trend and a stop under the swing low.

Buy the cross
Momentum turns up
Zero-line cross down

ROC crosses below zero — momentum has turned negative; exit longs or short with a stop above the swing high.

Sell the cross
Momentum turns down
Bearish divergence

Price makes a higher high but ROC makes a lower high — the advance is losing steam; tighten stops or exit as ROC rolls over.

Exit on diverge
Rally loses steam

Best timeframes and settings

ROC is flexible across timeframes, with common lookbacks of 9, 12, 14, or 25 for shorter momentum reads and longer settings like 100 or 250 for measuring broad, cyclical momentum on daily charts. A short lookback makes ROC fast and reactive but noisy, generating frequent zero-line crosses, while a long lookback smooths the read and highlights major momentum shifts but responds slowly. This responsiveness-versus-noise trade-off is the main dial, and the right setting depends on whether you are scalping, swing trading, or gauging long-term momentum for asset rotation. Because it is a percentage, the same ROC setting is directly comparable across instruments, which is central to its use in ranking. Many traders apply a short moving average to the ROC line to tame its noise when they want cleaner turns.

When and where to use it

ROC is regime-flexible and works across equities, futures, forex, and crypto, useful both for confirming trend strength and for spotting momentum divergences at potential turns. It is especially valuable in momentum-rotation and relative-strength strategies, where its percentage scale lets you rank a whole universe of assets by their recent return and hold the strongest. In trending markets it confirms the pace of the move, while near tops and bottoms its divergences give early warning. Its main weakness is noise in choppy markets, where unsmoothed zero-line crosses whipsaw, so it is often smoothed or paired with a filter there. Reach for ROC when you want a clean, comparable read on momentum speed, whether to confirm a trend, spot divergence, or rank assets.

Strategies that use it

A momentum-rotation strategy ranks a basket of assets by their ROC over a chosen lookback, such as 3, 6, or 12 months, and holds the strongest performers, rebalancing periodically — a well-documented approach that harnesses ROC's comparability. A divergence strategy watches for price to make a new high or low that ROC fails to confirm and uses that divergence as an early warning to tighten stops or fade the move with confirmation. A zero-line strategy takes ROC crossing above zero as a momentum-long trigger and below zero as a short, ideally filtered by the larger trend and often smoothed to cut whipsaws. Across these, ROC is used for its comparability and its divergence read, with a trend filter or smoothing added to manage its noise in choppy conditions.

Combining it with other indicators

The raw Momentum indicator is ROC's un-normalized twin and behaves similarly, so ROC is preferred when comparing across instruments. The MACD and moving averages add trend context that tells you whether to trust a ROC zero-line cross or expect it to fail in a range. The Commodity Channel Index and RSI provide bounded momentum reads that complement ROC's unbounded one and help judge whether a move is stretched. In rotation strategies, ROC pairs with a trend or volatility filter to avoid holding assets whose high ROC comes with excessive risk. The recurring logic is to use ROC for its clean momentum speed and comparability while trend and bounded-oscillator tools supply context and stretch readings.

Where it fails

Being unsmoothed, ROC is inherently noisy, and its zero-line crosses whipsaw in choppy markets, so trading every cross without a filter leads to repeated small losses. Its overbought and oversold levels are not fixed, so applying a universal threshold across instruments or regimes is a mistake, and extremes must be judged relative to the indicator's own recent range. A subtler pitfall is the drop-off effect: a single outlier bar N periods ago can distort today's reading purely because that old value is leaving the lookback window, creating a move in ROC that has nothing to do with current price action. The remedies are to smooth the line or add a trend filter for cleaner signals, to read extremes in context rather than against fixed levels, and to be aware of the drop-off distortion around large past bars. Treating ROC as a standalone system rather than a momentum gauge is the broader error.

A worked example

Suppose a stock closed at 100 twelve bars ago and at 112 today, giving a 12-bar ROC of plus 12 percent, a strong, positive momentum read confirming an accelerating advance. Over the next several sessions price grinds up to 116, a new high, but because the pace has slowed, the 12-bar ROC slips to plus 8 percent, making a lower high even as price makes a higher high; this bearish divergence warns a swing trader that momentum is fading beneath the rising price. The trader tightens the trailing stop and declines to add, and when price rolls over to 110 the divergence proves its worth. Separately, a rotation trader comparing this stock's plus 12 percent ROC against a peer's plus 4 percent would rank this one stronger and favor it, the percentage scale making the comparison valid. A watchful reader also notes that part of a sudden ROC jump could come from a large bar dropping out of the 12-bar window, and checks the underlying price before acting.

Common mistakes

  • Treating a fixed number as overbought — ROC is unbounded and its extremes are relative.
  • Trading its noisy, unsmoothed crosses without a filter on fast timeframes.
  • Forgetting a single outlier bar N periods ago distorts today's reading as it drops out of the window.
  • Comparing raw ROC levels across assets by price rather than by shape and divergence.
  • Chasing an extreme reading instead of watching for divergence against price.