A momentum oscillator that measures the difference between two EMAs as a percentage of the slow EMA. Mechanically identical to MACD but normalized so values are comparable across instruments at different price levels.
PPO(12, 26, 9) on MES 5m — line, signal, and histogram
What it measures
- Momentum direction. PPO > 0 means the fast EMA is above the slow EMA — bullish momentum. PPO < 0 means the inverse.
- Momentum strength. Larger absolute PPO values mean greater EMA separation — stronger directional momentum.
- Cross-instrument comparability. Unlike MACD, PPO is normalized — a PPO reading of 1.5 on MES is comparable to a PPO reading of 1.5 on AAPL, because both are percentages.
Formula
How AlgoLift computes it
PPO Line: ((FastEMA − SlowEMA) / SlowEMA) × 100
Signal Line: EMA(PPOLine, signal_period)
Histogram: PPOLine − SignalLine
Identical structure to MACD, except MACD's main line is the raw difference between the two EMAs and PPO's main line is that same difference as a percentage of the slow EMA. The percentage normalization is the only meaningful change.
Default settings (12, 26, 9) match MACD's defaults — chosen by Gerald Appel in the 1970s and adopted unchanged.
Inputs in AlgoLift
| Setting | Default | Range | Notes |
|---|---|---|---|
| Fast Period | 12 | 2–200 | Lookback for the fast EMA. |
| Slow Period | 26 | 2–500 | Lookback for the slow EMA. The denominator. |
| Signal Period | 9 | 1–200 | EMA period for the signal line. |
Recommended settings
- (12, 26, 9) — default: Standard. Works for most timeframes.
- (5, 13, 5): Faster — useful on lower-timeframe charts.
- (19, 39, 9): Slower — for swing setups on daily bars.
Outputs in AlgoLift
| Handle | Type | Plotted | Notes |
|---|---|---|---|
| PPO Line | Numeric | Always | The main line. Zero-line crosses indicate EMA crossovers. |
| Signal Line | Numeric | Always | EMA of the PPO line. Crossovers between PPO and Signal are the primary trade triggers. |
| Histogram | Numeric | Always | PPO − Signal. Positive and rising = bullish momentum accelerating. |
| PPO Slope | Numeric | On select | Rate of change of the PPO line. |
| Signal Slope | Numeric | On select | Rate of change of the Signal line. |
| Histogram Slope | Numeric | On select | Rate of change of the Histogram — earliest signal of momentum exhaustion. |
PPO node — default state with all six outputs
Reading the components together
PPO produces three lines that work together:
- PPO Line tells you the direction of momentum (above/below zero) and its magnitude.
- Signal Line is a smoothed lagging version of PPO — used as the reference for crossover signals.
- Histogram is PPO − Signal — tells you whether momentum is accelerating or decelerating before the lines themselves cross.
The classic workflow: histogram changes sign first (early warning), then PPO crosses signal (entry), then PPO crosses zero (trend confirmation). Strategies can use any of these three events as their trigger depending on aggressiveness vs. accuracy preference.
PPO is MACD with cross-instrument comparability. Every MACD strategy works on PPO with no changes — but PPO's normalized scale makes it usable in Portfolio Builder comparisons in a way MACD isn't.
Best in / worst in
Best in trending markets, on instruments where you need consistent thresholds across timeframes or price levels, and in portfolio-level analysis where you're comparing signals across multiple instruments.
Worst in range-bound markets — PPO whipsaws across the zero line continuously when there's no real trend. And on very-short timeframes (sub-1m bars) where the EMA periods translate to noise rather than signal.
Three setups
1. Signal-line crossover
The canonical PPO entry: PPO crosses its Signal Line.
- Long: PPO crosses above Signal Line AND PPO > 0 (already in bullish regime).
- Short: PPO crosses below Signal Line AND PPO < 0.
The PPO > 0 requirement filters out countertrend crossovers, which are the noisiest signals.
PPO signal-line crossover with zero-line filter
2. Histogram-based early entry
Trigger before the PPO/Signal crossover by reading the histogram.
- Long: Histogram was negative for 3+ bars AND just crossed to positive AND price > EMA(50).
- Short: Symmetric.
Catches signals ~1-2 bars earlier than the line-crossover setup, with proportionally more false signals.
3. Zero-line momentum entries
Use the PPO zero-line cross as a slower, higher-conviction trend-change signal.
- Long: PPO crosses above 0 (fast EMA now above slow EMA) AND price > SMA(200).
- Short: Symmetric with PPO crossing below 0.
Fewer signals than signal-line crossovers, but each one represents a real EMA regime shift.
Advanced patterns in AlgoLift
PPO histogram divergence. Wire BarsAgo Modifier on the Histogram output to compare current histogram against histogram 10 bars ago. When price makes a new high but histogram makes a lower high, momentum is fading. Use as a contrarian early-exit or counter-trend entry signal.
Cross-instrument PPO portfolio signal. PPO's normalized scale means you can compare PPO readings across instruments meaningfully. Build a strategy that goes long the top-3-PPO instrument and short the bottom-3-PPO instrument in a basket — a momentum-rotation strategy that uses PPO as the ranking metric. The Portfolio Builder is the natural home for this.
PPO + ATR trailing exit. Use PPO/Signal crossover for entry, then exit when EITHER (a) the PPO histogram has been negative for 3 bars in a long position, or (b) ATR-based stop hits. Two independent exits — momentum-based and risk-based — that cover different failure modes.
Common mistakes
- Treating PPO and MACD as different indicators. They produce identical signals on a single instrument. PPO's only advantage is comparability across instruments.
- Using default periods on very-low-timeframe charts. (12, 26, 9) on 1m bars is essentially a 26-minute lookback — usually too slow for 1m strategy logic.
- Ignoring the histogram. Histogram-based entries lead line-based entries by 1–2 bars. Strategies that only read PPO and Signal are throwing away the earliest signal.
- Over-optimizing the three periods. Three parameters interact — fitting all three independently is a fast track to overfitting.