Momentum and Rate of Change (ROC) explained

In trading, momentum is the speed at which a price changes: its simplest definition is the gap between today's close and the close n candles ago. This is neither the momentum of physics nor the everyday word, but a technical indicator and its twin expressed as a percentage, the ROC, short for Rate of Change. The catch is that three calculations circulate under those two names: a price difference, a ratio centred on 100 and a percentage centred on zero. This lesson gives the three formulas, works them by hand on ten candles, says what TradingView, MetaTrader 5 and StockCharts actually calculate, then separates the indicator from the 'momentum effect' of finance studies, which is a different object.

Momentum: definition in trading, and the two meanings of the word

The word first names an idea: a price that rises fast has momentum, a price that rises more and more slowly is losing it. The indicator turns that idea into a number by comparing the current close with an older close. MetaTrader 5's help page on Momentum defines it as an indicator that measures the change of price of a financial instrument over a given time span. StockCharts' ChartSchool presents the Rate of Change, 'also referred to as Momentum', as a pure momentum oscillator that measures the percent change in price from one period to the next and fluctuates above and below a zero line.

TradingView's help page on Momentum warns from the start that the word has two uses: traders and investors will often use it to mean one thing, it writes, while the indicator itself is a study in technical analysis. The first use is that of academic finance: the 'momentum effect', the tendency of the stocks that rose most over several months to keep doing better than the others. It is measured on stock portfolios and over months, not on a line under a chart. A section below is devoted to it, so that the indicator is not credited with results that are not its own.

Momentum belongs with the unbounded oscillators, like the MACD: it has no fixed ceiling or floor, unlike the stochastic oscillator, which is locked between 0 and 100. StockCharts spells it out for the ROC: no upward boundary, and a single downside limit, −100%, since a security cannot lose more than its value. Pages consulted in October 2026.

Fifty-six candles and their 12-period ROC
Fifty-six candles and their 12-period ROC Invented price series, real calculation: ROC = (close − close twelve candles earlier) ÷ close twelve candles earlier × 100. Top: fifty-six candles, eight with no direction, a fast rise, a pullback, a slower rise that closes higher, a fall, then twenty candles with no trend (shaded area). Bottom: the ROC as the thick line and the zero line as the solid line, on a scale from −13 to +23%. The first twelve candles have no value. MetaTrader 5's Momentum would draw the same line around 100. The ROC peaks at +21.11% on candle 19 (first circled dot), one candle before the highest close of the first rise. On candle 30 (second circled dot), price closes at the high of the series, 245.00, and the ROC is down to +2.08%: the dashed lines join the two candles, rising on price and falling on the indicator. The ROC is zero on candle 31, when price returns to its candle 19 close, and reaches its low, −11.52%, on candle 40. In the shaded area, it crosses the zero line twice, on candles 50 and 54.

Calculating Momentum and the Rate of Change: three formulas

One comparison. All three calculations start from the same two numbers: the close of the current candle, and the close n candles ago. Only the way of comparing them changes.

The difference. Momentum = close − close n candles ago. This is what TradingView's ta.mom function calculates, which the Pine Script language reference describes this way: this is simply a difference, source − source[length]. The result is in price units, euros, dollars or points, and the centre line is zero.

The ratio. Momentum = close ÷ close n candles ago × 100. This is the formula in MetaTrader 5's help, MOMENTUM = CLOSE(i) / CLOSE(i − n) × 100, and the one in the Momentum indicator code published by MetaQuotes, the developer of the platform. The result has no unit and the centre line is 100: at 100, price has not moved; at 105, it has gained 5%; at 95, it has lost 5%.

The percentage. ROC = (close − close n candles ago) ÷ close n candles ago × 100. StockCharts and TradingView's help page on the Rate of Change write the same formula. The result is a percentage and the centre line is zero.

What links the three. MetaTrader 5's ratio is exactly the ROC plus 100: same line, different scale. The difference, for its part, is the ROC multiplied by the old close and divided by 100: it has almost the same shape, but its size depends on the price level. A gap of 5 points does not mean the same thing on a 20-dollar stock and on an index at 20,000, whereas 5% can be compared from one market to another. It is the same caveat as for the MACD line, which is a price difference too.

The period. The number n is the only setting. The shorter it is, the jumpier the line; the longer it is, the slower. And the indicator only exists from candle n + 1 onwards: with n = 12, the first twelve candles of a history have no value.

Momentum and ROC worked by hand on ten candles

The prices are invented, the period is 12. These ten candles are candles 13 to 22 of the diagram above: each one is compared with the close of the candle twelve places earlier, that is candles 1 to 10, which close at 200, 201, 199, 200, 202, 201, 199, 200, 203 and 207. For each candle, three values in this order: the difference (TradingView's ta.mom function), the ratio (MetaTrader 5's Momentum) and the percentage (ROC). Values are rounded to two decimals.

Candle 1 (close 224.00, against 200.00 twelve candles earlier). Difference: 224.00 − 200.00 = +24.00. Ratio: 224.00 ÷ 200.00 × 100 = 112.00. ROC: 24.00 ÷ 200.00 × 100 = +12.00%. Candle 2 (229.00 against 201.00): +28.00, 113.93 and +13.93%. Candle 3 (233.00 against 199.00): +34.00, 117.09 and +17.09%.

Candle 4 (236.00 against 200.00): +36.00, 118.00 and +18.00%. Candle 5 (238.00 against 202.00): +36.00, 117.82 and +17.82%. Price has risen another 2 points, the difference has not moved and the ROC has slipped: the old close has risen 2 points as well. Candle 6 (240.00 against 201.00): +39.00, 119.40 and +19.40%.

Candle 7 (241.00 against 199.00): +42.00, 121.11 and +21.11%, the highest of the example. Price gained only one point and the difference gained three: the other two come from the old close, which went from 201 to 199. Candle 8 (242.00 against 200.00): +42.00, 121.00 and +21.00%. The close is the highest of the example, and the ROC is already falling.

Candle 9 (239.00 against 203.00): +36.00, 117.73 and +17.73%. Candle 10 (235.00 against 207.00): +28.00, 113.53 and +13.53%. Price lost 4 points and the difference lost 8: half of the indicator's drop comes from today's price, the other half from the close twelve candles ago, which rose by 4.

What the example shows. The three columns tell the same story on three scales: +42.00, 121.11 and +21.11% describe the same candle, and the ratio always equals the ROC plus 100. The indicator also stays well above its centre line on the last two candles while price is falling: it does not say that price is rising today, it says that price is higher than it was twelve candles ago.

Momentum and ROC, platform by platform

The same name does not cover the same calculation from one piece of software to another, and the default period changes too. Here is what each source writes.

TradingView offers two indicators. 'Rate of Change' follows the percentage formula, with a default length of 9 and the close as its source, according to its help page. For 'Momentum', the help page gives no formula: it is the Pine Script language reference that defines the ta.mom function as a simple difference. That function therefore returns a result in price units, around zero.

MetaTrader 5 files Momentum among its oscillators and calculates it as a ratio, around 100. The code published by MetaQuotes has a single setting, the period, 14 by default. A Momentum of 101.50 in MetaTrader 5 and a ROC of +1.50% elsewhere are the same number.

StockCharts keeps a single indicator, the Rate of Change, as a percentage, set to 12 periods by default, and states that the number of periods depends on the security and the trading timeframe. To place the underlying trend, its page uses much longer windows tied to the trading calendar: 21 days for a month, 63 for a quarter, 126 for a half year, 252 for a year.

What MetaQuotes' code writes differently. MetaQuotes also publishes a Price Rate of Change indicator for MetaTrader 5, set to 12 periods. Its page gives the usual formula, with the close n candles ago as the denominator. The ROC.mq5 file downloaded from that same page, however, divides by the price of the current candle. The gap is small when price has moved little and grows with the move: on candle 7 of the example, 42.00 ÷ 199.00 gives 21.11%, and 42.00 ÷ 241.00 gives 17.43%. Before comparing a value read elsewhere with the one on your screen, check what your software divides, and by what.

None of these sources names one period as better than another. MetaQuotes' page on the ROC writes that the 12-day and 25-day ROC are the most widely used; 9, 12 and 14 are defaults, not recommendations.

Reading momentum: zero line, extremes, divergences

The centre line. Above zero, or above 100 in MetaTrader 5, price is higher than it was n candles ago; below, it is lower. TradingView writes it for the ROC: it remains positive when prices are advancing, negative when they are declining. StockCharts uses it to place the underlying trend: it considers the long-term trend generally up when both the 252-day and the 126-day ROC are positive, which only means that price is higher than a year ago and than six months ago. The same page warns that centerline crossovers are prone to whipsaw, especially short-term.

Extremes. With no bounds, there is no universal overbought or oversold threshold. StockCharts sets its thresholds security by security, from past extremes: −10% in one of its examples, and it states that a more volatile stock may use −15%, a less volatile stock −5%. TradingView says that knowing where to place these thresholds can be difficult, and that it takes research on the instrument's history. StockCharts adds a caveat: a security can become oversold and remain oversold as the decline continues. MetaTrader 5's help goes further: for it, extremely high or low values of Momentum imply continuation of the current trend.

Divergences. A divergence appears when price makes a new high and the indicator does not, or a new low and the indicator does not. The sources do not give it the same credit. MetaTrader 5's help makes it a leading-indicator use: as the market approaches a peak, Momentum leaps and then falls while prices keep rising or move sideways; it adds that this is often the case, but that it is also a broad generalization. StockCharts is harsher: divergences fail to foreshadow reversals more often than not, it writes, because a sustained advance often starts with a big surge that the later, less sharp advances do not match. In the diagram, the highest close is that of candle 30, at 245.00, with a ROC of +2.08%, against +21.11% on candle 19 for a close of 241.00. Yet price rose 4 points between the two. StockCharts makes the point: a positive ROC that is lower than before still reflects a price increase, not a price decline.

The uses described by the publishers. MetaTrader 5's help describes a trend-following use, close to that of the MACD, based on the troughs and peaks of the indicator, and states that a position should be opened or closed only after prices confirm the signal. StockCharts concludes that the ROC should be used in conjunction with other aspects of technical analysis, TradingView that it is best viewed as one piece of the puzzle. None of these readings is an order to buy or sell. They are conventions, to be tested on your market, your timeframe and your period, with the method in the article on how to backtest a trading strategy. Tradoshi does not record momentum at the time of your trades: the indicator is read on your chart. The journal is for the next step: you tag every trade taken on this reading, for example 'ROC positive', and the dashboard filters by tag to show what it produced for you.

The momentum effect in studies is not the indicator

When a finance article speaks of 'momentum', it is almost always speaking of something other than the line described here. The original study is Jegadeesh and Titman, Returns to Buying Winners and Selling Losers (Journal of Finance, 1993). It covers stocks listed on the NYSE and the AMEX, from 1965 to 1989. Its method: rank stocks by their return over the past 3 to 12 months, buy those that did best, sell those that did worst, and hold those portfolios for 3 to 12 months. It measures significant positive returns over those holding periods, and notes that part of the first-year gain dissipates in the following two years.

Three differences from the indicator. The study compares stocks with each other, whereas the indicator compares a price with its own past. It reasons in months, on stock portfolios, whereas a 14-candle momentum on an intraday chart covers a few hours of a single instrument. And it measures an average over twenty-five years, not a signal. It therefore says nothing about a 12-period ROC on a five-minute chart, one way or the other.

That effect has its accidents too. Daniel and Moskowitz, in Momentum Crashes (Journal of Financial Economics, 2016), write that momentum strategies, despite strong positive average returns across numerous asset classes, can experience infrequent and persistent strings of negative returns. These crashes occur in panic states, following market declines and when market volatility is high, and are contemporaneous with market rebounds.

The limits of Momentum and the Rate of Change

It depends on the old close as much as on the new one. The indicator compares two prices, and one of them is twelve candles old. When that old close comes out of a trough or a peak, the line moves with today's price having little to do with it. In the diagram, between candles 51 and 52, price falls from 223.00 to 220.50 and the ROC rises from +2.53% to +2.56%. And its low, −11.52%, comes on candle 40, in the area with no trend: price has lost only 3 points there since candle 36, but the twelve-candle window has just slid over the top.

With no trend, it crosses its centre line for nothing. StockCharts writes that centerline crossovers are prone to whipsaw. In the shaded area of the diagram, twenty candles close between 215.00 and 223.00: the ROC moves back above zero on candle 50, at a close of 223.00, and back below on candle 54, at a close of 216.00. Someone who had bought and then sold on those two crossovers, at the closing price and with no costs, would have lost 7 points in a zone only 8 points wide.

It has no fixed threshold. A ROC of +10% is an extreme on a quiet security and an ordinary value on a very volatile one. Thresholds are set instrument by instrument, from its history, and nothing stops the indicator from going beyond them.

Its value depends on the platform. Difference, ratio or percentage, a default period of 9, 12 or 14, the denominator in the code: two screens can show two different numbers for the same candle with neither being wrong. The difference version cannot be compared from one instrument to another either.

No study cited here measures it. Work on the momentum effect covers portfolios held for months. Tests of technical rules cover other rules: Sullivan, Timmermann and White, in Data-Snooping, Technical Trading Rule Performance, and the Bootstrap (Journal of Finance, 1999), examine 7,846 rules from five families, filters, moving averages, support and resistance, channel breakouts and volume, on the Dow Jones index: the best one survives their correction from 1897 to 1986, and is not repeated from 1987 to 1996. Momentum and the ROC are not among them, and that result says nothing about them. It only says that a technical rule is judged on data it has not already seen. Momentum also asks the same question as the stochastic oscillator and the RSI: the page on technical analysis explains why two tools from the same family do not make two confirmations. Knowing whether a trend is in place is the question of the DMI and the ADX, and the question of the exit level is covered in the lesson on the Parabolic SAR.

Frequently asked questions

What is momentum in trading?

In trading, momentum is the speed at which a price changes. The indicator of the same name compares the current close with the close n candles ago: as a difference in TradingView's ta.mom function, as a ratio centred on 100 in MetaTrader 5. Expressed as a percentage, it is called the ROC, short for Rate of Change.

How is the Rate of Change (ROC) calculated?

ROC = (close − close n candles ago) ÷ close n candles ago × 100. With a close at 224 and a close at 200 twelve candles earlier, the 12-period ROC is +12%. MetaTrader 5's Momentum would show 112, and the price difference would be +24.

What is the difference between Momentum and the ROC?

The ROC is a percentage around zero. The word momentum names, depending on the software, a price difference around zero or a ratio around 100. The ratio equals the ROC plus 100; the difference depends on the price level and cannot be compared from one instrument to another.

Which period should you use for Momentum or the ROC?

Defaults differ: 9 for TradingView's Rate of Change, 12 for StockCharts', 14 for MetaTrader 5's Momentum. StockCharts writes that the number of periods depends on the security and the trading timeframe. None of the sources read names one period as better than another.

Does the momentum effect in studies prove that the indicator works?

No. The Jegadeesh and Titman study (1993) covers portfolios of NYSE and AMEX stocks, from 1965 to 1989, formed and held over 3 to 12 months. It compares stocks with each other, over months. It does not measure a 12 or 14-candle indicator on a single chart.

Key takeaways

  • In trading, momentum measures the speed at which a price changes: it compares the current close with the close n candles ago.
  • Three calculations under two names: a difference (TradingView's ta.mom), a ratio centred on 100 (MetaTrader 5's Momentum), a percentage (ROC).
  • Ratio = ROC + 100. The difference depends on the price level and cannot be compared from one instrument to another.
  • No bounds, so no universal overbought threshold. Zero line crossovers multiply in a market with no trend, and a divergence does not, on its own, announce a reversal.
  • The momentum effect in studies (stock portfolios held for 3 to 12 months) is a different object: it does not validate a 14-candle indicator.

Going further

These blog articles dig into this lesson's ideas, one subject per article.

Join the Oshi Academy

The lessons teach you the theory, the community makes you practise. We swap trades, screenshots and silly questions there, and nobody sells signals.

Join the Oshi Academy