📊 TECHNICAL
Percentage Price Oscillator
A percentage-based version of MACD that measures the gap between two EMAs as a ratio, making momentum readings comparable across stocks of any price.
410KUses
28700Likes
0Comments
Live Demo — Percentage Price Oscillator applied to NIFTY 50 (illustrative)
PriceEMA(9)EMA(21)SMA(20)
What is the Percentage Price Oscillator?
The Percentage Price Oscillator (PPO) is a momentum indicator derived from the same lineage as MACD, which Gerald Appel introduced in the late 1970s. Instead of expressing the gap between a fast and slow EMA in absolute price units, PPO expresses it as a percentage of the slow EMA. This normalization lets traders compare momentum strength across different stocks, indices, or the same stock at very different price levels over time.
Formula
EMA_fast = EMA(Close, fastLength) // default 12
EMA_slow = EMA(Close, slowLength) // default 26
PPO = 100 * (EMA_fast - EMA_slow) / EMA_slow
Signal Line = EMA(PPO, signalLength) // default 9
Histogram = PPO - Signal LineParameters
| Parameter | Default | Description |
|---|---|---|
| Fast Length | 12 | Period of the faster EMA |
| Slow Length | 26 | Period of the slower EMA |
| Signal Length | 9 | EMA period applied to the PPO line to generate the signal line |
| Source | Close | Price field used for the EMAs |
Signal Interpretation
- PPO crossing above its signal line is a bullish momentum shift; crossing below is bearish.
- PPO above zero means the fast EMA is above the slow EMA (uptrend momentum); below zero signals downtrend momentum.
- A widening histogram shows accelerating momentum; a shrinking histogram warns of a stalling move.
- Divergence between price making new highs/lows and PPO failing to confirm often precedes a reversal.
- Because PPO is percentage-based, readings can be compared directly across different securities, unlike raw MACD values.
Tips & Best Practices
- Use PPO instead of MACD when screening or comparing momentum across a watchlist of stocks with different price ranges.
- Combine with a longer-term trend filter (e.g., 200-period MA) to avoid trading signal-line crossovers against the dominant trend.
- Zero-line crossovers are more reliable trend-change signals than signal-line crossovers, which fire more often but with more noise.
