What Is the Percentage Price Oscillator?
Percentage price oscillator is the MACD calculation expressed as a percentage of the slower moving average rather than as an absolute price difference. That single change makes readings comparable between instruments and across time, which raw MACD values are not.
Covered on this page: TradingView.
The PPO is MACD with one change: the output is a percentage rather than a price difference. That change is small, entirely sound, and fixes a real problem MACD has.
How it works
MACD subtracts a slow moving average from a fast one. The result is a number of price units — dollars, points, whatever the instrument trades in.
The PPO divides that difference by the slow average and multiplies by 100, so the output is the gap expressed as a percentage of the price level.
Everything else is identical. Same periods, same signal line, same histogram, same crossovers — the arithmetic differs only in that final division.
Why the units matter
A MACD reading of 2 is meaningless alone. On a stock trading at 20 it is a 10% divergence between the averages; on an index at 5,000 it is 0.04%.
The same problem appears across time in one instrument. A stock that has gone from 10 to 200 produces MACD readings twenty times larger for identical percentage behavior.
The PPO removes both problems at once. A reading of 1.5% is 1.5% whatever the instrument and whatever the price level, which makes historical comparison and cross-market screening actually possible.
A worked example
Take an instrument priced near 100 whose bars usually span about 0.5. An ordinary bar is then roughly half a percent of price.
A MACD reading of 0.5 on that instrument is about half a percent of price — comparable to the span of one ordinary bar.
Move the same behavior to an instrument priced at 1,000 and the MACD reading becomes 5, while the PPO stays at 0.5%.
Only one of those two numbers can be compared to anything. That is the whole argument, and it does not need any claim about predictive power to stand up.
What it does not fix
It is still a lagging indicator. Both moving averages are built from past bars, so the crossover arrives after the move that produced it, exactly as MACD’s does.
It still has three chosen periods. Fast, slow and signal — each a preference, none derived from the market.
And it still produces frequent signals in a range. Inside a range, price changes direction every few bars, so any crossover system fires constantly in the conditions that dominate.
So the PPO is not a better indicator, it is a better-expressed one. Anybody claiming it outperforms MACD is claiming something the arithmetic does not support — the signals cross at the same bars.
The original data
The S&P 500 from 1950 to 2026 shows the mix a crossover tool works in. The index closed up on 53.1% of trading days, close to even from one day to the next, yet 59% of its ten-day windows finished higher. Short-horizon direction is near noise while the longer lean is real.
That near-even daily split is the limit on any crossover tool. Two moving averages change order frequently in a market whose day-to-day direction is so close to a toss-up, and each change is a potential trade.
And every cross pays the round trip. A crossover system acting on every cross in a ranging market pays the spread and commission repeatedly for moves that do not persist, which is the cost that decides whether the approach is viable rather than anything about the indicator’s construction.
The three periods and what they change
The fast period sets how quickly the oscillator responds. A shorter fast average tracks recent bars more closely, which moves the line sooner and moves it more often.
The slow period sets the baseline it is measured against. Lengthening it widens the gap the oscillator reports and makes readings drift further from zero during a sustained move.
The signal period smooths the oscillator itself. It is an average of the PPO line, and the crossover people trade is between those two - so the signal length decides how often a trade exists at all.
None of the three is derived from the market. They are the same 12, 26 and 9 that MACD shipped with decades ago, chosen for a different era of data and carried forward unexamined, which is worth knowing before treating them as a standard rather than a habit.
Where the percentage form genuinely helps
Screening across a universe. You can rank hundreds of stocks by PPO and the ranking means something; ranking them by raw MACD ranks them mostly by price level.
Comparing an instrument to its own history. A PPO extreme five years ago is comparable to one today, even if price has tripled in between.
And comparing across asset classes. An index, a currency pair and a single stock produce PPO readings on one scale, which raw MACD cannot do.
If you never do any of those things, the two are interchangeable. For somebody watching one instrument on one timeframe, the PPO offers nothing MACD does not — which is worth saying, because most indicator comparisons pretend a difference exists where none does.
How this connects
MACD divided by the slow moving average. Same crossovers, same bars, expressed as a percentage instead of price units.
That fixes a real problem. A MACD reading of 2 means something different on a 20-dollar stock and a 5,000-point index; a PPO reading of 1.5% does not.
It is still two moving averages, so every lag criticism applies unchanged - the rescaling changes the vertical axis, not when the lines meet.
The detrended price oscillator solves a different problem with a similar flavor: removing the trend so the remainder is comparable.
And the benefit only exists if you compare. Watching one instrument on one timeframe, the PPO and MACD are interchangeable.
When it fails
The characteristic failure is expecting the rescaling to improve the signal. The PPO is adopted because it sounds like a refinement of MACD, and the crossovers are then traded with more confidence than the MACD’s would have been.
But the two cross on the same bars. Dividing by the slow average changes the vertical scale, not when the lines meet. Every whipsaw MACD would have produced, the PPO produces identically, and expecting otherwise is expecting arithmetic to do something it cannot.
A second failure is comparing PPO levels between very different volatilities. The units are comparable; what counts as an extreme still is not.
A third is treating fixed thresholds as universal. A 2% reading is unremarkable in one market and rare in another.
A fourth is optimizing the three periods on past data, which fits rather than tests.
And a fifth is assuming it leads price. It is computed from two averages of past bars and cannot contain information they did not.
Related
MACD covers the indicator this rescales. Detrended price oscillator covers another attempt to make an oscillator comparable. And moving average covers the component both are built from.
This is the rare indicator whose improvement is real, small and completely uncontroversial. MACD’s output is in price units, so a reading of 2 means something different on a 30-dollar stock than on a 3,000-dollar index. The PPO fixes that by dividing. There is nothing else to it.
— Michael Whitman
This page is educational, not financial advice. Test every idea on your own charts before risking money. Some links on this page earn a commission if you buy through them. It costs you nothing and it does not decide what appears here or in what order — how these pages are made is set out in our methodology.