ROC (Rate of Change)
ROC (Rate of Change)
What is ROC?
The Rate of Change (ROC) is a momentum oscillator that measures the percentage change in price between the current bar and a bar N periods ago. It oscillates around zero, with positive values indicating upward momentum and negative values indicating downward momentum.
How it works
ROC calculates the percentage difference between today's price and the price N periods ago:
ROC = ((Close - Close[N]) / Close[N]) * 100
The result is a percentage value that is unbounded in both directions.
Key features
- Above 0 — Price is higher than N bars ago (bullish momentum)
- Below 0 — Price is lower than N bars ago (bearish momentum)
- Extreme values — Indicate potential overbought/oversold conditions
- Zero-line crossovers — Signal momentum shifts
Trading signals
Buy signals
- ROC crosses above 0 (momentum turns positive)
- ROC rebounds from extreme negative values
- Bullish divergence: price makes lower low, ROC makes higher low
Sell signals
- ROC crosses below 0 (momentum turns negative)
- ROC reverses from extreme positive values
- Bearish divergence: price makes higher high, ROC makes lower high
Parameters
| Parameter | Default | Description | |-----------|---------|-------------| | Period | 12 | Number of bars to look back |
Example conditions
| Condition | Meaning |
|-----------|---------|
| ROC(12) > 0 | Positive momentum |
| ROC(12) < 0 | Negative momentum |
| ROC(12) cross_over 0 | Momentum shifted to bullish |
| ROC(12) > 5 | Strong upward momentum (>5% change) |
ROC vs Momentum Indicator
ROC and Momentum are closely related but differ in output:
| Feature | ROC | Momentum | |---------|-----|----------| | Formula | ((Close - Close[N]) / Close[N]) × 100 | Close - Close[N] | | Output | Percentage (%) | Absolute price difference | | Zero line | 0% | 0 | | Cross-asset comparison | Yes (normalized) | No (price-dependent) |
ROC is preferred when comparing momentum across different instruments (e.g., BTC vs ETH) because the percentage format normalizes the scale. Momentum is useful when you care about the absolute price change.
Common Period Choices
| Period | Use Case | |--------|----------| | 1 | Day-over-day change, very noisy | | 5 | Short-term momentum (1 trading week) | | 12 | Medium-term (popular default) | | 20-25 | Swing trading, monthly cycle | | 50-100 | Long-term trend strength |
Tips
- ROC is one of the simplest momentum indicators
- Short periods (5-10) are sensitive and good for short-term trading
- Longer periods (20-30) filter noise and suit swing trading
- Extreme ROC values often precede mean reversion
- Works well as a trend confirmation filter alongside other indicators

