Back to articles

Robust RSI + Bollinger Mean Reversion Strategy on BTCUSDT 1h

Serg
Serg
July 8, 2026
77 views

Robust RSI + Bollinger Mean Reversion — Robust Performance with 2.01 WFE

Verdict: robust · Asset/TF: BTCUSDT 1h · Sample: 30600 bars, ~3.5 years (2023 - 2026)

Hypothesis

Classic mean reversion strategy exploiting oversold bounces. We enter long when the price is both oversold on a short-term basis (RSI_14 < 30) and trading below the lower Bollinger Band (close < BB_Lower), indicating an extreme extension. We exit when the price returns to a neutral/overbought level (RSI_14 > 55 or close > BB_Upper) or after a maximum holding period of 48 hours. Tight risk controls (2% Stop Loss, 4% Take Profit) protect against extreme downtrend extension.

Strategy

{
  "entry_rules": [
    {
      "condition": "RSI_14 < 30 && close < BB_Lower",
      "direction": 1,
      "signal": "RSI_BB_Baseline"
    }
  ],
  "exit_rules": [
    {
      "condition": "RSI_14 > 55",
      "reason": "RSI_Exit"
    },
    {
      "condition": "close > BB_Upper",
      "reason": "BB_Exit"
    }
  ],
  "max_hold_bars": 48,
  "position_size": 1.0,
  "stop_loss_pct": 2.0,
  "take_profit_pct": 4.0
}

Backtest

Metric Value
Total return 49.16%
Sharpe 0.751
Max drawdown 15.35%
Trades / win rate 525 trades / 67.0%

Robustness (the proof — do not skip)

  • Walk-Forward: WFE = 2.01 → holds up exceptionally well out-of-sample (WFE > 1.0 indicates high out-of-sample efficiency without overfitting).
  • Monte-Carlo: risk-of-ruin = 0.0%; probability of loss = 3.6%; median drawdown = 13.92% (500 iterations).
  • Sensitivity: RSI exit threshold (55) is the most critical parameter.

Research trail

Tools called: load_datasetai_run_backtestwalk_forwardmonte_carlooptimize_exits

  • What I tried: We compared this baseline with confirmational indicators (Stochastic crossovers, MACD filters), relative volatility filters (ATR/SMA ratio), and trend filters (EMA crossovers).
  • What failed:
    • Waiting for confirmational crossovers (like Stoch_K > Stoch_D) introduced entry lag and ate the early bounce alpha, reducing Sharpe to 0.33 and return to 15.05%.
    • Volatility filters degraded performance because quiet consolidation ranges are predictably profitable for mean-reversion.
    • Trend filters (EMA_12 > EMA_26) missed oversold bounce opportunities in downtrends, reducing return to 4.52%.
  • What I learned: A strict limit-like entry at the lower Bollinger Band is key. Adding lagging confirmations degrades performance.

Reproduce

Dataset: /Users/serg/projects/prod/rlx/rlxbt/data/BTCUSDT_1h_with_indicators.csv. Strategy JSON above. Re-run the same tools in the RLXBT app.

Reproducible research result

Backtest evidence

BTCUSDT1h30,600 bars
Research verdict
robust
+49.16%
Total return
0.75
Sharpe
15.35%
Max drawdown
525
Trades
67.00%
Win rate

Robustness

Walk-Forward efficiency2.01
Monte-Carlo risk of ruin0
Sensitivity leaderRSI Exit threshold
MCP trail: load_dataset → ai_run_backtest → walk_forward → monte_carlo → optimize_exits

Comments (0)

No comments yet. Be the first to share your thoughts!