10 — Oscillators

Rate of Change#

Debated1 min read
◆ The PatternSpeed rather than level: the percentage change over N bars, the first derivative of price

Rate of Change — a pure momentum oscillator measuring percentage price change.

ROC = ((Close − Close_N) / Close_N) × 100

Oscillates around zero. Positive = upward momentum; negative = downward.

Uses:
• ROC crossing above zero → bullish shift
• Divergences between ROC and price signal weakening trends
• Common period: 12 or 14
Worked example

Five-day ROC on day 13: the close of 99 against 108 five days earlier (day 8) gives 100 × (99 / 108 − 1) = −8.3%. On day 15 it is +0.97% (104 against 103 on day 10): the fall has stopped, not reversed.

The example data: 15 days, used in every indicator here
DayHighLowCloseVolume
11019910050,000
210310010262,000
310310010148,000
410510110470,000
510810410785,000
610810510660,000
711010610990,000
811010710872,000
910810410580,000
1010510210366,000
1110510210455,000
1210410110275,000
13102989995,000
141029910164,000
1510510110471,000
Where it misleads
  • It rests on a single price N bars back, so one unusual day enters the reading and later drops out of it.
  • Zero-line crossings come late in a reversal and often in a range.
  • Percent changes are not comparable across volatility: −8% means something different for a utility than for a crypto asset.
In code
df['roc5'] = 100 * (df['close'] / df['close'].shift(5) - 1)
Python, in your browser — edit the code and run it again

Assumes import numpy as np, import pandas as pd, and a DataFrame df with columns high, low, close and volume — the 15 days above.

Sources
  • N. Jegadeesh & S. Titman, “Returns to Buying Winners and Selling Losers”, Journal of Finance 48(1), 1993 — momentum measured as past returns
  • Technical Analysis of the Financial Markets, J. J. Murphy, New York Institute of Finance, 1999

Last reviewed October 2026 · How this site checks its content · Report a mistake

Pattern bridge: Rate of change is the discrete gradient of price — the slope at each point. In statistics, it’s the first difference used to make time series stationary.
Linked from 4
← Previous
Williams %R
Open in the full reader, with the topic sidebar