The Test Bench › Mean reversion › RSI › Study 013

Does RSI Work? RSI 30 and 70 Tested on S&P 500 Stocks

Does an oversold RSI predict a bounce? We tested 128,221 signals across 483 S&P 500 stocks, 2006 to 2026.

STUDY 013

The short answer

When RSI(14) fell below 30 in a stock above its 200-day average, the stock rose a median 1.67% over the next 20 days, 0.65 percentage points more than on an ordinary day, a gap the test could not confirm.

When RSI(14) rose above 70 in a stock below its 200-day average, the stock fell a median 0.17%, 1.60 percentage points less than on an ordinary day.

Three of the eight comparisons we ran showed a clear gap; the other five did not.

RSI(14) below 30 was not followed by a clear reboundRSI(14) below 30 means the stock has fallen hard over the last three weeks.In stocks above their 200-day average, the next 20 days were 0.65 percentage points better than an ordinary day. The gap did not meet our test for a clear difference.In this test, a drop below 30 did not reliably predict a bounce.
RSI(14) above 70 was followed by a weaker 20-day returnRSI(14) above 70 means the stock has risen hard over the last three weeks.In stocks below their 200-day average, the next 20 days were 1.60 percentage points worse than an ordinary day.20 days later the stock was higher 49% of the time, against 57% on ordinary days.
RSI(14) below 30 fired far less often than RSI(2)A stricter signal finds fewer dips, so a rule built on it trades less.3,352 oversold signals in stocks above their 200-day average. RSI(2) below 10 gave 67,627, about 20 times as many. In our backtest RSI(14) ranked fourth of four entries and was invested 0.5% of the time.Fewer signals meant fewer trades: a median 6 per stock in the backtest, against 132 for RSI(2).

How RSI(14) is calculated, with worked examples: RSI explained. How it is used in mean reversion rules: mean reversion trading explained. The same test for RSI(2): RSI(2) study.

An event study: it measures what followed each signal. No entry, exit, position size or trading cost is simulated; the mean reversion backtest of these signals is a separate study.

Read the full study ↓

Full research: method, results and limitations

Every table and assumption behind the summary above

After RSI(14) fell below 30

Over the 40 trading days before the signal, stocks above their 200-day average had fallen a median 5.0% to 7.1%. Over the next 20 days they rose a median 1.67%, against +1.02% on an ordinary day; the gap was not clear.

After RSI(14) rose above 70

Over the 40 trading days before the signal, stocks below their 200-day average had risen a median 8.8% to 13.7%. Over the next 20 days they fell a median 0.17%, against +1.43% on an ordinary day: a gap of 1.60 percentage points.

Interpretation

The gaps are small next to the usual spread of returns, the dashed lines in the charts above: the largest clear gap was 1.60 percentage points over 20 days, measured across many thousands of signals. A single trade can land far from it.

How we tested it

Question: after a stock’s RSI(14) crosses into or out of its zones, does its median return over the next 20 trading days differ from ordinary days for the same stocks in the same trend?

PartDefinition
IndicatorRSI(14) on daily closes, Wilder’s smoothing (the app’s RSI)
Entering a zoneThe first close below 30 (or above 70) after a close outside it
Leaving a zoneThe first close back above 30 (or back below 70)
MeasuredFrom the signal day’s close, over the next 20 trading days
Compared withEvery eligible day of the same stocks on the same side of the 200-day average
Stocks483 current S&P 500 members, 2006 to 2026, price returns

Leaving oversold happens on an up close, so the up day itself is outside the measured window.

The design was set on 6 October 2026 in our internal study record, before any return was read. The record is internal, not a public preregistration. A logged preview on part of the data was run after the “leaving the zone” signals were added; no figure from it is used here.

The 128,221 signals are not 128,221 independent observations: signals repeat in the same stock, the 20-day windows overlap, and stocks move together. The 95% intervals come from a calendar-block bootstrap that resamples whole stretches of the calendar, rerun with several block lengths and designs. A gap is called clear when every interval excluded zero on the same side. The eight comparisons are not adjusted for being tested together. Signal days are part of the ordinary-day pool, as in the app’s event study, which makes each gap slightly smaller.

Survivorship bias. This is not the historical index. It is today’s S&P 500 members projected backwards, so companies that failed or left the index after a deep fall are missing. That can materially favour a signal that buys falls.

Limitations

How to reproduce this

In the Events panel, use the default RSI (period 14), build the condition “crosses below 30”, set the horizon to 20 days and the trend precondition to above (or below) the 200-day average, and run it on your own stocks on daily bars.

Appendix

All results

SignalStocksSignal daysMedian 20-day returnOrdinary daysDifference95% intervalResult
Enters oversold (below 30)Above 200-day3,352+1.67%+1.02%+0.65 points−0.06 to +1.25not clear
Enters oversold (below 30)Below 200-day19,394+1.94%+1.43%+0.51 points−0.08 to +1.08some settings
Leaves oversold (back above 30)Above 200-day3,863+1.32%+1.02%+0.30 points−0.48 to +0.89not clear
Leaves oversold (back above 30)Below 200-day18,869+1.56%+1.43%+0.13 points−0.40 to +0.68not clear
Enters overbought (above 70)Above 200-day39,325+0.63%+1.02%−0.39 points−0.59 to −0.19clear
Enters overbought (above 70)Below 200-day2,036−0.17%+1.43%−1.60 points−2.85 to −0.57clear
Leaves overbought (back below 70)Above 200-day39,128+0.83%+1.02%−0.19 points−0.40 to 0.00some settings
Leaves overbought (back below 70)Below 200-day2,254−0.09%+1.43%−1.52 points−2.96 to −0.35clear

Checks set in advance

Checks set in advance, after 5 daysAbove the 200-day averageBelow it
Enters oversold (below 30)+0.50 points (+0.29 to +0.75)+0.10 points (−0.21 to +0.38)
Leaves oversold (back above 30)−0.02 points (−0.32 to +0.24)−0.13 points (−0.51 to +0.19)
Enters overbought (above 70)−0.20 points (−0.27 to −0.13)−0.75 points (−1.27 to −0.38)
Leaves overbought (back below 70)−0.02 points (−0.10 to +0.06)−0.49 points (−0.98 to −0.11)

For entering oversold (below 30) in stocks above the 200-day average, the gap at 20 days was as large as at 5 days but less certain, so the test could not confirm it.

Compared with RSI(2)

At the 5-day checkpoint both studies share, the oversold gap in stocks above their 200-day average was +0.50 points for RSI(14) and +0.19 points for RSI(2); the intervals overlap. Day 5 is a secondary check for RSI(14). The RSI(2) study.

In the backtest

In the mean reversion backtest, which buys the dip above the 200-day average and sells after the first close above the 5-day average, RSI(14) came fourth of four entries, with a median total return per stock of +5% over 2006 to 2026.

Using this research. The analysis, tables and figures on this page are GU Analyser Ltd’s own work, published under a Creative Commons BY-NC 4.0 licence. You are welcome to quote it, cite it and build on it, with credit and a link. Suggested credit: GU Analyser, The Test Bench, Study 013, linking to guanalyser.com/test-bench/rsi-oversold-overbought/. For commercial use, ask us at hello@guanalyser.com.

Rebuild the test

Build the RSI condition in the Events panel, set the trend precondition and the horizon, and measure what followed it on your own stocks.

Create a free account and run your own tests → or read how RSI is calculated →

The method: how an event study works

These are historical analyses. They are neither advice nor forecasts. They describe what happened on past data under stated, simplified assumptions. Past results do not prove what will happen next, and nothing in the Test Bench is a recommendation to buy or sell an investment. GU Analyser is an analytical and educational tool — no money is ever traded here.