Rate of Change (ROC)

Parameters: period = 14 (5–50)

Overview

The Rate of Change (ROC) indicator represents momentum in its most fundamental form, measuring the rise (price change) over the run (time). While often calculated as a percentage using the formula [(Current Price - Price n Periods Ago) / Price n Periods Ago], ROC can also be expressed as the simple difference between prices. This flexibility makes ROC adaptable to various trading styles and analytical needs. As one of the earliest momentum oscillators from the 1940s, ROC has proven its enduring value by providing clear signals about the speed and direction of price movements.

The genius of ROC lies in its ability to reveal acceleration and deceleration in price trends before they become apparent in the price chart itself. When ROC expands into positive territory, it signals accelerating upward momentum; when it dives deeper negative, it indicates accelerating declines. This leading characteristic makes ROC particularly valuable for identifying potential trend reversals through divergences. The choice of period 'n' is crucial - shorter periods (7-10) create a sensitive oscillator for short-term trading, while longer periods (200-300) smooth out noise for long-term investment analysis.

Interpretation & Trading Signals

Momentum Analysis:

  • Positive ROC: Prices rising, bullish momentum present
  • Negative ROC: Prices falling, bearish momentum dominant
  • Expanding Positive: Upward acceleration, trend strengthening
  • Deepening Negative: Downward acceleration, selling intensifying

Key Trading Signals:

  • Zero Line Cross: Buy above zero, sell below zero
  • Divergences: ROC/price divergences often precede reversals
  • Extreme Readings: Overbought/oversold conditions at historical extremes
  • Momentum Peaks: ROC turning down from highs warns of slowing

Period Optimization:

  • Short-term (7-10): Day trading, high sensitivity, more false signals
  • Medium-term (14-25): Swing trading, balanced approach
  • Long-term (250-300): Investment analysis, major trend changes
  • Multiple Timeframes: Use different periods for confirmation

Example Usage

Code examples will be available once the Rust implementation is complete.

Performance Analysis

Related Indicators