Oscillators MomentumScalpingMean Reversion Available in Builder

Williams %R

Williams %R shows where the close sits inside the recent high–low range on an inverted −100 to 0 scale. It is the fastest of the common bounded oscillators, with no signal line and no smoothing, which makes it a scalping tool rather than a swing one.

Default period
14
Common levels
−20 / −80
Indicator range
−100 to 0
OverboughtOversoldCentreline 50Divergence

Illustrative — synthetic data, not a live quote.

What Williams %R tells you

Williams %R is the raw version of the same question Stochastic asks: where in the recent range did this bar close? It applies no smoothing at all, so it reaches its extremes sooner and stays there for shorter — useful when you want speed, punishing when you want reliability.

  • Above −20: closes are clustering at the top of the range
  • Below −80: closes are clustering at the bottom
  • The scale is inverted — 0 is the strong end, −100 the weak one
  1. 1 Find the high–low range of the last N bars
  2. 2 Measure the close down from the high
  3. 3 Express it as −100 to 0
Show the formula & calculation detail

Williams %R measures the close against the top of the recent range:

  1. Over the last N bars, find the highest high and the lowest low.
  2. Measure how far the current close sits below that highest high.
  3. Express that distance as a percentage of the whole range, negated: %R = −100 × (Highest High − Close) / (Highest High − Lowest Low).

A close exactly at the highest high gives 0; a close at the lowest low gives −100. No smoothing is applied at any stage — the value published on buffer 0 is the raw ratio for the current bar, which is why %R can travel from one extreme to the other in a single bar and why it produces far more extreme readings than Stochastic on the same data.

The relationship to Stochastic is exact rather than approximate: %R = %K − 100 for the unsmoothed case. They are the same measurement on two scales, and the difference in behaviour comes entirely from the smoothing Stochastic applies and %R does not.

In MQL5 the call is iWPR(symbol, period, calc_period) and it returns a handle to a single buffer. There is no applied-price argument and no signal line. Larry Williams introduced %R in the 1970s.

Signals

The distinct, backtestable signals Williams %R gives — and the regime each one suits.

Overbought / Oversold

Builder ready
Condition
%R moves above −20 or below −80
Best regime
Ranging markets
Typical use
Fade the extreme on a short horizon

Leaving the Extreme

Builder ready
Condition
%R crosses back out of the −80 or −20 zone
Best regime
Ranging markets
Typical use
Wait for the extreme to start unwinding instead of catching it

Centreline Cross

Builder ready
Condition
%R crosses −50
Best regime
Trending markets
Typical use
Flip momentum bias without waiting for an extreme

Divergence

Advanced logic
Condition
Price makes a new extreme, %R does not
Best regime
Trend exhaustion
Typical use
Anticipate a stall before price confirms

MT5 implementation

What MetaTrader 5 itself computes and draws — the reference every rule on this page is written against.

Buffers

Index Buffer Drawn in MT5 as What it holds
0 MAIN_LINE Line The %R value, from −100 (close at the bottom of the range) to 0 (close at the top). One buffer only — there is no signal line.

Platform notes

Works best / use carefully

No indicator is a universal edge. Here is where Williams %R helps — and where it misleads.

Works best

  • Ranging markets
  • Short-horizon entries
  • Tight-spread instruments and sessions
  • With a session or volatility filter

Use carefully

  • Strong one-way trends
  • Wide-spread pairs
  • Extremes as standalone entries
  • Optimised levels without validation

Build a strategy with Williams %R

Wire the signal into entry and exit rules, then export a compilable MT5 EA — no code.

  1. Williams %R (14)
  2. %R below −80 → Open Buy · SL 15 / TP 20
  3. %R above −20 → Open Sell
  4. Break-even at +10 pips, locking 2

Combine Williams %R with other indicators

One indicator rarely stands alone. These pairings cover Williams %R's blind spots.

Williams %R + Bollinger Bands

  1. %R below −80
  2. Price at lower band
  3. Buy
Why
Require price to be statistically stretched at the same moment the oscillator is extreme, which filters out the fastest false readings
Best regime
Ranging

No single-flow template pairs Williams %R with Bollinger Bands — the portfolio template that holds both runs them as separate legs. Start from Williams Scalper and add band nodes with a Price node into a Compare.

Open Builder →

Williams %R + ADX

  1. ADX < 20
  2. %R below −80
  3. Buy
Why
Suppress the fade while a trend is running, which is when %R pins at an extreme and stays there for a whole session
Best regime
Range filtering

No single-flow template pairs Williams %R with ADX. Start from Williams Scalper and add an ADX node with a Compare below 20.

Open Builder →

Williams %R + ATR

  1. %R below −80
  2. ATR sets the stop distance
  3. Buy
Why
Replace the fixed 15-pip stop with a volatility-sized one, since a scalping stop is the first thing a change of regime invalidates
Best regime
Any

No single-flow template pairs Williams %R with ATR. Add an ATR node feeding a risk-based lot or stop node.

Open Builder →

Parameters

Starting values to validate on your own pair and timeframe — not guaranteed settings.

Parameter Default Suggested test range What it does
Period 14 5–30 How many bars the high–low range is measured over. Shorter makes %R touch its extremes almost every bar; longer makes an extreme mean something.
Overbought / Oversold −20 / −80 −10 to −30 / −70 to −90 Your levels, not indicator inputs — iWPR has no threshold argument. Remember the scale is inverted: −20 is the strong end.
Shift 0 0–3 Which bar back the value is read from. Shift 1 compares against a fully closed bar, which matters more here than on slower oscillators.

Starting presets

Scalping 9 Very fast, needs tight spreads
Standard 14 Williams' default baseline
Swing 28 Fewer, more meaningful extremes

Market examples

Where Williams %R works, where it fails, and how a filter changes the outcome.

Works

Fade inside a session range

In a quiet London range %R drops under −80, price stalls and the short move back plays out — the horizon the scalping template is built for.

Fails

Pinned in a trend

In a directional session %R sits above −20 for most of the day. Selling every reading fights the move and pays the spread each time.

Filtered

Session filter earns its keep

The same extremes appear outside the London session on a wider spread and are all skipped — on a 20-pip target the spread decides whether the trade was ever viable.

FAQ

Is Williams %R the same as Stochastic?
Almost. Both measure where the close sits in the recent high–low range. %R reports it on an inverted −100 to 0 scale and applies no smoothing at all; Stochastic reports 0–100 and smooths twice, and publishes a signal line. In practice %R is the faster, noisier member of the pair, which is why it shows up in scalping strategies.
Why is the scale negative?
Larry Williams defined it as the distance from the highest high down to the close, expressed as a negative percentage of the range. A close at the very top gives 0 and a close at the very bottom gives −100. It carries no meaning beyond the convention, but it does mean a comparison copied from a Stochastic rule will be backwards.
What levels should I use?
−20 and −80 are conventional and map onto Stochastic's 80/20. They are your levels, not indicator inputs — iWPR takes only a period. On a short period %R touches both extremes constantly, so widening to −10/−90 or lengthening the period usually matters more than moving the levels a little.
Does Williams %R have an applied-price setting?
No. The calculation needs the highest high, the lowest low and the close together, so there is no single series to pick. MQL5's iWPR takes only a period.
Can I build a Williams %R EA without coding?
Yes for level rules and centreline crosses — one %R node plus a Compare, with the period as an EA input. The Williams Scalper template also shows the execution filters a short-horizon strategy needs. Divergence is the exception and requires custom MQL5.
How should I validate settings before going live?
Backtest on quality tick data first, then run the EA on a demo account before risking money. When optimising, hold back data the search never saw and prefer settings that stay profitable across periods over the single in-sample peak — chasing that peak is overfitting the noise. On short-horizon strategies also check that the spread and execution assumptions in the test resemble your broker's, because a 20-pip target has no room for optimism.

Glossary

Key terms