Williams %R Calculator
Calculate Williams %R momentum from current close vs period high-low range.
Reads -100 to 0; oversold below -80, overbought above -20 for swing trades.
Larry Williams created %R in the 1970s. It is mathematically the inverted Stochastic — same data, different sign convention. The formula:
%R = -100 × (High_N - Close) / (High_N - Low_N)
Default lookback is 14 bars. The output runs from -100 (close at the period low) to 0 (close at the period high). Conventional zones are reversed from the Stochastic:
- Above -20 = overbought
- Below -80 = oversold
That negative range trips up beginners. -10 is “more overbought” than -30. Plotting it inverted (so -100 is at the top) makes more sense visually, and TradingView and most platforms do this by default.
Why use it instead of Stochastic. %R does not smooth itself; the raw value is what you get. Some traders prefer that — fewer hidden parameters, faster signals. Others prefer Slow Stochastic for less noise. They are reading the same underlying data; the choice is taste.
Williams’ own use. Larry Williams used %R as an entry timing tool inside a larger trend system. He did not buy every -80 print. He waited for %R to cross back above -80 on a stock already in an uptrend — using the indicator for timing within an established directional bias. That two-filter approach is what made his system work.
The pre-trade trap. A -90 reading does not mean “buy now.” It means the close is at the bottom of the recent range. In a downtrend, that is normal and expected. The mistake is treating range position as a reversal signal in isolation.
Worked example. 14-period high = 105.40, low = 98.20, close = 103.10.
- %R = -100 × (105.40 - 103.10) / (105.40 - 98.20)
- %R = -100 × (2.30 / 7.20) = -31.94
A -31 reading is upper-third of the range, neither overbought nor oversold. Compare to Stochastic %K of 68 on the same data — the same information with the sign flipped.
Pairing with longer-term filter. %R is a fast oscillator. Use a 50- or 200-period moving average as a trend filter, then take %R signals only in the direction of that trend.