Skip to content
Backtest · honest

Did these signals actually work?

Three cohorts — crypto, US stocks, and FX — each scored against its own random-day baseline. The numbers below are the truth, including the rules that don't beat random.

4,758
Total signals
2
Cohorts
365d
Lookback
May 29, 2026
Generated
What the data made us change

When backtests contradict labels, labels move

The crypto backtest forced us to relabel three rules from bearish to neutral — they were flagging capitulation lows, not continuation lows. Across stocks and FX you'll see a similar pattern: gap-down and strong-decliner historically preceded positive forward returns more often than the random-day baseline. Read those rules as bounce-watch flags, not short triggers. The taxonomy follows the data; we'd rather relabel a rule than hide an inconvenient backtest.

Crypto cohort

4,207 crypto signals scored

Top-cap crypto · CoinGecko daily data · 12 rules with 24h/7d/30d lookback.

Forward 1 day
48.7%
Mean +0.13% · n 10,560
Forward 7 days · baseline
47.7%
Mean +1.01% · n 10,380
Forward 30 days
47.7%
Mean +3.94% · n 9,690
neutraln 2,628

Consolidating near top

at-resistance
7d edge
+1.6pp
1d hit
49.3%
mean -0.0%
7d hit
49.3%
mean +0.3%
30d hit
46.9%
mean +0.8%
bullishn 390

Near all-time high

near-breakout
7d edge
+2.8pp
1d hit
50.5%
mean +0.9%
7d hit
50.5%
mean +4.8%
30d hit
54.5%
mean +14.5%
neutraln 251

Deep off all-time high

deep-discount
7d edge
+4.6pp
1d hit
47.4%
mean +0.1%
7d hit
52.4%
mean +0.6%
30d hit
45.9%
mean +1.3%
bullishn 205

Bouncing from correction

bouncing-from-correction
7d edge
-13.6pp
1d hit
47.8%
mean +0.3%
7d hit
34.2%
mean -1.0%
30d hit
29.0%
mean +2.8%
bullishn 178

Outperforming the tape

outperformer
7d edge
-0.6pp
1d hit
53.4%
mean +1.6%
7d hit
47.1%
mean +4.4%
30d hit
50.3%
mean +16.3%
neutraln 161

Mean-reversion candidate

underperformer
7d edge
+4.8pp
1d hit
48.4%
mean +0.5%
7d hit
52.5%
mean +3.3%
30d hit
59.7%
mean +22.9%
neutraln 147

Volume surge

volume-surge
7d edge
-6.9pp
1d hit
51.0%
mean +0.0%
7d hit
40.8%
mean -0.0%
30d hit
53.1%
mean -0.0%
neutraln 111

Capitulation watch

breaking-down
7d edge
+9.9pp
1d hit
55.9%
mean +2.3%
7d hit
57.7%
mean +0.9%
30d hit
38.2%
mean -3.4%
neutraln 51

Distribution watch

reversal-down
7d edge
-1.7pp
1d hit
45.1%
mean +0.6%
7d hit
46.0%
mean +6.8%
30d hit
54.3%
mean +29.2%
bullishn 45

Reversing higher

reversal-up
7d edge
-7.7pp
1d hit
53.3%
mean +0.5%
7d hit
40.0%
mean -0.8%
30d hit
42.2%
mean -1.0%
bearishn 27

Strong momentum down

momentum-down
7d edge
-10.7pp
1d hit
59.3%
mean +18.0%
7d hit
37.0%
mean +16.3%
30d hit
40.7%
mean +16.6%
bullishn 13

Strong momentum up

momentum-up
7d edge
-16.9pp
1d hit
30.8%
mean -0.6%
7d hit
30.8%
mean -4.6%
30d hit
58.3%
mean +13.9%
Honest caveats · crypto
  • !1Y high used as a proxy for all-time high — coins whose true ATH is older than the lookback window report milder ATH-distance signals.
  • !Daily close granularity. The live robot evaluates rolling 24h windows on demand, so live results won't match this exactly.
  • !No transaction costs, slippage, or liquidity gates modelled. Real-world execution would compress returns.
  • !Past performance never predicts future performance. These rules describe historical patterns, not edges that will persist.
Stocks cohort

551 stocks signals scored

US large-caps · Yahoo Finance daily data · 7 daily-snapshot rules.

Forward 1 day
52.3%
Mean +0.13% · n 2,976
Forward 7 days · baseline
55.3%
Mean +0.91% · n 2,904
Forward 30 days
57.5%
Mean +3.34% · n 2,628
bullishn 208

Gap up

gap-up
7d edge
-0.6pp
1d hit
49.5%
mean +0.1%
7d hit
54.6%
mean +1.1%
30d hit
48.4%
mean +1.9%
bearishn 155

Gap down

gap-down
7d edge
+3.2pp
1d hit
50.3%
mean +0.2%
7d hit
58.4%
mean +0.9%
30d hit
46.7%
mean +2.9%
neutraln 76

Near day high

near-day-high
7d edge
+5.5pp
1d hit
63.2%
mean +0.9%
7d hit
60.8%
mean +3.0%
30d hit
60.7%
mean +8.1%
neutraln 55

Near day low

near-day-low
7d edge
-4.3pp
1d hit
50.9%
mean +0.9%
7d hit
50.9%
mean -0.1%
30d hit
55.3%
mean +3.7%
bullishn 29

Strong gainer

strong-gainer
7d edge
-3.5pp
1d hit
34.5%
mean -1.5%
7d hit
51.7%
mean -0.4%
30d hit
30.8%
mean -4.3%
bearishn 28

Strong decliner

strong-decliner
7d edge
+1.9pp
1d hit
67.9%
mean +1.8%
7d hit
57.1%
mean +2.4%
30d hit
46.2%
mean -3.4%
Honest caveats · stocks
  • !Yahoo Finance chart endpoint is the data source — unofficial but historically stable. Failed fetches drop the affected ticker.
  • !Daily close granularity. Live robot evaluates intraday snapshots, so live results won't match this exactly.
  • !Forward returns count trading days (weekends/holidays automatically skipped by the data).
  • !No transaction costs, slippage, or liquidity gates modelled.
Forex · pending

FX backtest hasn't been run yet

The FX cohort needs TWELVE_DATA_API_KEY and a re-run of scripts/backtest-equities.mjs. When the key is available, the script pulls daily OHLC for the major + minor pairs from Twelve Data, replays the same 7 equity rules with tighter FX thresholds, and the results land here on the next deploy.

Methodology

How each cohort is scored

Same scoring loop everywhere — only the data source and the rule set differ. Re-run quarterly so the numbers stay current.

  • For each asset, pull 1 year of daily OHLC from the source. CoinGecko for crypto, Yahoo Finance for stocks, Twelve Data for FX.
  • For each historical day, reconstruct the rule inputs the live robot uses (24h/7d/30d % change + ATH-distance for crypto; intraday open/high/low/close + gap for equities).
  • Run the rules against each daily snapshot. When multiple fire for the same coin/ticker/pair on the same day, the strongest survives — exactly what live does.
  • For every fired signal, compute forward 1-, 7-, and 30-day returns. Aggregate per rule: hit rate (% positive), mean, median, p25, p75.
  • Baseline: random day, any asset, hold N days. The unconditional return distribution of the cohort over the same window.

Want to see the live signals?

The Trading Robot scans the same rules across all three asset classes against today's tape.

Open Trading Robot →