Williams %R measures where the current close sits within the recent high-low range — then inverts the scale. Values run from 0 to -100. Near 0 means price closed near the top of its range (overbought). Near -100 means price closed near the bottom (oversold). Developed by Larry Williams, it is mathematically the inverse of fast Stochastic %K.

Momentum Oscillator
Category
Advanced
Difficulty
0 to -100 (negative scale — reversed)
Output Range
14
Default Period
None
Repaint Risk
Simple — high, low, close
Data Need
MOMENTUM · OSCILLATOR · BEGINNER_FRIENDLY · LAGGING · REAL_TIME
Tags

Section 1: Core Mechanics

Williams %R answers the same question as Stochastic: where did price close within its recent range? The difference is the scale direction. Stochastic scores 0 at the bottom of the range and 100 at the top. Williams %R scores 0 at the top of the range and -100 at the bottom. The numerator uses Highest High instead of Lowest Low, then negates the result.

Formula

Where N is the lookback period (default 14).

Relationship to Stochastic:

Stochastic %K of 80 = Williams %R of -20. Both describe the same condition: price closed in the upper 20% of its 14-bar range. The math is identical; only the scale differs.

Inputs

  • High, Low, Close for each bar
  • Period (N): Lookback for Highest High and Lowest Low (default 14)

Parameters

Parameter Default Range Impact
Period (N) 14 5–28 Lower = more reactive, more noise
Overbought level -20 -10 to -30 Values near 0 = price near top of range
Oversold level -80 -70 to -90 Values near -100 = price near bottom of range

Output

Williams %R outputs a single value between 0 and -100. Zone interpretation:

  • 0 to -20: Overbought — close near the top of the N-period range
  • -20 to -80: Middle range — no extreme signal
  • -80 to -100: Oversold — close near the bottom of the N-period range

Understanding the Negative Scale

The reversed scale trips up beginners. Here is the key mapping:

Williams %R Meaning Equivalent Stochastic %K
0 Price at exact top of N-period range 100
-20 Overbought zone boundary 80
-50 Middle of range 50
-80 Oversold zone boundary 20
-100 Price at exact bottom of N-period range 0

A %R value of -5 is extreme overbought (near the top). A value of -98 is extreme oversold (near the bottom). This is opposite to what traders expect from a 0–100 scale. Read this twice before using the indicator live.


Section 2: Interpretation & Signals

Signal Zones

%R Level Interpretation Action
0 to -20 Overbought — price near top of recent range Watch for reversal signal
-20 to -50 Upper neutral — mild bullish bias Trend continuation only
-50 Centerline — no momentum edge Avoid entries
-50 to -80 Lower neutral — mild bearish bias Trend continuation only
-80 to -100 Oversold — price near bottom of recent range Watch for reversal signal

Entry and Exit Rules

Oversold entry (buy setup):

  • Wait for %R to drop below -80 (oversold zone entered)
  • Entry: %R crosses back above -80 (exits oversold zone)
  • Stop: Below the oversold price low
  • Target: %R reaches -20 or prior resistance

Overbought entry (sell/short setup):

  • Wait for %R to rise above -20 (overbought zone entered)
  • Entry: %R crosses back below -20 (exits overbought zone)
  • Stop: Above the overbought price high
  • Target: %R reaches -80 or prior support

The entry is NOT when %R enters the extreme zone — it is when %R exits the zone. This avoids entering during a continuing trend move.

Williams %R — Oversold Zone Entry on Exit Cross

Divergence

Williams %R divergence works identically to RSI and Stochastic divergence:

Bullish: Price makes a lower low. %R makes a higher low (less negative). Momentum is improving before price.

Bearish: Price makes a higher high. %R makes a lower high (more negative, closer to -100). Momentum is weakening before price peaks.

Because %R is mathematically equivalent to Stochastic, their divergence signals are nearly identical. The scale is different; the underlying calculation is the same.

💡 TIP
Larry Williams originally used %R as a momentum filter rather than a standalone entry trigger. He would look for %R to exit the extreme zone on a weekly chart before taking the entry on the daily chart. Multi-timeframe confirmation — weekly %R exiting oversold while daily %R also exits oversold simultaneously — was his preferred high-conviction setup.
⚠️ WARNING
The negative scale is a consistent source of errors. When comparing Williams %R across multiple indicators on a screen, it is easy to read -10 as "nearly oversold" (it is the opposite — nearly overbought). Label your chart explicitly. In real trading systems that use %R programmatically, double-check your overbought/oversold conditions are coded for the negative scale.

Best Market Conditions

Williams %R works best in ranging and mean-reverting markets. In strong trends, like Stochastic, %R can remain in an extreme zone for extended periods. The exit-from-zone entry rule (enter when %R crosses back above -80, not when it enters) reduces the risk of entering too early in a trending market.


Section 3: Pass vs. Live — Real-Time Reliability

None — %R value is fixed at bar close
Repaint Risk
Low — direct calculation from current high/low/close vs N-period range
Lag
Wait for bar close — live bar %R updates as H/L of current bar evolve
Confirmation Timing
Overbought/oversold extreme zone exits / Multi-timeframe trend filtering
Best Use
Counter-trend entries in strongly trending markets; acting on live-bar zone exits
Avoid

Williams %R uses the live bar's high and low in the Highest High and Lowest Low calculations (identical to Stochastic's repaint mechanism). As the current bar's intraday high extends, the Highest High window may expand, shifting %R. At bar close, the final high and low are fixed. The value is permanent. No historical bars change.


Section 4: Practical Use Cases

Setup: %R(14) on 15m chart with overbought at -20, oversold at -80 Signal: %R drops below -80 then crosses back above -80 (exits oversold) in 15m Entry: 15m bar close after the exit-from-oversold cross Exit: %R reaches -20 overbought zone or price hits 1.2x ATR from entry Key Rule: Only trade in the direction of 1H %R bias — if 1H %R is below -50, only take oversold exits (buys)

Real example — Gold (XAUUSD), Q3 2022: Gold weekly Williams %R dropped to -97.4 in late September 2022 as gold hit $1,622 — the lowest weekly %R reading in over 5 years. The following week, %R recovered to -84.6, then crossed above -80 two weeks later as gold reclaimed $1,660. The weekly oversold exit on %R marked the beginning of a sustained recovery rally that carried gold to $2,050 by May 2023.


Section 5: Pseudo Code

INPUT: high[], low[], close[], period=14, ob=-20, os_=-80

PROCESS:
  Step 1: For each bar i >= period - 1:
            highest_high = max(high[i - period + 1 : i + 1])
            lowest_low = min(low[i - period + 1 : i + 1])
            range_hl = highest_high - lowest_low
  Step 2: Calculate %R:
            if range_hl == 0:
              wr[i] = -50  # No range — set to neutral
            else:
              wr[i] = ((highest_high - close[i]) / range_hl) * -100

OUTPUT: wr[] — values between -100 and 0
EDGE CASES:
  - range_hl == 0 (all bars identical close/high/low): set to -50 (neutral)
  - Fewer than `period` bars: return NaN
  - close[i] exactly equals highest_high: wr[i] = 0 (at top of range)
  - close[i] exactly equals lowest_low: wr[i] = -100 (at bottom of range)
  - NaN in high, low, or close: propagate NaN

Section 6: Parameters & Optimization

Standard Conventions

Period Use Case Signal Frequency
5 Very short-term scalping High — frequent noise signals
10 Short-term swing Moderate — slightly noisy
14 Standard (default) Balanced — matches RSI default
21 Swing and position Lower — fewer but stronger signals
28 Weekly charts, position Very low — only genuine extremes

Parameter Impact

Change Effect When to Apply
Lower period (< 14) More frequent extremes, higher noise Only with tight trend filter
Higher period (> 14) Rarer extremes, slower reaction High-volatility assets, position trading
Narrow OB/OS bands (-10/-90) Only extreme extremes trigger Very strong trending markets
Wider OB/OS bands (-30/-70) More signals, less selective Range-bound, low-volatility markets
Why does %R use a negative scale?

Larry Williams designed %R to show how far price is from the highest high, making distance from the top the primary reading. In his framework, being near the highest high (value near 0) is the dangerous overbought condition. The negative sign directly reflects "distance below the recent high." It is a deliberate design choice — the negative scale emphasizes downside risk from the top. Many platforms offer an option to display %R as a positive scale (0 to 100) for easier reading; this is cosmetic and does not change the calculation.

Is Williams %R the same as Stochastic?

Mathematically: Williams %R = fast Stochastic %K minus 100, then the sign is flipped. They produce the same trading signals — the only differences are the scale and the absence of a %D signal line in %R. If you apply a 3-period SMA to Williams %R, you get the equivalent of Stochastic's %D. Some traders prefer %R's single-line simplicity. Others prefer Stochastic's explicit crossover signal with %D.


Section 7: Synergies & Conflicts

Works Well WithAvoid Combining With
Trend filters (SMA 200)Only trade %R oversold exits when price is above SMA(200) — prevents counter-trend entries
Multi-timeframe alignmentWeekly %R exit oversold + daily %R exit oversold simultaneously = high-conviction setup
VolumeHigh volume when %R exits extreme zone = institutional participation confirming the reversal
ATR stopsSize stops using ATR from the %R extreme price low/high — these moves can be large
StochasticMathematically equivalent — using both creates false sense of double confirmation with zero additional edge
RSIBoth measure momentum extremes — one is sufficient. RSI adds the %D-like smoothing; %R is rawer. Choose based on preference, not as dual confirmation.
Other oscillators at extreme readingsWhen multiple oscillators all show oversold simultaneously, it likely reflects a strong trend move — not an automatic reversal. Strong trends can maintain extremes for weeks.

Section 8: Common Mistakes

Mistake Root Cause Solution
Reading -10 as "nearly oversold" Forgetting the negative scale reversal -10 means near the TOP of the range — highly overbought. Map the scale explicitly: 0=top, -100=bottom.
Entering on first touch of the extreme zone Fading the first move into overbought/oversold Wait for %R to EXIT the extreme zone — cross back above -80 for buys, back below -20 for sells
Using %R and Stochastic simultaneously Believing they are different indicators They are mathematically equivalent. Remove one from your charts.
Ignoring trend direction Counter-trend %R signals in trending markets fail frequently Add SMA(200) filter — only take %R oversold exits when price is above SMA(200)
Trading %R in strong trend without volatility filter %R stays at extremes during trends Add ATR reading — when ATR is high (trending), treat %R extremes as continuation, not reversal

Section 9: Cheat Sheet

ℹ️ INFO
**Williams %R**

USE WHEN: Ranging market, %R reaches extreme zone (below -80 or above -20), using multi-timeframe exit confirmation
AVOID WHEN: Strong trending market (ADX > 30), %R just entering extreme zone (wait for exit), acting on live-bar signals

ENTRY SIGNAL: %R crosses back above -80 (buy) / %R crosses back below -20 (sell)
EXIT SIGNAL: %R reaches opposite extreme / %R crosses -50 centerline against position

PARAMETERS: Standard = period 14, levels -80/-20 | Position = period 21, levels -85/-15
CONFLUENCE: Weekly %R exit + daily %R exit simultaneously / SMA(200) trend filter / Volume on exit bar

RISK: Scale confusion — always verify -10 means overbought (near top), not oversold. Re-check this on every platform.
BEST TIMEFRAME: Weekly for position cycle timing / Daily for swing entries / 15m-1H for oversold scalps in trend