momentum
Price Momentum
Beginner
ROC

Rate of Change

Measures the percentage change in price over a defined period to directly quantify price momentum.

Overview

Rate of Change (ROC), also called Price ROC or Momentum, is one of the simplest and most direct momentum indicators. It calculates the percentage change in price between the current close and the close n periods ago. Positive ROC means price is higher now than n periods ago (bullish momentum); negative ROC means price is lower (bearish momentum). Despite its simplicity, ROC is the foundation of academic momentum research.

How it looks on a chart

Illustration only — synthetic data generated for visual reference.

Beginner

Rate of Change simply answers: how much has this asset changed in price over the last X days? If you set a 10-day ROC and today's reading is +5%, it means the price is 5% higher than it was 10 days ago. If it reads -3%, the price is 3% lower than 10 days ago. Positive ROC means the asset has momentum — it has been going up. Negative ROC means it has been going down. Traders watch for ROC crossing the zero line as a signal: crossing from negative to positive suggests a shift to upward momentum; crossing from positive to negative suggests downward momentum. ROC is also used to find divergences with price. If price is making new highs but ROC is making lower highs, the rate of advance is slowing — a potential warning sign. Because it is unbounded (unlike RSI which maxes at 100), ROC values can be very large during strong trends or crashes.

Intermediate

ROC = ((Close(t) − Close(t-n)) / Close(t-n)) × 100. The choice of period n is the primary parameter. Short periods (5–10 days) capture short-term momentum; medium periods (20–60 days) align with swing trading; long periods (100–200 days, or 6–12 months) align with the academic cross-sectional momentum factor. The Momentum indicator is a close relative: Momentum(t) = Close(t) − Close(t-n), expressed as an absolute difference rather than a percentage. ROC is generally preferred because percentage change is comparable across assets with different price levels. Multi-period ROC composites are common in quantitative equity strategies. Jegadeesh and Titman (1993) used 6-12 month past returns (essentially 6-12 month ROC) to document the momentum anomaly. A simple strategy: rank assets by 12-month ROC excluding the last month, buy the top decile, short the bottom decile, rebalance monthly. This has been one of the most documented equity factors.

Advanced

ROC is the direct operationalization of the academic momentum factor. Asness, Moskowitz, and Pedersen (2013) showed that time-series momentum (TSMOM) based on past 12-month returns is profitable across 58 liquid instruments spanning equities, currencies, commodities, and bonds. The strategy earns its return primarily during market stress periods, acting as a long volatility exposure. A key implementation detail in systematic strategies: the "skip period" (using 12-month ROC but excluding the last 1 month) addresses the short-term reversal effect documented by Jegadeesh (1990). Including the most recent month adds noise and reduces the strategy's Sharpe ratio. The skip period is standard in academic and practitioner implementations. ROC also underlies the MOMENTUM factor in Fama-French factor models and the Carhart (1997) four-factor model, making it one of the most academically validated signals in quantitative finance. In Gilito's engine, ROC across multiple timeframes (5, 10, 20, 60, 120, 240 days) is computed for every asset and used as both a standalone signal and a feature in machine learning models.

Formula

ROC = ((Close(t) − Close(t−n)) / Close(t−n)) × 100
  1. 1.Choose a lookback period n (e.g., 20 bars).
  2. 2.Find the closing price n periods ago: Close(t−n).
  3. 3.Calculate the absolute change: Close(t) − Close(t−n).
  4. 4.Divide by the prior close and multiply by 100: ROC = ((Close(t) − Close(t−n)) / Close(t−n)) × 100.
  5. 5.Plot as an oscillator around zero; a rising ROC above zero confirms upward momentum.

Parameters

ParameterDefaultRangeDescription
Period201250Number of bars to look back for the comparison close.
Signal Period9320Optional EMA period for a signal line smoothed over ROC.

Trading signals

bullish: ROC crosses above zero

Price is now higher than n periods ago — upward momentum established.

bearish: ROC crosses below zero

Price is now lower than n periods ago — downward momentum established.

bearish: ROC reaches extreme positive levels (well above historical average)

Overbought — unsustainable rate of advance, potential mean reversion.

bullish: ROC reaches extreme negative levels

Oversold — unsustainable rate of decline, potential mean reversion bounce.

Limitations

  • Unbounded oscillator — extreme values during crashes or squeezes dwarf normal readings, distorting scale.
  • Heavily influenced by a single period's closing price n bars ago (base effect).
  • No inherent smoothing — single-period ROC is quite noisy.
  • Momentum strategies are subject to momentum crashes (Barroso & Santa-Clara 2015) — large, rapid reversals during high volatility regimes.
How Gilito AI uses ROC

Gilito computes multi-period ROC (5, 10, 20, 60, 120, and 250-day) as core momentum features for every asset in its universe. These ROC values feed directly into its machine learning strategy selector and are also used to build cross-sectional relative momentum signals for portfolio ranking strategies.

Related indicators