Momentum & oscillatorsWilliams %R · %R
Larry Williams' inverted stochastic — the close versus the recent high, on a −100 to 0 scale.
Works best in ranging marketsEngine-computed on a fixed sample series
What it is
Williams Percent R, written %R, is a momentum oscillator created by the trader Larry Williams that measures where the current close sits relative to the highest high and lowest low of a recent lookback window. It is essentially the stochastic oscillator's %K turned upside down, plotted on an inverted scale that runs from zero at the top to minus 100 at the bottom. The question it answers is how close price is trading to the top or the bottom of its recent range: a reading near zero means the close is right at the recent highs, and a reading near minus 100 means it is scraping the recent lows. For a beginner, think of the recent range as a room with a ceiling and a floor, and %R tells you how near the ceiling or the floor today's close is standing. Because it is bounded, it lends itself to fixed overbought and oversold thresholds.
How it is calculated
Over a chosen lookback, usually fourteen bars, you first find the highest high and the lowest low that occurred in that window. Then you take the distance from that highest high down to the current close and divide it by the full range, the highest high minus the lowest low. That fraction is multiplied by minus 100, which flips the result onto the zero-to-minus-100 scale. So when the close equals the highest high the numerator is zero and %R reads zero, its strongest possible value, and when the close equals the lowest low the numerator equals the whole range and %R reads minus 100, its weakest. Everything in between scales linearly, so a close exactly in the middle of the range reads minus 50. The only difference from the stochastic %K is the inversion and the sign, which is why %R is often described as an upside-down stochastic.
Reading it, step by step
The first hurdle for newcomers is the inverted scale, so fix it in mind: zero is the strongest reading and minus 100 the weakest, the opposite of intuition. Readings above minus 20, meaning close to the top of the range, are considered overbought, and readings below minus 80, close to the bottom, are oversold. But an overbought reading is not automatically a sell, because in a strong uptrend %R can stay pinned above minus 20 for a long stretch while price keeps climbing. The more reliable signals come from momentum failures near the extremes, such as %R poking to minus 5, pulling back, and failing to reach the extreme again as price makes a new high, which is a bearish divergence. Many traders also watch the midpoint, treating a move back above minus 50 as a shift toward strength and a move below minus 50 as a shift toward weakness.
Best timeframes and settings
The default lookback is fourteen bars, and %R works on every timeframe from intraday scalping charts to weekly swing charts. Shorter lookbacks such as seven or ten make it far more sensitive, whipping to the extremes frequently, which suits fast scalping but generates many false overbought and oversold flags. Longer lookbacks such as twenty-eight or fifty smooth the oscillator and produce fewer, more meaningful extremes, better for swing and position trading. Because %R has no internal smoothing, it is inherently jumpy, and some traders apply a short moving average to the %R line itself to calm it. The core trade-off mirrors every oscillator: a shorter window reacts sooner but cries wolf more often, and a longer window is steadier but slower, so you match the setting to how quickly you intend to trade and how much noise you can tolerate.
When and where to use it
Williams %R is at its best in ranging, sideways markets, where price genuinely oscillates between a floor and a ceiling and its overbought and oversold extremes reliably mark the turns. It is a favorite for timing entries within a range and for spotting exhaustion at the edges of a consolidation. It works across all liquid asset classes, from stocks and futures to foreign exchange, wherever a clear recent range exists. It should be used with caution, or avoided as a standalone signal, in strong trends, because it will sit at an extreme and keep flashing a reversal that never comes while the trend rolls on. The most robust way to deploy it is in the direction of a larger trend, using oversold readings as pullback entries in an uptrend rather than as countertrend reversal bets.
Strategies that use it
A classic trend-aligned strategy is the pullback entry: in a confirmed uptrend, wait for %R to dip into oversold below minus 80 and then climb back above minus 50, and take that recovery as a timing signal to buy with the trend, mirroring the logic for shorts in a downtrend. A second strategy is the range fade, appropriate only when you have judged the market to be rangebound: sell when %R pushes above minus 20 at the top of the range and buy when it drops below minus 80 at the bottom, with stops just beyond the range boundary. A third is the divergence play: when price makes a new high but %R fails to reach its prior overbought extreme, prepare for a reversal and act once price confirms with a break of short-term support. Across all three, the fixed thresholds give clean rules, but a trend filter is what separates the profitable applications from the ones that fight a trend to ruin.
Combining it with other indicators
Because %R is so closely related to the stochastic oscillator, you should not run both as if they were independent confirmations; instead pair %R with tools that measure something different. A trend filter such as a moving average or the Average Directional Index is the most valuable partner, telling you whether to trade %R extremes as pullbacks or as fades. The Relative Strength Index adds a differently constructed momentum view, and agreement between the two strengthens a signal while divergence between them warns of instability. Volume indicators confirm whether an extreme is backed by real participation. Support and resistance levels turn a generic oversold reading into a high-probability bounce when the two coincide at a known price. The Commodity Channel Index, being unbounded, complements the bounded %R by showing when a move is stretching beyond the normal range that %R alone would cap at minus 100 or zero.
Where it fails
The signature failure is the strong trend, where %R hugs an extreme and fires premature reversal signals bar after bar while price keeps trending, punishing anyone who fades it mechanically. Its lack of smoothing makes it jumpy, so it can flick into and out of the overbought or oversold zone on noise, generating false flags. The inverted scale is a perennial source of beginner mistakes, with traders confusing zero for weak and minus 100 for strong when the truth is the reverse. Reading every excursion beyond minus 20 or minus 80 as an automatic trade is the core error, since those zones mark stretch, not a signal. The defenses are to always establish trend context first, to treat extremes as pullback entries with the trend rather than reversal bets against it, to favor divergences and midpoint recoveries over raw extremes, and to consider smoothing the line if its jumpiness is causing false triggers.
A worked example
Suppose over the last fourteen bars a stock's highest high is 110, its lowest low is 100, and today's close is 108. The distance from the high to the close is 110 minus 108, or 2, and the full range is 110 minus 100, or 10, so the fraction is 0.2, and multiplying by minus 100 gives a %R of minus 20, right at the overbought threshold because the close is near the top of the range. Now imagine two sessions later the stock sells off and closes at 101, while the fourteen-bar high and low are unchanged: the distance from 110 to 101 is 9 over a range of 10, a fraction of 0.9, giving a %R of minus 90, deep into oversold territory. If the broader trend is up and price is holding above a rising moving average, you would treat that minus 90 reading not as a signal to short but as a potential pullback entry, waiting for %R to recover back above minus 50 before buying with the trend.