Our own RSI bounce, 18 runs: it wins more often than it loses, and loses to holding every time

A teardown of a strategy from our own library. Every number in the results table is the tool's saved output; the reading at the end is ours and is marked as such.

2026-09-09 · our own library entry, run as published

The claim. "RSI Oversold Bounce" sits in this site's official library with the description "Buys RSI(14) dips below 30 and exits on recovery above 60. The classic mean-reversion starter, kept honest with a tight stop." Its published card shows AAPL on 1-hour bars over six months: 9 trades, +9.56% against +21.05% for holding, and the tool's verdict on it has always been Likely unreliable — nine trades is not a sample. Teardown #3 tested our trend-following seed; this one tests its mirror image, the mean-reversion seed, and the first question is what happens to "unreliable" once the rule gets enough trades.

What we ran. The library entry's code, unchanged: long with 100% of equity when RSI(14) closes below 30, flat when it closes above 60, 2% stop-loss, 6% take-profit, no costs modelled (the cost panel re-runs the trades at 5–50 bps afterwards). Three axes: the published timeframe on eight large US names over the two years our feed provides for hourly bars; the same names on daily bars over 25 years; and the two largest crypto perpetuals on hourly bars over the ~7 months the server fetch returns. Anyone can reproduce the stock runs on the free tier from the library card.

Results — 18 runs.

RunTradesWin rateMax DDStrategy returnBuy & holdVerdict flagCost panelBreak-even cost
AAPL · 1h · 2024–20263953.8%13.94%+26.00%+46.20%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs29.7 bps
SPY · 1h · 2024–20263080.0%5.75%+31.54%+41.40%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs45.9 bps
QQQ · 1h · 2024–20263860.5%9.85%+27.44%+51.08%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs32.0 bps
NVDA · 1h · 2024–20264247.6%19.44%+55.71%+119.29%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs52.9 bps
MSFT · 1h · 2024–20264548.9%14.85%+11.26%+23.59%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs11.9 bps
AMZN · 1h · 2024–20264742.6%18.47%−9.03%+48.30%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs— (loses at 0)
JPM · 1h · 2024–20263363.6%12.19%+27.08%+65.92%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs36.4 bps
XOM · 1h · 2024–20263748.6%21.97%−5.29%+39.75%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs— (loses at 0)
AAPL · 1d · 2001–20265743.9%43.54%+43.82%+105,363.87%UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with cautionSurvives realistic costs31.9 bps
SPY · 1d · 2001–20264940.8%25.88%+27.06%+638.44%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs24.5 bps
QQQ · 1d · 2001–20264459.1%19.35%+262.29%+2,204.36%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs148.2 bps
NVDA · 1d · 2001–20268840.9%45.18%+48.52%+81,227.45%UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with cautionThin margin over costs22.4 bps
MSFT · 1d · 2001–20265648.2%14.22%+217.44%+1,788.87%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs104.0 bps
AMZN · 1d · 2001–20265545.5%16.49%+161.06%+68,928.04%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs87.9 bps
JPM · 1d · 2001–20267143.7%30.71%+89.98%+917.42%UNDERPERFORMS_HOLD · Read with cautionSurvives realistic costs45.3 bps
XOM · 1d · 2001–20266741.8%48.50%+43.25%+297.19%UNDERPERFORMS_HOLD · HIGH_DRAWDOWN · Read with cautionSurvives realistic costs26.9 bps
BTC/USDT · 1h · Feb–Sep 20264355.8%22.60%−4.59%+19.12%UNDERPERFORMS_HOLD · Read with cautionDies at realistic costs— (loses at 0)
ETH/USDT · 1h · Feb–Sep 20265058.0%15.40%+21.18%+28.16%UNDERPERFORMS_HOLD · Read with cautionThin margin over costs19.2 bps

All 18 carry the tool's UNDERPERFORMS_HOLD and NO_COSTS flags; AAPL, NVDA and XOM on daily bars also carry HIGH_DRAWDOWN. None carries a sample-size flag, and none ended with an open position at the last bar. The verdict headline is Read with caution on every one of the 18 — the card's Likely unreliable does not survive contact with a real sample.

The tool's own words.

Our reading (not the tool's).

  1. "Unreliable" was about the sample, not the rule. Nine trades on the card; 30 to 47 per name over two years of hourly bars, 44 to 88 over 25 years of daily bars. With a sample, the rule turns out to be what its description says — a bounce that wins more often than it loses (15 of 18 runs profitable, win rates of 41–80%) and, on 11 of 18 runs, one that keeps its profit past a 25 bps round trip. That is a better-behaved rule than the two crossover strategies we tested before it. It still loses to holding on all 18.
  2. Why it loses: it is barely ever in the market. By construction the strategy owns nothing until RSI(14) prints below 30, and sells on the first print above 60 or at ±2%/6%, whichever comes first. On names that spent 25 years mostly rising, that means sitting in cash through most of the rise; the gap to holding is not a fee or a bad exit, it is absence. SPY on hourly bars is the cleanest picture: an 80% win rate, a 2.95 profit factor, a 5.75% worst drawdown — and +31.5% against +41.4% for doing nothing.
  3. A 2% stop did not cap the drawdown. AAPL, NVDA and XOM on daily bars show 43–49% peak-to-trough with a 2% stop on every trade. The stop fills at the close of the bar that crosses it, so a gap day or a crash session costs the whole bar, and a run of stopped-out entries at 100% of equity compounds. Which of the two did the damage on each name we can't tell from the summary numbers; that all three carry the tool's HIGH_DRAWDOWN flag is the point.
  4. Costs decide the edges, not the middle. Three runs lose before any fee (AMZN, XOM on hourly bars; BTC) and four hold on by 12–25 bps (MSFT hourly; SPY and NVDA daily; ETH). The rest survive 27–148 bps. On crypto perpetuals the spread is the whole story: ETH survives 19 bps, BTC loses at zero — if you take this rule to perpetuals, read the cost panel before anything else.
  5. What we did to our own catalog. Nothing. The entry keeps its code, its six-month card and its Likely unreliable label, because on the card's own sample that label is correct. This page is what the label was asking for.

Honest limits. Hourly stock history is capped at two years by our feed (this window starts Sep 9, 2024, four days later than teardown #3's, because the feed's window rolls forward); crypto at 5,000 bars by the server fetch; the 25-year daily runs are one regime sequence; long-only; stops and targets fill at the close of the bar that crosses them; no slippage or taxes; RSI warm-up seeds can differ from other implementations. No run ended in an open position, so the returns above are fully realized.

Receipts

18 share pages, open without an account (each shows the tested window, bar count, verdict and cost panel):

The library entry itself: https://stlab.app/library/b2f70433-d483-4f00-abf9-2d17a01e7f7a

Simulated results on historical data — research output, not financial advice. Past performance does not guarantee future results.

All published strategies