Williams Percent Range (%R)
Williams %R shares DNA with the Stochastic: it measures where the close sits in the recent high-low range — but with readings hanging upside-down between −100 and 0, speaking in −20/−80 extremes.
What it is
Williams %R, created by Larry Williams, computes %R = −100 × (Highest(N) − Close) ÷ (Highest(N) − Lowest(N)). Geometrically it is the same idea as the Stochastic %K — where the close sits in the N-bar high-low range — differing only in sign and scale: %R hangs between −100 and 0, where 0 means the close is exactly the range high (strongest) and −100 the range low (weakest). Its language of extremes is −20 (overbought) and −80 (oversold).
Origin
Larry Williams — the famous short-term trader, author of "Long-Term Secrets to Short-Term Trading" and multiple Robbins World Trading Championship winner (turning $10,000 into $1.1M in 1987) — developed and popularized %R in the 1960s–70s. It was one of the earliest implementations of the "range position" idea. MT5's default period is 14.
Download Camovia Tray free — check quotes, manage positions, and hide in one click from your system tray.
Download FreeThe formula
One line is all it takes:
The numerator is the distance from the close to the range top: the closer the close to the top, the smaller the distance and the closer %R is to 0 (strong); near the bottom, %R approaches −100 (weak). Relation to the Stochastic: %R = %K − 100 — same geometry, different origin. Learn one and you have learned the other.
Worked example
An example of the upside-down reading:
- The last 14 days traded between 110 (high) and 100 (low); today closes at 108.
- %R = −100 × (110 − 108) ÷ (110 − 100) = −20 — the close sits just 20% of the range away from the top.
- Read: %R = −20 sits exactly on the overbought line — the close is in an extremely strong position.
Smaller %R values (closer to 0) are stronger, larger values (closer to −100) weaker — opposite in direction to the Stochastic, identical in geometry. Beginners read it backwards constantly; remember "0 is the ceiling, −100 is the floor" and you will not.
How to read it
The −100 to 0 scale:
| Range | Common interpretation |
|---|---|
| 0 – −20 | Overbought: closes pinned at the range top — strong but stretched; can persist in trends |
| −20 – −50 | Bullish tilt: closes high in the range |
| −50 – −80 | Bearish tilt: closes low in the range |
| −80 – −100 | Oversold: closes pinned at the range bottom — weak but extreme; bounces start here in ranges |
| Re-entering the range from extremes | A failed extreme (out past −20/−80 then back in) — a more reliable signal than a mere touch |
%R has only one line (no %D-style signal line) — cross signals are structurally absent. Its signal system is "extreme → re-entry" plus divergence, which complements (rather than duplicates) the two-line Stochastic.
Common signals & usage
Extreme re-entry
%R pushing past −20/−80 then re-entering the range — the "failed extreme" signal; high win rate in ranges, reversed logic in trends.
Divergence
Price makes a new high while %R does not approach 0 — closes are weakening at the highs, a bearish divergence.
The −50 midline
%R above −50 = closes high (bullish tilt), below = low — a coarse directional filter.
Pre-breakout compression
%R oscillating in a tight extreme band then pinning at 0 or −100 — the volume signature of an impending range resolution.
Limitations & common mistakes
- The direction reads backwards: 0 is strongest, not weakest — the beginner's "−20 means oversold" mistake is epidemic (−20 is overbought!).
- One line, no crosses: %R has no signal line, so applying Stochastic-style "golden/death cross" language is a category error — its system is extreme re-entry plus divergence.
- Flattening, same as RSI/Stochastic: in strong trends %R hugs 0 for weeks — do not fade overbought.
- Redundant with the Stochastic: %R and %K are geometrically identical — running both is seeing the same thing twice; pick one.
- Lower-timeframe noise: 15-minute %R whipsaws between −20/−80 — reversion trades there need higher-timeframe regime filtering.
Williams %R in MT5
Williams %R is a built-in MT5 oscillator (single line, inverted scale). The MQL5 function for programmatic use is iWPR:
| MQL5 function | iWPR() |
| Default period | calc_period=14 |
| Reading range | −100 to 0 (0 = range high, −100 = range low) |
| Guides | −20 (overbought) / −80 (oversold) |
| Display window | Sub-window (note the inverted negative axis) |
The geometric equivalence with iStochastic: %R = %K − 100 — the two are interchangeable in code; choosing one is pure reading preference. MT5 renders the sub-window with 0 at the top, so mind the direction when first reading it.
Behavior across timeframes
15-minute
A high-frequency whipsaw zone — take extreme re-entries only in the larger-trend direction
1-hour / 4-hour
The main field for swing reversion and divergences; the comfort zone of the 14-period default
Daily
The classic habitat: the −20/−80 system and divergences are most representative on dailies
Weekly
Weekly %R beyond −95 or above −5 is a rare extreme — a footnote to multi-month moves
Indicator combinations
Common pairings for %R:
- With ADX: ADX < 20 (range) enables %R extreme re-entry; ADX > 25 (trend) leaves only divergences as trim cues. ADX
- With MA: in a bullish stack, take only %R oversold re-entries as buys — direction filter plus extreme timing. MA
- With RSI: both oscillators but different geometries (range position vs gain/loss ratio) — same-direction resonance is more reliable. RSI
FAQ
Q Is a %R of −20 overbought or oversold?
Overbought. The scale is inverted: 0 means the close is exactly the range high (strongest), −100 the range low (weakest) — so −20 is the overbought line and −80 the oversold line. Opposite to the Stochastic (80/20); beginners read it backwards constantly.
Q How does %R differ from the Stochastic %K?
Geometrically identical: %R = %K − 100 (same formula, different origin). The difference is the signal system: %R is one line using "extreme re-entry + divergence"; the Stochastic has %K/%D using "crosses + divergence". High redundancy — running both adds little.
Q Why does %R have no signal-line crosses?
Because it is designed as a single line. Larry Williams' original usage is extreme re-entry (out past −20/−80 then back inside) and extreme persistence — the cross system belongs to the two-line Stochastic. Do not mix the two vocabularies.
Q What does MT5's default 14 mean?
A 14-bar high-low range — note the Stochastic defaults to %K=5 while %R conventionally uses 14. You can run 5 (snappier) or 21 (steadier), but 14 is Larry Williams' mainstream default and consistent across platforms.
Q How do I add Williams %R in MT5?
Menu: Insert → Indicators → Oscillators → Williams' Percent Range, or drag it from the Navigator onto a sub-window. Default period 14 with −20/−80 guides built in — note the inverted 0-to−−100 axis.
Turn MT5 / MT4 into a Tray Tool
Check quotes, manage positions, and hide in one click.
Download Camovia TrayThis page is educational content about a technical indicator. It is not investment advice. Indicator signals can and do fail — always combine them with your own risk management.