Momentum & oscillatorsPretty Good Oscillator · PGO
Mark Johnson's gauge of how far price has run from its average, measured in units of Average True Range.
Works best in trending marketsEngine-computed on a fixed sample series
What it is
The Pretty Good Oscillator, created by Mark Johnson, measures how far the current price has stretched away from its recent average, expressed in units of the market's normal daily range. It answers a momentum-trader's question: is this move large enough, relative to how much this market usually travels, to be worth joining? Rather than fading extremes the way most oscillators do, Johnson designed the PGO to spotlight strong, trending thrusts — a push far from the mean, measured in volatility units, that signals a trend worth riding. It is conceptually close to the Commodity Channel Index but scaled by the Average True Range instead of mean deviation. For a beginner it is best understood as a volatility-normalized distance meter that lights up when price has broken meaningfully away from its average.
How it is calculated
PGO takes the distance of the close from its N-period simple moving average and divides that gap by the N-period Average True Range — in words, the close minus the SMA, all over the ATR, using a default length of 89 periods. The numerator captures how far price has departed from its mean, and dividing by ATR expresses that departure in units of normal daily travel, which is what makes the reading comparable across markets of different price and volatility. A stock three ATRs above its average and a currency three ATRs above its average both read plus 3, regardless of their nominal prices. The result oscillates around zero, is unbounded in either direction, and rises as price accelerates away from its mean. There is no additional smoothing or signal line in the classic construction.
Reading it, step by step
The line oscillates around zero, and readings beyond plus 3 or minus 3 mark moves that are large relative to the market's normal range — the thresholds Johnson used to flag tradable thrusts. Unlike a classic mean-reversion oscillator, a push above plus 3 is not an invitation to sell but a signal that an upside trend has real force and may be worth joining, with the mirror logic on the downside below minus 3. Because it is ATR-scaled, the same plus and minus 3 thresholds apply across different instruments, which is a practical advantage for screening. A reading drifting back toward zero signals the thrust is fading and often serves as an exit cue. The tool is fundamentally a breakout and trend-strength gauge, so its extremes mean continuation, not reversal.
Best timeframes and settings
The default 89-period length is long, which biases the PGO toward swing and position trading on daily charts, where it measures departure from a slow mean in volatility units. Shortening the length makes it far more responsive to recent price and produces more frequent threshold crossings, suiting shorter-term traders but adding noise, while lengthening it further smooths the read for a very long-horizon perspective. The plus and minus 3 thresholds are the conventional trigger levels and, because of the ATR scaling, need little adjustment across markets. The core trade-off is the familiar one: a shorter length reacts sooner but cries wolf more often, a longer length confirms only well-established thrusts. Most users keep the 89 default and treat crossings of plus or minus 3 as the actionable events.
When and where to use it
PGO is a trend and breakout tool, best deployed in trending markets to confirm and join strong directional thrusts rather than to fade extremes. Its ATR normalization makes it well suited to scanning across many instruments — stocks, futures, currencies — with a single set of thresholds. In quiet, rangebound markets it rarely reaches plus or minus 3 and offers little to act on, which is itself a useful signal that no thrust is present. The dangerous misuse is treating its extremes as reversal points, because in a runaway trend the PGO can hold well beyond plus 3 for a long time and fading it inverts the tool's purpose. Use it when you want a volatility-normalized confirmation that a move is strong enough to trade with the trend.
Strategies that use it
Johnson's own approach used the PGO as a breakout filter — a push above roughly plus 3 signals an uptrend worth joining, entering long on that thrust and exiting as the oscillator falls back toward zero, with the symmetric logic for shorts below minus 3. A trend-continuation variant only takes long signals while a separate trend filter, such as price above a long moving average, confirms the direction, using PGO to time entries into pullback-and-thrust continuations. A cross-market screen ranks instruments by their PGO reading to find those with the strongest volatility-adjusted thrusts, concentrating capital where momentum is most extreme. In all of these the exit is keyed to the oscillator decaying back toward zero rather than to a fixed target, since the tool is designed to ride strength until it fades.
Combining it with other indicators
Because PGO is unbounded and trend-oriented, it pairs well with a bounded oscillator like RSI that can flag when a thrust is also overextended in a mean-reversion sense. A long moving average or ADX supplies the trend-existence context that tells you whether a plus-3 reading is a genuine trend to join or a spike in a range. Volume tools confirm that the thrust has participation behind it. The Disparity Index and CCI are close relatives that measure similar departures from the mean and can cross-check the read. The consistent pattern is to let PGO identify strong volatility-adjusted thrusts while trend and volume tools confirm the move is real and worth joining.
Where it fails
The signature failure is misusing PGO as a reversal signal — because it is unbounded, a powerful trend can pin it well beyond plus or minus 3 for an extended stretch, so treating those levels as automatic tops or bottoms means fighting the very trends the tool was built to find. In quiet, rangebound tape it seldom reaches the thresholds and gives little to act on, tempting traders to lower the bar and take weak signals. The 89-period default is slow, so on shorter timeframes it can lag the thrust it is meant to catch. The remedy is to honor the tool's design — use extremes as continuation signals in the trend's direction, confirm with a trend filter, and exit on decay toward zero rather than fading the extreme. Shortening the length without accepting the added noise is another common error.
A worked example
Suppose a commodity has an 89-day ATR of about 2.00 points and its close sits 6.20 points above its 89-day simple moving average after a strong breakout. The PGO reads 6.20 divided by 2.00, or plus 3.1 — just over the plus-3 threshold — signaling a thrust strong enough to join, so a trend trader enters long in the direction of the break. Rather than fading the high reading, the trader holds while the PGO stays elevated, since in a real trend it can remain above plus 3 for many sessions. Weeks later, as the advance stalls and price drifts back toward its rising average, the PGO decays from plus 3.1 through plus 1.5 toward zero, and that fade toward the mean is the exit cue. Because the ATR scaling standardizes the reading, the same plus-3 rule the trader used here would apply identically to a stock or a currency pair with entirely different nominal prices.