Markets › Stocks & ETFs · SPY ETF, daily closes, with dividends

RSI(2) Strategy on SPY: 32-Year Backtest of Larry Connors' Rules

Buy the S&P 500 after a sharp short-term drop, sell when it bounces: we backtested the RSI(2) rule popularized by Larry Connors on SPY from 1994 to 2026, with dividends, costs and a random control, with the rules fixed before any number was computed. One market and a last period already used by earlier tests: a result to confirm on new data, not a recipe to trade.

SPY · daily closes, with dividends · buy at the close when RSI(2) < 10 (or < 5) above the 200-day average, sell at the first close above the 5-day average · Protocol v1.0 plus the 8 Oct 2026 rules

Survived · Needs new data

Bought the panic for 32 years and passed every gate. The next trades have to be new.

BornFrozen 6 Nov 2026 (rsy_spec.md), before any RSI(2) value on SPY was computed
Verdict6 Nov 2026

Variants tried: 2 · Passed every gate: 1 · Best: 6 of 6 · Holdout opened: yes (already used)

Short answer: on SPY it survived our tests, which is not proof that it will keep working. The below-10 version of the RSI(2) rule popularized by Larry Connors, buying when the 2-day RSI fell below 10 above the 200-day average and selling at the first close above the 5-day average, made +0.62% a trade on average after costs from 1994 to 2026, with 76% winners, and passed all six of our gates. It is one market, our last period had been used by earlier tests, and on QQQ the same rule passed only 3 of 6 gates. As a whole strategy it grew less than holding SPY, with far smaller falls.

00The verdict in three lines

  • Does the RSI(2) strategy work? On SPY it survived our tests, which is not proof that it will keep working: buying when RSI(2) fell below 10 above the 200-day average and selling at the first close above the 5-day average made +0.616% a trade on average after costs on 257 trades, with 75.9% winners. It passed all six of our gates.
  • It beat chance, not the market. It picked better dips than random buys in an uptrend (+0.316% a trade), but, invested only 10.5% of the time, it grew ×9.76, against ×29.06 for holding SPY, with a largest fall of -14.8% against -55.2% (at daily closes, open losses included).
  • Not a promise. One market, and our last period had been used by earlier SPY tests, so only new data can confirm it; on QQQ the same rule passed only 3 of 6 gates. Under our protocol a survivor goes to forward testing before anyone should risk money. The stricter version (RSI(2) below 5) did even better per trade but had too few trades for our rules.

01The RSI(2) strategy

The RSI measures how far recent gains outweigh recent losses, from 0 to 100. With a period of 2 it gives the latest day's change half the weight and older days less and less, so it reacts fast: a reading below 10 usually follows two or more down days (219 of our 257 entries); in the other 38 the entry day was the only down day, after a flat or barely up day that often followed an earlier drop (28 of them). Larry Connors and Cesar Alvarez made it popular in Short Term Trading Strategies That Work (2008): buy the S&P 500 when it is short-term oversold but still in a long-term uptrend, and sell into the bounce.

  • Buy at the close when SPY closes above its 200-day average and its 2-day RSI is below 10 (RS2-10) or below 5 (RS2-5).
  • Sell at the first close above the 5-day average. No stop, no target, no time limit.

It is one of the best-known rules in trading, and versions of it are sold with hidden rules. We test only the published one, with every rule fixed before the run. Not new on this site: an hourly RSI(2) rule on ES futures, with extra rules of our own (trading hours, a stop, a time limit and a short side), and the RSI(2) versions in our forex study were buried. Neither of those was this daily rule on the S&P 500.

02How we made the rules mechanical

  • RSI(2): Wilder's, on daily closes: the average gain and the average loss of the last daily changes with a smoothing of one half, RSI = 100 − 100 / (1 + gain / loss). Averages: the plain mean of the last 200 and the last 5 closes.
  • Entry and exit at the close of the signal day, as in Connors' tests; we also show buying and selling at the next morning's open. One position at a time; after an exit, the next entry can come from the next day.
  • Dividends are reinvested: a trade held over an ex-dividend day earns the dividend. Signals start on 24 January 1994, the 250th day of the data, as the specification fixes (the 200-day average exists from November 1993).

03How we tested it

SPY daily prices and dividends from January 1993 to 20 October 2026 (Yahoo Finance; our total return with dividends matches Yahoo's adjusted close within 0.1% over the whole period). Costs: 0.04% of the price per round trip, as in our other SPY tests, with 0.10% shown too. Unit: net % per trade. Periods: 1994 to 2005, 2006 to 2015, and a holdout from 2016 already used by five earlier SPY tests. First-period bar t ≥ 2.5, because RSI(2) has been tested before on the site. Control: buy at random on days when SPY is above its 200-day average and below its 5-day average (any dip in an uptrend), with the same exit and about the same number of trades on average, 500 times. Engine check: 26 checks, among them hand-worked days, an independent re-implementation that matched every trade, and 4 deliberate rule changes that the test had to catch (rsy_selftest_result.txt).

04Results: does the RSI(2) strategy work on SPY?

VariantBuy whenTradesWin rateGross per tradeNet per tradeSum of tradesProfit factorVerdict
RS2-10RSI(2) below 1025775.9%+0.656%+0.616%+158.3%2.91Survivor
RS2-5RSI(2) below 512681.0%+0.794%+0.754%+95.0%3.29Buried
Variant1994 to 2005 (trades)2006 to 2015 (trades)Holdout* 2016 to Oct 2026 (trades)t, first periodPF, second periodPF, holdout
RS2-10+0.942% (92)+0.304% (71)+0.532% (94)6.741.632.61
RS2-5+1.195% (38)+0.531% (39)+0.589% (49)4.872.182.49

* The holdout years had already been used by our earlier SPY tests.

RS2-10 made money in every period: +0.942% a trade from 1994 to 2005, +0.304% from 2006 to 2015 and +0.532% since 2016. The middle decade was the weakest. RS2-5 took only the deepest drops and made more per trade, but with 38, 39, 49 trades in the three periods it falls short of our minimum of 50 in each.

05RSI(2), or any dip?

VariantTradesReal net per tradeRandom dips, medianRandom dips, 5th to 95thPercentile (95 needed)
RS2-10257+0.616%+0.316%+0.206% to +0.432%100.0
RS2-5126+0.754%+0.333%+0.145% to +0.514%100.0

Buying any dip in an uptrend made money too: +0.316% a trade in the median random run, because SPY rose over these years and short dips tended to recover. The RSI(2) rule made about twice that, and better than every one of the 500 random runs. The two-day extreme picked better dips than chance.

06RSI(2) against buy and hold

×1×2×5×10×201995200020052010201520202025validationholdout*RS2-10, with T-bill interest while outBuy and hold SPY

Growth of $1 from January 1994, log scale. The strategy earns 3-month T-bill interest while out of the market and pays the cost on every trade; buy and hold reinvests dividends.

From January 1994GrowthPer yearLargest fall (at daily closes, open losses included)VolatilityTime invested
RS2-10, T-bills while out×9.767.2%-14.8%6.3%10.5%
RS2-5, T-bills while out×5.525.4%-14.1%4.9%5.0%
Buy and hold SPY×29.0610.8%-55.2%18.7%100.0%
CrashRS2-10RS2-5Buy and hold
2000-02 dot-com+13.7%+8.4%-47.5%
2008-09 financial crisis+3.4%+3.4%-55.2%
2020 Covid-4.1%-4.1%-33.7%
2022 rate hikes-1.9%-1.4%-24.5%

Per trade it is strong; as a portfolio it lagged. Out of the market nearly nine days in ten, it grew 7.2% a year against 10.8% for holding SPY. In return its largest fall, at daily closes with open losses included, was -14.8%, in the summer of 2011, against -55.2% for holding. It ended both the dot-com crash and the 2008 crisis up (+13.7% and +3.4%), mostly from T-bill interest: it made only 5 trades in the first and 1 in the second, out of the market mostly because SPY was below its 200-day average.

07How solid is it?

VariantNet per tradeAt 0.10% costNext-open fillsSum without the 10 bestSum without the 20 bestMedian days heldLongestWorst open loss at a close (open positions included)
RS2-10+0.616%+0.556%+0.543%+125%+100%311-14.0%
RS2-5+0.754%+0.694%+0.721%+60%+39%311-14.0%

Two and a half times the cost barely changes it, and buying and selling at the next morning's open instead of the close kept +0.543% a trade. For RS2-10, removing the 10 or the 20 best trades leaves most of the result (79% and 63% of the sum); RS2-5 keeps 41% without its 20 best. The weak spot is the lack of a stop. The worst open loss (open positions included) came in the trade bought on 27 July 2011, just before the August sell-off: it was 14.0% down at a close, recovered only part of that, and was sold at a 10.2% loss, the worst trade of both versions.

08By year

YearRS2-10: sum of trades (trades)RS2-5: sum of trades (trades)
1994-0.54% (4)no trade
1995+7.54% (6)+3.12% (3)
1996+4.73% (12)+3.06% (7)
1997+25.74% (14)+14.84% (5)
1998+11.43% (8)+7.52% (4)
1999+13.75% (13)+7.06% (6)
2000+8.49% (7)+3.36% (3)
2003+5.91% (6)+3.59% (3)
2004+5.28% (10)+1.32% (2)
2005+4.36% (12)+1.54% (5)
2006+1.56% (7)+1.09% (4)
2007-1.35% (8)+4.78% (4)
2009+8.83% (6)+3.92% (2)
2010+2.86% (5)+4.12% (3)
2011-6.64% (7)-5.55% (5)
2012+4.95% (12)+2.18% (8)
2013+4.20% (6)+2.77% (3)
2014+1.91% (10)+0.05% (4)
2015+5.30% (10)+7.34% (6)
2016+3.44% (7)+2.26% (3)
2017+5.81% (8)+3.40% (4)
2018-6.12% (9)-6.10% (6)
2019+1.57% (7)+1.02% (3)
2020+2.85% (7)+1.12% (5)
2021+13.64% (11)+9.83% (6)
2022-2.97% (2)-2.48% (2)
2023+3.39% (10)+1.66% (5)
2024+13.73% (14)+6.39% (6)
2025+5.69% (8)+5.32% (5)
2026 (to 20 Oct)+8.96% (11)+6.42% (4)

RS2-10 lost in 5 of its 30 years with trades: 1994, 2007, 2011, 2018 and 2022. The three years with no RS2-10 trade, 2001, 2002 and 2008, are years when SPY spent little or no time above its 200-day average.

09Verdict by variant

VariantCauseGates failedVerdict
RS2-10Passed every gate–Survivor
RS2-5No proven edgegate 2 (trades)Buried
VariantTrades1. PF ≥ 1.2 in validation2. ≥ 50 trades in each period3. t ≥ 2.5 on development4. Above the 95th percentile of random dips in an uptrend5. Positive without the 10 best trades6. Holdout net positive (already used)
RS2-10257passpasspasspasspasspass
RS2-5126passfailpasspasspasspass

RS2-5 failed only the trade count: it was positive in every period and above all 500 random runs over the whole sample, but our rules need at least 50 trades in each period before a period counts. What would change our mind about RS2-10: a record on new SPY data, with the rule unchanged, that contradicts the backtest. The data after 20 October 2026 has not been looked at, and no forward test is running yet.

On QQQ (added 7 Nov 2026): the below-10 version, unchanged, made +0.49% a trade on QQQ from 2000 to 2026 and was positive in every period, but passed only three of six gates: too few trades from 2000 to 2005, after the dot-com crash, a t-statistic of 2.32 in those years, under our 2.5, and a smaller edge over random dips (93rd percentile; 95 needed) (RSI(2) on QQQ). The two ETFs often dip on the same days, so this is not an independent test either way.

On the DAX (added 13 Nov 2026): the below-10 version, unchanged, made +0.15% a trade on the German DAX index from 1988 to 2026, lost from 2006 to 2015, and did no better than random dips in an uptrend (45th percentile; 95 needed), so it passed three of six gates (RSI(2) on the DAX). The DAX shares far fewer of its dips with SPY than QQQ does: on a more independent market the edge did not carry over.

TWhat this shows, and what to take into your own tests

What the results show

  • The RSI(2) rule popularized by Larry Connors, in its below-10 version (buy at the close when RSI(2) is below 10 and the price is above its 200-day average, sell at the first close above the 5-day average), made +0.616% a trade on average after costs on 257 trades from 1994 to 2026, with 75.9% winners, and passed all six of our gates on SPY.
  • It picked better dips than chance: random buys on any dip in an uptrend, with the same exit, made +0.316% a trade, and the real rule beat all 500 random runs.
  • As a whole strategy it did not beat holding SPY: it was invested only 10.5% of the time and grew ×9.76 against ×29.06, but its largest fall, measured at daily closes with open losses included, was -14.8% against -55.2%.

What remains unknown

  • Whether it keeps working on new data. Our holdout years had already been used by five earlier SPY tests, so they cannot confirm it independently, and this is the sixth strategy we have tested on the same SPY file.
  • How much of it was known in advance. The book that made the rule popular, Connors and Alvarez's Short Term Trading Strategies That Work, appeared in 2008, after the years of our first period: before 2008 it made +0.812% a trade (107 trades), from 2008 on +0.476% (150 trades, t 3.70), still positive but weaker.
  • Other markets: on QQQ the same rule was weaker (3 of 6 gates); others are untested. Other thresholds or exits: we tested the two commonly quoted thresholds and the published exit, nothing else.
  • Live fills: we buy and sell at the close, which you only know at the bell; buying at the next open kept most of the result here.

Why it passed

It was positive in all three periods, in 25 of its 30 years, and far above the random dips in an uptrend. Costs mattered little: each trade made about +0.66% on average before costs, and at 0.10% a round trip, more than our 0.04%, it still made +0.556% a trade. The weakest point is the validation decade, 2006 to 2015: its profit factor passed (1.63), but its t-statistic was only 1.37.

What you can apply to your own tests

  • Compare a dip-buying rule with random dips, not with zero: on SPY, random buys on dips in an uptrend made +0.316% a trade in the median run, and even the 5th-percentile run was positive (+0.206%).
  • Look at the strategy as a whole, not only per trade: a 76% win rate here still grew less than simply holding.
  • Judge a strategy by rules you can see. A result you cannot reproduce is a claim, not evidence.

A note on the numbers: drawdown figures are measured on closed trades unless a table says it includes open losses. Open losses inside a trade are not counted in a closed-trade drawdown, so real account risk is higher, especially for systems with no stop. Backtests are not live trading.

FAQCommon questions

Does the RSI 2 strategy work?

On SPY it survived our backtest: 257 trades from 1994 to 2026 at +0.62% a trade on average after costs, positive in all three periods and better than random dips in an uptrend in all 500 runs. Our last period had been used by earlier tests and no forward test is running yet, so only new data can confirm it.

What is the RSI 2 strategy of Larry Connors?

Buy the S&P 500 at the close when its 2-day RSI is below 10 (or 5) and it is above its 200-day moving average; sell at the first close above the 5-day moving average. Larry Connors and Cesar Alvarez published it in Short Term Trading Strategies That Work (2008).

What is the win rate of the RSI 2 strategy?

About 76% on SPY in our test, and 81% with the stricter threshold of 5. A typical trade lasted 3 trading days.

Does the RSI 2 strategy beat buy and hold?

Not in total return: invested only 10% of the time, it grew 9.8 times from 1994 against 29.1 for holding SPY with dividends. Its largest fall, at daily closes with open losses included, was 15%, against 55% for holding.

How was the RSI 2 strategy tested?

On SPY daily closes with dividends, 1994 to 2026: rules written and dated before the data was run, 0.04% of costs on every trade, development, validation and holdout periods (the holdout already used), a control of random buys on dips in an uptrend, and every variant reported. Read the protocol.

10Check our arithmetic

Frozen specificationWhy this test, what was looked at before, the indicators, the rules, costs, periods, gates and control, dated before any RSI(2) value on SPY was computed.
rsy_spec.md
CodeThe engine (its readings of the rules at the top), the independent re-implementation, the self-test with the mutation check, and the run. To rerun it: put spy_daily.csv (date,open,high,low,close,adj_close,volume; 29 January 1993 to 20 October 2026, from Yahoo Finance), spy_dividends.csv (date,dividend) and FRED's DTB3 series as dtb3_fred_raw.csv in a folder named data_spy next to the scripts (the first 16 characters of their SHA-256 hashes are in the specification), then run node rsy_selftest.js and node rsy_run.js. We do not republish the price files.
rsy_lib.js · rsy_ref.js · rsy_selftest.js · rsy_run.js
Shared codeThe SPY loader (sma200_lib.js) and the helper libraries it loads.
control_audit_lib.js · gh_lib.js · hourly_lib.js · ma_lib.js · rsi2_protocol.js · sma200_lib.js
ResultsThe self-test, the console output of the run and all numbers.
rsy_selftest_result.txt · rsy_results.txt · rsy_summary.json
Trade logs (CSV)Every trade: entry and exit close, trading days held, gross and net %, worst open loss.
RS2-10 · RS2-5

Code provenance: our own code, written from the specification.

11Data notes

Source. Yahoo Finance daily prices of SPY, an ETF that tracks the S&P 500, and its dividends; FRED for the 3-month T-bill rate. Indicators use the raw closes; returns include dividends. Fills at the close (and, as a check, at the next open); the cost is a fixed 0.04% for 32 years, which is low for the years before 2001, when US stock prices still moved in eighths and sixteenths of a dollar; at 0.10% a round trip RS2-10 still made +0.556% a trade. One market, one data source, the published rule only, a holdout already used.

12Corrections

13 Nov 2026, addition: a paragraph in section 09 and a related link pointing to the same rules on the DAX. No result changed. 11 Nov 2026, corrections after a review: section 01 said that RSI(2) looks only at the last two days and that a reading below 10 means two down days in a row; it weights the latest change by a half and older changes less, and 38 of the 257 entries came after a single down day. The largest falls of the whole-strategy curves are now labelled as measured at daily closes, open losses included. The short answer no longer says "yes": the rule survived our tests on one market, with a last period already used, which is not proof that it will keep working. Also corrected: the subtitle said "a sharp two-day drop", as section 01 did; section 00 and the FAQ also said "yes", and +0.62% is an average per trade, not the result of each trade; section 02 said that signals start once the 200-day average exists (they start on the 250th day, 24 January 1994, as the specification fixes); section 07 implied that the worst trade recovered (it was sold at a 10.2% loss); section 09 said that RS2-5 beat the control in every period (the control was run on the whole sample); the below-10 version is no longer called Connors' published rule. Also added or made precise: the gains through the 2000-2002 and 2007-2009 crashes came mostly from T-bill interest; the result before and after the 2008 book; the three QQQ gates; the share kept without the best trades; the cost before 2001; how to rerun the test; no forward test is running yet. No result changed. 7 Nov 2026, addition: a paragraph in section 09 and a related link pointing to the same rules on QQQ. No result changed. 6 Nov 2026, wording: the sum of trades in the results table is shown to one decimal, and the worst-trade sentence in section 07 now says that the figure includes open losses. No result changed.

+More tests and guides