ROC Indicator: Formula, Settings and How to Read It
Rate of Change expresses the move from the close N bars ago to the current close as a percentage of that older close. The default lookback is 12 bars, and the line crosses zero when price returns exactly to its reference level.
Senzoukria · Indicators · Updated September 2026
ROC ships with the Senzoukria desktop app, in the Momentum group of the indicator catalogue. It is drawn in its own panel below the chart.
What ROC measures
Two prices enter the formula and nothing else: the current close and the close at the start of the lookback, which serves as the denominator. Because the result is a percentage, it is comparable across instruments and across price levels in a way the raw Momentum difference in the same group is not. A reference close of zero - which only occurs on padding in the history, never on a traded bar - leaves the ratio undefined, and no value is plotted rather than a division by zero being hidden behind a large number. No value appears before the window has filled.
The formula, as implemented
This is not a description of how the indicator is usually defined elsewhere — it is what the shipped code computes, documented next to the implementation:
ROC % : 100·(close − close[i−N])/close[i−N]. Référence nulle (close = 0, historique de remplissage) → null — pas de division par zéro déguisée. Défaut N=12 (convention classique du ROC quotidien).
How to read it
- The magnitude is a percentage of the reference close, so the same absolute move reads larger when the reference price was lower.
- Zero crossings mark the moment the current close passes the level from N bars ago, in either direction.
- The line moves when either end of the window moves: a flat current bar still changes the reading if a large reference bar drops out.
- Because there is no smoothing, the series is as noisy as the underlying closes, which is why the KST oscillator smooths four of these before combining them.
- Compare a reading against the same instrument's own history of the same period and bar interval; percentage ranges differ sharply between a stock index future and a volatile crypto pair.
Parameters and defaults
Period defaults to 12 and accepts 1 to 200. A period of 1 makes the indicator the bar-to-bar percentage change. Longer periods measure displacement over a wider stretch, react more slowly, and are affected more visibly by the reference bar rolling out of the window.
| Parameter | Type | Default | Range |
|---|---|---|---|
| Period | number | 12 | 1 – 200 |
What it does not show
Rate of Change knows only two points and nothing about the path between them: a smooth advance and a violent round trip ending at the same close produce the same number. The denominator is a single historical bar, so an unrepresentative reference - a spike, a gap, the first print after a break - distorts every reading until it leaves the window. Percentage form also inflates readings when the reference price is very low. It contains no volume, no trade size and no aggressor information, and across a futures contract roll the percentage becomes meaningless because the two closes belong to different instruments.
Using it in Senzoukria
Add it from the Indicators panel of any footprint chart or candle chart. It runs on futures data from Rithmic or Databento and on crypto pairs from Binance and Bybit, on the same engine — the calculation does not change with the venue, only the data feeding it does. Market data subscriptions are billed by the provider, separately from the app.
Related indicators
- RSI — Momentum
- MACD — Momentum
- Stochastic — Momentum
- Stoch RSI — Momentum
- CCI — Momentum
- Williams %R — Momentum
See the full indicator library, or start with the order flow guide if you are new to reading aggression, delta and absorption.
Frequently asked questions
- How do you calculate the Rate of Change indicator?
- Subtract the close from N bars ago from the current close, divide by that older close, and multiply by 100. The default lookback is 12 bars. The result is a percentage, so it is directly comparable between instruments trading at different price levels.
- What does a negative Rate of Change mean?
- The current close is below the close N bars earlier, by that percentage. It describes the net change across the window and nothing about how price got there - a steady decline and a rally followed by a larger fall can produce the same negative value.
- What is a good Rate of Change period for intraday charts?
- The default of 12 bars comes from a daily convention and carries over to any interval, since the calculation counts bars rather than time. On short intraday bars, a 12-bar lookback covers a very brief span, so the choice depends on how far back a comparison is meaningful for that instrument and session, not on a universally correct number.