← All graded classics

Connors RSI-2

The famous ultra-short RSI dip-buy from 'Short Term Trading Strategies That Work'.

F

The claim

A 2-period RSI under 10 marks a violent short-term dip that tends to snap back within days. One of the most backtested setups in retail trading.

Where it comes from

Larry Connors and Cesar Alvarez, 'Short Term Trading Strategies That Work' (2008). Originally a daily-bar S&P strategy filtered by the 200-day moving average.

The exact rule we graded

Long while RSI(2) < 10, short while RSI(2) > 90, on 1-hour candles. Exits: 10-bar time exit, 3% stop loss.

The honest verdict

FAILS the gate
Net expectancy
-3.8bp
OOS trades
12,141
Win rate
47.8%
Reward:risk
1.05
  • OOS net expectancy > 0
  • Clears the cost hurdle
  • Robust, not lucky
  • Survivable drawdown
  • Not overfit
Per-asset OOS expectancy
SOL
+4.8bp
LINK
+0.6bp
BTC
+0.3bp
BNB
-2.2bp
AVAX
-5.2bp
ETH
-5.2bp
XRP
-7.5bp
DOGE
-14.7bp
Permanent verification record →Verified — run on our engine + data

Live forward test

since 2026-07-11 — win or lose

The backtest above is history. Since publication, this exact spec also runs in our nightly forward-test harness (the same one behind /forward-tests): only trades entered after publication count, open positions are never force-closed, and the record publishes either way.

Forward trades
131
Net expectancy
-5.7bp
Win rate
48.9%

Honest port notes

  • Connors' original only trades with the 200-period trend. That filter was inexpressible when we first graded this page; since the 2026-07-11 spec-language upgrade it isn't, so we measured it: adding the trend filter improves out-of-sample expectancy from −3.8bp to −0.7bp across 6,328 trades. The filter is worth +3.1bp per trade — Connors was right to insist on it — and the filtered version still doesn't clear the fee bar. Public verify id: 113d9813-0a53-43c1-8c50-9cf67c649b45.
  • His other refinement — exiting on a close above the 5-period moving average — remains the one piece our exit engine can't express (exits are stop/target/time/trail), so both graded versions use the fast time exit.
  • The original was built for daily S&P bars, not 1-hour crypto. Same signal, much harsher venue — that's part of what the grade measures.
The exact spec, as graded (JSON)
{
  "name": "Connors RSI-2",
  "universe": [
    "BTC/USDT:USDT",
    "ETH/USDT:USDT",
    "SOL/USDT:USDT",
    "BNB/USDT:USDT",
    "XRP/USDT:USDT",
    "DOGE/USDT:USDT",
    "LINK/USDT:USDT",
    "AVAX/USDT:USDT"
  ],
  "risk": {
    "risk_per_trade_pct": 1,
    "leverage_cap": 3,
    "max_daily_loss_pct": 5,
    "max_dd_halt_pct": 25
  },
  "sleeves": [
    {
      "name": "main",
      "timeframe": "1h",
      "entry": {
        "type": "rule",
        "logic": "all",
        "long": [
          {
            "indicator": "rsi",
            "period": 2,
            "op": "<",
            "value": 10
          }
        ],
        "short": [
          {
            "indicator": "rsi",
            "period": 2,
            "op": ">",
            "value": 90
          }
        ]
      },
      "exit": {
        "stop_loss_pct": 3,
        "time_exit_bars": 10
      }
    }
  ]
}

Every strategy graded on identical terms: 1-hour candles, 8 liquid USDT perpetuals (BTC, ETH, SOL, BNB, XRP, DOGE, LINK, AVAX), ~6 years of data with a chronological train/test split, real cost hurdle, 1% risk-per-trade sizing, 3x leverage cap. All numbers are out-of-sample (test window only).

Run YOUR version of this strategy
Different thresholds, timeframe, or filter? Paste your exact rules or code and see if your variant survives the same gates.
Grade it free →

A Grade is a historical, out-of-sample statistical measurement — not investment advice, a prediction, or a guarantee. Most strategies fail; a passing grade can stop working as markets change. Risk disclosure