The Williams %R strategy is a classic oversold-bounce trade: when price closes near the bottom of its recent range, buy it and sell when it gets back near the top. We tested Larry Williams' oscillator on Nasdaq-100 futures (NQ) from June 2010 to April 2026, with and without a 200-day moving average filter. Both versions made money. The filter made the ride smoother but left a lot of profit on the table.
What Williams %R (Williams percent range) measures
Williams %R compares the close to the highest high and lowest low over a lookback period:
%R = −100 × (Highest High − Close) ÷ (Highest High − Lowest Low)
It runs from 0 (close at the top of the range) to −100 (close at the bottom). Readings below −80 are traditionally called oversold and above −20 overbought. It's essentially the Fast Stochastic %K flipped upside down.
The indicator is credited to Larry Williams, who says he developed it in the 1960s and who described %R in his book How I Made One Million Dollars Last Year Trading Commodities, about his trading in the 1973 commodity markets. We use a shorter 10-day lookback and a stricter −90 trigger than the textbook −80, to catch only the deeper pullbacks, similar in spirit to Larry Connors' RSI(2).
The exact Williams %R rules we tested
- Market: NQ continuous front-month futures, daily bars, June 7, 2010 to April 16, 2026.
- Indicator: Williams %R with a 10-day lookback (the current day plus the prior nine).
- Entry (long only): buy at the close when %R is below −90.
- Trend-filter version: also require the close to be above its 200-day simple moving average.
- Exit: sell at the close when %R rises above −20.
- Stop: none.
- Costs: 1.0 NQ point per round trip deducted from every trade. Results are NQ points per 1 contract; MNQ = $2/point, NQ = $20/point.
Williams %R strategy results on NQ
| Variant | Trades | Win rate | Avg pts | Total pts | Profit factor | Closed-trade DD (pts) | Pts 2010–19 | Pts 2020–26 | PF 2020–26 |
|---|---|---|---|---|---|---|---|---|---|
| %R(10) < −90, above 200-day SMA | 82 | 75.6% | 106.09 | 8,699.0 | 2.40 | -1,432.5 | 2,805.8 | 5,893.2 | 2.05 |
| %R(10) < −90, no filter | 115 | 73.9% | 96.81 | 11,132.8 | 2.17 | -1,981.0 | 4,028.2 | 7,104.5 | 1.83 |
Buy and hold over the same span: 24,677.2 points, worst decline 5,878.2 points.
Both versions worked
- No filter: 115 trades, 73.9% winners, profit factor 2.17, 11,132.8 points ($22,266 on one MNQ contract).
- With the 200-day filter: 82 trades, 75.6% winners, profit factor 2.4, 8,699.0 points ($17,398 on MNQ).
The filter did what filters usually do: it raised the profit factor (from 2.17 to 2.4) and cut the closed-trade drawdown (from 1,981.0 to 1,432.5 points), but it also removed 33 trades and about 2,433.8 points of profit. On NQ, oversold readings below the 200-day average bounced well enough on average that skipping them cost money.
It didn't save the bad years, either. 2020 was identical in both versions (-345.2 points), and 2022, a full bear market, still lost -664.8 points with the filter and -739.8 without it.
The payoff shape
As with most oversold indicators, the high win rate hides lopsided losses. With the filter, the average winner was 240.38 points and the average loser -310.21. Without it: 243.17 vs -317.88. You win about three trades in four, but a loser can wipe out more than one winner.
The robustness check: 2010–2019 vs 2020–2026
NQ rose from about 1,800 to about 26,000 during the test, so recent years dominate point totals. The unfiltered version made 4,028.2 points in 2010–2019 and 7,104.5 in 2020–2026 (profit factor 1.83). The filtered version made 2,805.8 and 5,893.2 (profit factor 2.05). Both were positive in each decade. The early-decade number is the more convincing one for us: 4,028.2 points when NQ traded at a fraction of today's price is a meaningful edge, not an artifact of recent volatility.
Sample size: 82 and 115 trades clear the 30-trade minimum but aren't huge. Treat the exact profit factors as estimates.
What this backtest does not model
- Open-trade drawdown. With no stop, trades can be deep underwater before %R recovers; the closed-trade figure understates real risk.
- Continuous-contract roll gaps, which can distort the 10-day high/low on roll days.
- Fills at the exact daily close.
- Other lookbacks (such as the common 14-period) and thresholds (−80/−20).
- Overnight gaps, margin and taxes.
This is a historical backtest. Past results don't guarantee future results, and nothing here is financial advice.
Key takeaways
- Williams %R(10), buying below −90 and exiting above −20, was profitable on NQ from 2010 to 2026 after 1 point of costs per trade.
- No filter: 115 trades, PF 2.17, 11,132.8 points. With a 200-day filter: 82 trades, PF 2.4, 8,699.0 points.
- The filter improved profit factor and closed-trade drawdown but cut total profit, and it still lost in 2022.
- Both versions were positive in 2010–2019 and 2020–2026.
- Win rate was about 75%, but average losses were larger than average wins.
Put the research to work on your Desk
Explore the tools behind the research, compare the available access, or open your Desk if you already have an account.
FAQ
Does the Williams %R strategy work on Nasdaq futures?
In our 2010–2026 NQ backtest, buying when 10-day %R fell below −90 and selling above −20 was profitable: 115 trades, 73.9% winners, profit factor 2.17, after 1 point of costs per trade. It was positive in both 2010–2019 and 2020–2026.
Should I use a 200-day moving average filter with Williams %R?
It's a trade-off. On NQ the filter raised profit factor from 2.17 to 2.4 and cut closed-trade drawdown, but total points fell from 11,132.8 to 8,699.0, and it still lost money in 2022.
What is a good Williams %R setting?
We tested a 10-day lookback with a −90 buy trigger and a −20 exit. The textbook setting is 14 periods with −80/−20 levels; we didn't test that here.
Who created Williams %R?
Larry Williams. He has said he developed it in the 1960s, and he described it in his book How I Made One Million Dollars Last Year Trading Commodities.
Loomi.Ai provides educational market research, not financial advice. Trading futures and options involves substantial risk of loss, and backtested results are historical and do not guarantee future returns.
Sources
- Loomi backtest: blog_strategy_tests.py + results JSON, Loomi research
- Williams %R, Wikipedia
- About Larry, williamspercentr.com