Home / Learn Hub / Indicators / Rate of Change
Beginner

Rate of Change (ROC): The Simplest Momentum Calculation There Is

Rate of Change is a percentage. It compares today’s close with the close N bars ago and plots the difference. Every other momentum oscillator on your chart is a more complicated version of this one calculation, which is exactly why running several of them is not confirmation.

In one sentence:

It shows how much price has changed, as a percentage, over a fixed number of bars: nothing more complicated than that.

Rate of Change (ROC) at a glance

DifficultyBeginner: the simplest momentum calculation in common use
Calculation((current close − close N bars ago) / close N bars ago) × 100
ScaleA percentage, centred on zero. Unbounded, but directly comparable between instruments
MT5 availabilityDoes not ship with MT5. MetaTrader provides Momentum instead, which is the same calculation expressed around 100 rather than zero. For a true ROC line you need a custom indicator, or simply read Momentum and subtract 100
Common periods9, 12 or 14 for short-term work; 25 or more for a slower read
What it ignoresEverything between the two closes it compares, plus all highs, lows and volume
Effectively duplicatesMomentum exactly; overlaps RSI, MACD and every other close-based oscillator
What kills itRanges, where it oscillates around zero producing constant meaningless crosses

What it is and why it works

Take today’s closing price. Take the closing price from N bars ago. Subtract the second from the first, divide by the second, multiply by a hundred. That is the Rate of Change, and there is genuinely nothing else in it. A reading of +2 means price is 2% higher than it was N bars ago. A reading of −1.5 means it is 1.5% lower.

Two things follow immediately. First, ROC only ever looks at two prices: the current close and one close from the past. Everything that happened in between is invisible to it. A market that rose 5% and fell back, and a market that drifted steadily sideways, produce identical readings if they happen to sit in the same place N bars later. Second, because it is expressed as a percentage, ROC readings are comparable across instruments in a way that most indicators are not. A 2% move is a 2% move whether it is gold or a currency pair.

The relationship with Momentum deserves a plain statement, because MetaTrader makes this confusing. MT5’s Momentum indicator calculates the current close divided by the close N bars ago, multiplied by 100. So it oscillates around 100 rather than around zero. ROC is that same number minus 100. They are the same line with a different label on the axis. If you have Momentum on your chart and you add ROC, you have added nothing at all.

The redundancy goes further than that. RSI is built from the sizes of up and down closes, MACD is a difference between two averages of closes, and the stochastic is where the close sits within a recent range. All of them, ROC included, are transformations of the same closing-price series. They will move together most of the time because they are computed from the same data, and their agreement is arithmetic rather than evidence. If you want a second opinion, it has to come from something that is not a function of the closes: volume, structure, or a higher timeframe.

How to trade it, step by step

  1. Get a ROC line onto the chart. MT5 does not ship one, so either install a custom Rate of Change indicator from the MQL5 community, or add the built-in Momentum indicator (Insert → Indicators → Oscillators → Momentum) and read it as ROC by treating 100 as your zero line. The shape is identical; only the axis differs.
  2. Choose the period to match your holding time, not to look good. The period is the lookback in bars. A 12-period ROC on H1 answers “how much has price changed in the last twelve hours?” If you hold trades for a day, that is a sensible question. If you hold for a week, it is not. Set the period so the question the indicator answers is the question you actually care about.
  3. Calibrate what a big reading means for this instrument. ROC is unbounded, so there is no fixed overbought level. Scroll back several hundred bars and note the values the line typically reaches at swing highs and swing lows. That range is your reference. Anyone quoting a universal “ROC above 5 is overbought” is quoting a number that applies to one instrument on one timeframe.
  4. Read the zero line as a state, not a trigger. Above zero, price is higher than it was N bars ago. Below zero, it is lower. That is a useful, honest description of the current condition, and it is a reasonable filter on which direction of trade you are willing to take. It is a poor entry signal, because in a range it flips constantly.
  5. Use acceleration rather than level for the more informative read. A ROC that is positive and rising means price is gaining ground faster than it was. A ROC that is positive but falling means price is still above where it was, but the advance is decelerating. Deceleration while price still makes new highs is the observation that has genuine content.
  6. Check divergence only between comparable structural points. Compare the ROC value at the current swing high with its value at the previous swing high. If price is higher and ROC is lower, the latest push covered less ground in the same time. Read that as a change in the character of the move rather than as a reversal signal, see divergence for why the distinction matters.
  7. Beware the lookback artefact. ROC compares the current close to one specific bar from the past. When that old bar happens to be an outlier, the line moves for a reason that has nothing to do with today. If ROC jumps and price did not, look at what dropped out of the window N bars ago before concluding anything.
  8. Pair it with something that is not made of closes. If you want confirmation, take it from volume, from structure, or from the higher timeframe. Adding RSI to ROC and waiting for both to agree is waiting for two views of the same closes to agree.

Size every one of those entries with the position size calculator and check the trade is worth taking with the risk/reward calculator before you commit.

The conditions it needs

Comparing strength across different instruments

This is ROC’s genuine advantage over most oscillators. Because it is a percentage, a 3% reading on an index and a 3% reading on a currency pair mean the same thing. Ranking a watchlist of instruments by ROC over the same period is a legitimate and simple way to find where movement actually is.

Trending markets, as a directional filter

Used as a coarse state filter (only take longs while ROC is above zero, only shorts while it is below) it removes a large proportion of trades taken against the prevailing direction. It is not sophisticated, but it is honest and it is hard to over-fit.

Detecting deceleration inside a strong move

The reading that adds most. A trend where each successive push produces a smaller ROC peak is covering less ground per bar than it used to, which is a real change in behaviour that the price chart shows only subtly. It is a signal to manage a position, not to reverse it.

As the single momentum measure on an otherwise structural chart

Because it is the simplest of the family, it is the easiest to understand and the hardest to fool yourself with. A chart with structure, one volatility measure and ROC contains less duplication than one carrying RSI, MACD, stochastic and CCI all at once.

When it fails

Markets it is most informative on

For different levels of experience

If you are brand new

ROC is the easiest indicator on this whole site to understand, so use that. It answers one question: how much has the price changed, in percent, since a set number of bars ago? Above zero means higher than it was. Below zero means lower.

The most useful beginner habit is to use it as a permission slip rather than a signal. If the line is above zero, you only look for buying opportunities. If it is below, you only look for selling ones. That single rule stops the most common beginner mistake, which is trying to catch a falling market because it looks cheap.

What you should not do is buy when the line crosses above zero and sell when it crosses below. In a quiet market it will cross back and forth many times a day, and each cross costs you the spread. The line tells you which way things have been going. Where to actually enter has to come from the price chart itself.

If your results are inconsistent

The intermediate correction is about chart redundancy, and ROC is the clearest example of it on any platform. Look at what you have running. If your chart has RSI, MACD, stochastic and ROC, you have four transformations of the same closing prices. They agree because they must, and that agreement is what makes a mediocre setup feel like a strong one. The remedy is to delete three of them, and it will improve your results more than any setting change.

The second adjustment is to read acceleration rather than level. The most informative thing ROC ever says is not “price is 2% up” but “price is 2% up and that figure has been shrinking for the last ten bars while price kept making new highs”. That is a genuine change in behaviour and it tends to precede the end of a leg. It is a reason to tighten a stop, not to take the other side.

Finally, learn the lookback artefact. Set a period of 20, then watch what happens to the line when a big bar from twenty periods ago drops out of the window. The line moves noticeably with nothing happening in the present. Once you have seen it, you will stop reading every ROC jump as news.

If you are experienced

ROC is a first difference over a lag of N, normalised by the base price. Framed as a filter, it is a crude high-pass with a comb response; it has nulls at frequencies whose period divides N, which is why ROC on a market with a strong session periodicity can be systematically blind to exactly the cycle you care about. That is also the mechanism behind the drop-out artefact traders notice but rarely explain: the single-lag comparison gives the old bar the same weight as the new one, forever, until it exits the window.

The normalisation is its one real advantage. Percentage returns are approximately scale-free, so ROC is directly usable in cross-sectional work in a way that price-unit oscillators are not. Cross-sectional momentum ranking, sorting a universe by N-period return, is one of the most durable effects in the literature, and ROC is simply that measurement drawn on a chart. Read that way, it is not a weak indicator, it is a well-understood factor plotted for one instrument at a time, which is the least informative way to use it.

For time-series use, the raw level is not stationary across volatility regimes, so a threshold fitted in one regime fails in the next. Dividing ROC by realised volatility over the same window gives a comparable signal-to-noise measure and removes most of the parameter fragility. Also note the asymmetry: percentage change is bounded below at −100 and unbounded above, so the distribution is skewed and any symmetric threshold pair is quietly mis-specified. Log returns fix that if you are building rather than reading.

Risk management for this strategy

ROC provides no stop and no target, and its percentage scale is tempting to misuse as one. A reading of 3% does not mean a 3% stop is appropriate; the two numbers are unrelated. Take stops from structure and size from the position size calculator.

Where ROC genuinely helps risk is in setting expectations. If ROC readings on your instrument have recently been running at twice their usual size, the market is covering twice as much ground per bar and your normal stop distance is now half as far away in behavioural terms. The correct response is a wider stop and a proportionally smaller position, not the same position with more room.

The specific trap is fading an extreme reading. An unusually large ROC feels like it must revert, and it often does, but a market that is capable of a 4% move in twelve bars is capable of another one before it reverts, and a position sized for normal conditions will not survive that. Extremes are a reason to reduce size on both sides of the trade, not to take the other side confidently.

Where Market Structure Pro fits

ROC’s weakness is not the calculation, which is honest and transparent. It is that the same reading means opposite things in a trend and in a range, and the indicator itself cannot tell you which you are in. Above zero in a trend is a state worth trading with; above zero in a chop is a number about to flip.

Market Structure Pro is built to answer exactly that question. Its dedicated ranging and chop filter exists to say NO TRADE when the market is oscillating rather than trending, which is precisely the condition where ROC crosses become noise. Rather than a percentage you have to interpret, you get one verdict (TRADE, TRANSITION or NO TRADE) with a confidence percentage, an A/B/C grade and a plain-English explanation of what is behind it.

It also addresses the redundancy problem directly. Where a typical chart carries four transformations of the same closing prices that agree by construction, MSP fuses 27 genuinely different tools (structure, volatility, participation, session and spread among them) into a single weighted read. And because the state locks on the closed bar and never repaints, the momentum condition you acted on is still the one shown when you review the trade later.

TRADETRANSITIONNO TRADE

One verdict with a confidence score, an A/B/C grade and a plain-English reason. Non-repainting, on every MT5 instrument and timeframe.

Stop guessing whether the setup is valid

Market Structure Pro reads structure, trend, momentum, levels, volatility, volume and session in one pass and gives you a single answer with the reasoning attached. Free 7-day trial, no card required.

Start free trial

Frequently asked questions

What does the Rate of Change indicator measure?

It measures the percentage difference between the current closing price and the closing price a set number of bars ago. A reading of plus two means price is two per cent higher than it was over that lookback, and a reading of minus two means it is two per cent lower. Nothing that happened in between affects the value.

Is ROC the same as the Momentum indicator?

In MetaTrader they are the same calculation with a different scale. MT5's Momentum divides the current close by the close N bars ago and multiplies by 100, so it oscillates around 100, while ROC subtracts and expresses the result as a percentage around zero. Subtract 100 from Momentum and you have ROC.

Does the Rate of Change indicator come with MetaTrader 5?

No, MT5 does not ship a Price Rate of Change indicator. It provides Momentum instead, which is the same measurement centred on 100 rather than zero. If you specifically want a zero-centred ROC line you need a custom indicator, though reading Momentum with 100 as the zero line gives you identical information.

What is the best period for the ROC indicator?

The period should match how long you actually hold trades, because it defines the question the indicator answers. Common short-term choices are 9, 12 or 14, and 25 or more for a slower read. Shorter periods react faster and produce more noise, and there is no setting that avoids that trade-off.

What are the overbought and oversold levels for ROC?

There are none that apply universally. ROC is unbounded and its typical range depends on the instrument, the timeframe and the current volatility, so any fixed threshold is fitted to one situation. The workable method is to look back over several hundred bars and note the values the line has actually reached at past swing extremes.

Is ROC a leading or lagging indicator?

Lagging, despite being described as a momentum tool. Its value depends on a close from N bars ago, so it is by construction a summary of what has already happened. It can show deceleration before price turns, which is often mistaken for leading, but it cannot see ahead of the data it is built from.

Should I use ROC together with RSI?

There is little benefit, because both are transformations of the same series of closing prices and will broadly agree by construction. Waiting for the two to confirm each other feels like confluence but adds almost no independent evidence. A more useful second opinion comes from volume, structure or a higher timeframe.

Why does ROC sometimes jump when price barely moved?

Because it compares the current close with one specific bar from N periods ago. When that old bar was unusually high or low, it dropping out of the lookback shifts the reading even though nothing happened today. Checking what left the window explains most unexplained ROC moves.

Related reading