Williams %R

A momentum oscillator on a −100 to 0 scale. Essentially an inverted stochastic — same mechanics, different sign convention, same use cases.

IndicatorBy AlgoLiftUpdated 4 min read
On this page 13What it measuresFormulaInputs in AlgoLiftRecommended periodsOutputs in AlgoLiftHow to read itBest in / worst inThree setups1. Mean-reversion entry in a range2. %R as a pullback timer in a trend3. %R crossover with smoothed %RAdvanced patterns in AlgoLiftCommon mistakes

A momentum oscillator that measures the current close's position within the high-low range on a −100 to 0 scale. Mechanically nearly identical to Stochastic %K, but with the sign convention flipped — values near 0 mean overbought, values near −100 mean oversold.

What it measures

  • Position within the range. Same fundamental measurement as Stochastic — where the current close sits relative to the highest high and lowest low over the lookback.
  • Sign convention. Williams chose −100 (close at the low) to 0 (close at the high), which inverts visual intuition compared to most oscillators.
  • Single-line simplicity. No signal line, no histogram — just one value and its slope.

Formula

Inputs in AlgoLift

SettingDefaultRangeNotes
Period142–500Lookback in bars for the high-low range.
  • 5–9 (fast): Short-term scalping. Very sensitive.
  • 14 (default): Standard. Good for intraday day-trading.
  • 20–28: Smoother readings for swing setups.

Outputs in AlgoLift

HandleTypePlottedNotes
%R ValueNumericAlwaysThe oscillator line (−100 to 0).
SlopeNumericOn selectBar-over-bar change in %R.

How to read it

  • %R above −20: Close is near the top of the range — overbought.
  • %R below −80: Close is near the bottom of the range — oversold.
  • %R near −50: Close is at the midpoint of the range — neutral.
  • Rising %R: Closes are climbing toward the high of the range.
  • Falling %R: Closes are dropping toward the low of the range.

The −20 / −80 thresholds are conventions, not rules. Some traders use −25 / −75 to filter out marginal extremes.

Key Takeaway

Williams %R and Stochastic %K measure the same thing with different sign conventions. Pick the one whose visual intuition you prefer — the underlying signal is identical at matching periods.

Best in / worst in

Best in range-bound markets and short-term cyclical instruments. The single-line simplicity makes %R cleaner to read than the two-line Stochastic when you only need the extreme detection.

Worst in sustained trends — same failure mode as Stochastic, since the math is the same. %R can stay above −20 for many bars in a strong uptrend.

Three setups

1. Mean-reversion entry in a range

Use %R extremes as direct entry triggers — only valid when you know the market is range-bound.

  • Long: %R < −80 AND %R slope > 0 (turning back up).
  • Short: %R > −20 AND %R slope < 0 (turning back down).

The slope requirement filters out entries during the initial dive into the extreme.

2. %R as a pullback timer in a trend

Like the Stochastic setup — let a trend filter set direction, use %R for entry timing.

  • Long (uptrend): Price > EMA(50) AND %R was < −75 in the last 3 bars AND %R is now > −60 (rising back through the midline).
  • Short (downtrend): Symmetric with %R thresholds flipped.

3. %R crossover with smoothed %R

Apply a Moving Average Modifier to the %R output to create a signal line. Trade %R crossing its own moving average.

  • Long: %R crosses above its 3-bar SMA from the oversold zone.
  • Short: %R crosses below its 3-bar SMA from the overbought zone.

This converts the single-line indicator into a Stochastic-like two-line system.

Advanced patterns in AlgoLift

%R as a regime-aware entry filter. Combine with a KAMA Efficiency Ratio check: only allow %R-based mean-reversion entries when KAMA's ER < 0.3 (market is chopping). When ER > 0.5 (market is trending), the %R extremes lose their reversal meaning — skip the trade.

%R-driven trailing stop. In a long trade, use a Set Exit Condition that closes the position the first time %R drops below −50 (close fell back to the midline). Acts as a momentum-based trailing exit without requiring ATR tuning.

%R for scale-out logic. Wire Set Target Profit with a fractional position size to exit 50% of the position when %R first reaches −20. Let the rest run with a trailing stop. The pattern captures cyclical-style profits without forcing a full exit on every extreme.

Common mistakes

  • Forgetting the sign. Williams %R is bounded between −100 and 0. New users sometimes wire it expecting 0–100 like Stochastic and get inverted signals.
  • Treating −20 / −80 as universal. Threshold choice depends on the period. Faster periods produce more extreme readings; you may need −15 / −85 to filter false signals at short periods.
  • Using on trending instruments without a trend filter. Same failure mode as Stochastic — selling every overbought reading in an uptrend produces continuous losses.
Common Misconception
Myth
Williams %R is a different indicator from Stochastic.
Reality
They're mathematically the same indicator with different sign conventions. Every signal generated by one can be generated by the other at matching periods. Pick by which scale you find easier to read, not by hoping one captures different information.