THE LAB · TEST 001
RSI 80/20 — the internet's favourite entry, tested
Buy when RSI leaves oversold. Sell when it leaves overbought. It is taught in a thousand videos, almost never with evidence. We ran it through a deterministic backtest across nine pairs — up to 30 years of daily data and 700 days of hourly data — with the rules declared before the results were seen.
The win rate is real. The edge is not. With the classic RSI-50 exit, 63.4% of daily trades and 62.8% of hourly trades won — and it still barely paid. Across nine pairs and roughly two decades of daily data the strategy produced +523.2 pips in total — about +4.7 pips per trade, less than the day's spread on some pairs — while at its worst sitting 9,632.1 pips below its own high-water mark. On the hourly chart: +865.5 pips across 325 trades, +2.7 pips per trade — smaller than one extra pip of slippage. Change the unstated exit and the sign flips. A 63.4% win rate that cannot reliably beat its own spread is not a strategy. It is a coin with better marketing.
The claim
RSI (the Relative Strength Index) measures how one-sided recent price movement has been, on a scale of 0–100. The popular teaching: below 20 a market is "oversold" and due a bounce, above 80 it is "overbought" and due a fall. The classic entry waits for RSI to leave the extreme — cross back above 20, or back below 80 — and trades the snap-back. What the videos rarely tell you: when to get out, what it costs, or what happened when someone actually ran it.
The rules we tested
Declared in code before any result was seen. The exit is almost never specified by the people teaching this, so we tested three reasonable readings and publish all three — no picking the winner afterwards.
RSI(14), Wilder smoothing, on bar closes
LONG when RSI crosses UP through 20 # leaves oversold
SHORT when RSI crosses DOWN through 80 # leaves overbought
ENTRY at the NEXT bar's open # no look-ahead
one open trade per pair; signals while in a trade are skipped
EXITS (three schemes, all published):
RSI-50 exit close at next open after RSI crosses 50,
time-capped at 30 bars
5-bar hold close at the open 5 bars after entry
10-bar hold close at the open 10 bars after entry
COSTS round-trip spread subtracted from every trade:
EURUSD/USDJPY 1.0 · GBPUSD/USDCHF/USDCAD/AUDUSD/NZDUSD 1.5
EURJPY 2.0 · GBPJPY 2.5 pips
Data: Yahoo Finance price history — the same source our live record's outcome scoring uses. Daily bars back to 1996, hourly bars for the last ~700 days (the source's hourly limit). 167 daily signals and 451 hourly signals in total.
Finding 1 — on the daily chart, it barely ever fires
RSI(14) on daily bars spends almost all its life between the famous levels. EURUSD closed with RSI past 20 or 80 on only a handful of days — and produced 13 entry signals in 23 years: one trade roughly every 21 months. Anyone teaching this on a daily chart is teaching a strategy that almost never trades.
| PAIR | YEARS OF DATA | TIME PAST 20/80 | SIGNALS | SIGNALS / YEAR |
|---|---|---|---|---|
| GBPUSD | 22.7 | 1.1% | 20 | 0.9 |
| EURUSD | 22.7 | 0.5% | 13 | 0.6 |
| USDJPY | 29.8 | 0.9% | 36 | 1.2 |
| USDCHF | 22.9 | 0.8% | 19 | 0.8 |
| USDCAD | 22.9 | 0.9% | 19 | 0.8 |
| AUDUSD | 20.2 | 0.7% | 16 | 0.8 |
| NZDUSD | 22.7 | 0.3% | 7 | 0.3 |
| GBPJPY | 22.7 | 0.8% | 26 | 1.1 |
| EURJPY | 23.5 | 0.3% | 11 | 0.5 |
"Time past 20/80" = share of days the RSI closed beyond either famous level.
Finding 2 — the win rate is seductive, and it means nothing
Both timeframes show a win rate near 63% with the RSI-50 exit. That is not evidence of an edge — it is the shape of the exit. Snap-back trades bank many small quick wins, and the losers are carried for up to 30 bars. High win rate, small average win, occasional deep loss: the profile every martingale-adjacent strategy wears. Our expectancy calculator will show you a 63% win rate losing money all day long once the loss size outgrows the win size.
Finding 3 — the results
Daily bars, nine pairs, pooled (30 years max span)
| EXIT | TRADES | WIN RATE | GROSS PIPS | NET PIPS | AVG/TRADE | PROFIT FACTOR | MAX DD | WORST RUN |
|---|---|---|---|---|---|---|---|---|
| RSI-50 exit | 112 | 63.4% | +699.7 | +523.2 | +4.7 | 1.0 | 9,632.1 | 7 |
| 5-bar hold | 140 | 53.6% | +3,172.6 | +2,955.6 | +21.1 | 1.3 | 2,203.8 | 8 |
| 10-bar hold | 125 | 51.2% | -459.0 | -653.5 | -5.2 | 1.0 | 7,096.4 | 8 |
All figures in pips, net of the disclosed spread unless marked gross. MAX DD = deepest peak-to-trough fall of the pooled cumulative curve. WORST RUN = longest streak of consecutive losers.
Pooled cumulative net pips, daily bars, all nine pairs, by exit scheme. Solid ink = RSI-50 exit · vermilion = 5-bar hold · dashed = 10-bar hold.
Hourly bars, nine pairs, pooled (~700 days)
| EXIT | TRADES | WIN RATE | GROSS PIPS | NET PIPS | AVG/TRADE | PROFIT FACTOR | MAX DD | WORST RUN |
|---|---|---|---|---|---|---|---|---|
| RSI-50 exit | 325 | 62.8% | +1,369.5 | +865.5 | +2.7 | 1.1 | 1,083.6 | 6 |
| 5-bar hold | 392 | 48.2% | -267.6 | -872.1 | -2.2 | 0.8 | 1,413.9 | 9 |
| 10-bar hold | 357 | 48.7% | -28.1 | -581.6 | -1.6 | 0.9 | 1,507.0 | 8 |
Same strategy, hourly bars, last ~700 days. Note the 5-bar hold — the best exit on daily data — is the worst here (-872.1 pips). That instability is the finding.
Per-pair breakdown, RSI-50 exit (daily)
| PAIR | TRADES | WIN RATE | NET PIPS | PROFIT FACTOR |
|---|---|---|---|---|
| GBPUSD | 16 | 81.2% | +832.5 | 1.4 |
| EURUSD | 9 | 66.7% | +1,100.3 | 3.2 |
| USDJPY | 20 | 45.0% | -1,272.2 | 0.7 |
| USDCHF | 13 | 76.9% | +2,139.5 | 14.1 |
| USDCAD | 11 | 54.5% | -396.7 | 0.7 |
| AUDUSD | 9 | 55.6% | -779.6 | 0.5 |
| NZDUSD | 7 | 85.7% | +574.3 | 4.7 |
| GBPJPY | 19 | 68.4% | +1,899.8 | 1.6 |
| EURJPY | 8 | 37.5% | -3,574.7 | 0.1 |
Per-pair breakdown, RSI-50 exit (hourly)
| PAIR | TRADES | WIN RATE | NET PIPS | PROFIT FACTOR |
|---|---|---|---|---|
| GBPUSD | 41 | 58.5% | +41.5 | 1.1 |
| EURUSD | 33 | 63.6% | -169.6 | 0.7 |
| USDJPY | 47 | 57.4% | -100.3 | 0.9 |
| USDCHF | 36 | 69.4% | +101.3 | 1.3 |
| USDCAD | 28 | 60.7% | +165.5 | 1.5 |
| AUDUSD | 27 | 66.7% | +86.9 | 1.2 |
| NZDUSD | 36 | 55.6% | -103.4 | 0.8 |
| GBPJPY | 36 | 61.1% | +305.7 | 1.3 |
| EURJPY | 41 | 73.2% | +537.9 | 1.8 |
Finding 4 — the profit depends on a choice nobody teaches
On daily bars the 5-bar hold made +2,955.6 pips and the 10-bar hold lost -653.5. On hourly bars the 5-bar hold lost -872.1. Same entry, same data — the sign of two decades of results flips on an exit rule the strategy's teachers never state. When an entry only makes money under one particular unstated exit, the entry is not where the money is. Mostly, there is no money.
What this test cannot tell you
- Prices are indicative. Yahoo's feed is not a broker feed; entries and exits at "the next open" assume fills no real account quite gets. Slippage and swap/rollover costs are not modelled — both would make these numbers worse.
- Spreads are estimates (disclosed above). If your broker is cheaper, the hourly RSI-50 line improves a little. It does not become a living.
- We tested the commonly taught version. RSI 14, levels 20/80, no filters. Someone's variant with different numbers may test differently — which is exactly the problem: the version being taught is the version nobody tested.
- Nine pairs overlap. Dollar pairs move together; the pooled curves double-count correlated moves, the same caveat our own live record carries.
- Small samples on daily bars. 112 trades in ~20 years is thin evidence for anything — including our own verdict. See why small samples lie.
What would change our mind
A pre-declared variant — exact parameters, exact exit, costs included — that survives on data it was not fitted to, across pairs, with enough trades to mean something. That is the bar we hold our own system to, in public, with real money. It is the bar any strategy you are taught should meet before it touches yours.