Williams %R is a momentum oscillator that measures where the close sits relative to the high-low range over a lookback period. Developed by Larry Williams, it identifies overbought and oversold conditions.
%R=Highest High−Lowest LowHighest High−Close×(−100)
Missing Data
A closed-market bar (weekend, holiday) or any bar with a null High or Low is not computed — it
is a genuine gap, output as None, never a sentinel value and never carried forward from the
last valid bar. The Highest High and Lowest Low are found over the observed-bar subsequence:
an "n-period window" means n observed bars, with market-closed gaps bridged (Friday
adjacent to the following Monday). The first n observed bars are warm-up and are also None.
A null Close alone voids only that bar's own value — the High/Low window it sits in still counts
for later bars. A flat window (Highest High equals Lowest Low, so the price range is zero) is a
genuinely undeterminable ratio and is also None, never 0 or -50. Output length always equals
input length; only the values at gap, warm-up, and flat-window slots differ. Live requests
return exactly one datapoint — None when that datapoint's window is not yet fully observed.
How It Works
flowchart TD
subgraph Input["Price Data"]
H["High"]
L["Low"]
C["Close"]
end
subgraph Calc["Over n periods"]
HH["Find Highest High"]
LL["Find Lowest Low"]
RANGE["Range = HH - LL"]
POS["Position = HH - Close"]
end
subgraph Output["Result"]
DIV["Position / Range"]
MULT["× -100"]
WR["Williams %R (-100 to 0)"]
end
H & L --> HH & LL --> RANGE
C & HH --> POS
POS & RANGE --> DIV --> MULT --> WR
Interpreting Williams %R
| %R Value | Interpretation |
|---|
| -20 to 0 | Overbought zone |
| -80 to -20 | Neutral zone |
| -100 to -80 | Oversold zone |
flowchart LR
subgraph Zones["Williams %R Zones"]
OB["-20 to 0<br/>Overbought"]
N["-80 to -20<br/>Neutral"]
OS["-100 to -80<br/>Oversold"]
end
OB --> N --> OS
Trading Strategies
1. Overbought/Oversold Exits
| Zone | Condition | Action |
|---|
| Overbought | %R > -20 then drops below | Potential sell |
| Oversold | %R < -80 then rises above | Potential buy |
2. Failure Swings
When %R reaches an extreme but fails to make a new extreme on the next attempt, it signals weakening momentum.
3. Divergence
| Pattern | Price | %R | Implication |
|---|
| Bullish | Lower low | Higher low | Reversal up |
| Bearish | Higher high | Lower high | Reversal down |
Williams %R vs Stochastic
| Aspect | Williams %R | Stochastic %K |
|---|
| Range | -100 to 0 | 0 to 100 |
| Formula | Inverted | Standard |
| Overbought | > -20 | > 80 |
| Oversold | < -80 | < 20 |
| Relationship | %R = %K - 100 | %K = %R + 100 |
Williams %R is essentially an inverted Stochastic Oscillator.
Common Parameters
| Parameter | Default | Description |
|---|
| Period | 14 | Lookback for high/low range |
Advantages
- Leading indicator — Can signal reversals early
- Simple — Easy to calculate and interpret
- Clear zones — Well-defined overbought/oversold levels
- Works in ranges — Effective in sideways markets
Disadvantages
- False signals — Stays at extremes in strong trends
- Inverted scale — -100 to 0 can be confusing
- No smoothing — Can be choppy without additional filtering
- Trend-blind — Doesn't account for trend direction
Further Reading
Indicator Assessment
%%{init: {'theme': 'base', 'themeVariables': { 'cScale0': '#2563eb', 'cScale1': '#7c3aed'}}}%%
quadrantChart
title Williams %R Indicator Assessment
x-axis Low Complexity --> High Complexity
y-axis Low Reliability --> High Reliability
quadrant-1 High Value
quadrant-2 Specialized
quadrant-3 Limited Use
quadrant-4 Accessible
Stocks: [0.25, 0.60]
Crypto: [0.25, 0.55]
| Dimension | Stocks | Crypto | Notes |
|---|
| Popularity | 7/10 | 6/10 | Well-known oscillator; often overshadowed by RSI and Stochastic |
| Reliability | 6/10 | 5.5/10 | Effective in ranging markets; prone to false signals in strong trends |
| Complexity | 2.5/10 | 2.5/10 | Simple formula and interpretation; inverted scale can confuse beginners |
| Versatility | 6/10 | 6/10 | Works across timeframes but best in sideways markets |
| Recent Interest | 5/10 | 5/10 | Steady but modest usage; RSI often preferred as the go-to momentum oscillator |