Camovia Tray™

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 Free

The formula

One line is all it takes:

%R = −100 × (Highest(N) − Close) ÷ (Highest(N) − Lowest(N))
Range: −100 to 0
−20 = overbought line; −80 = oversold line (MT5 default guides)

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:

  1. The last 14 days traded between 110 (high) and 100 (low); today closes at 108.
  2. %R = −100 × (110 − 108) ÷ (110 − 100) = −20 — the close sits just 20% of the range away from the top.
  3. 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:

int iWPR(string symbol, ENUM_TIMEFRAMES period, int calc_period);
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 Tray

This 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.