← Dashboard · Reports

Strategy audit

Ranking of every registered open strategy by out-of-sample Sharpe and drawdown-adjusted return, with deprecation candidates. · Generated 2026-06-10 · backtest-only

Method

Caveats

Ranking

Sorted by mean Sharpe across the 6 runs. Click a column header to sort.

Strategy Registry Mean Sharpe Mean return % vs B&H % Worst max DD % Trades Verdict
squeeze_momentum both 0.03 -0.6 +47.9 -58.5 131 keep
breakout futures 0.01 -1.1 +47.5 -52.2 260 keep
supertrend both 0.00 0.0 — 0.0 0 bug — never trades
delta_neutral_funding futures 0.00 0.0 — 0.0 0 n/a (needs funding data)
bear_pullback_st futures 0.00 0.0 — 0.0 0 n/a (short-only, unmeasured)
vwap_rejection_st futures 0.00 0.0 — 0.0 0 n/a (short-only, unmeasured)
hold both 0.00 0.0 — 0.0 0 n/a (placeholder)
mean_reversion_pro both -0.20 -12.8 +35.8 -59.8 17 watch
chart_pattern both -0.27 -11.5 +37.1 -60.5 185 watch
momentum_pro both -0.32 -12.0 +36.5 -55.9 51 watch
range_scalper both -0.38 -14.2 +34.4 -55.9 9 deprecate (M1 degenerate; M5 gross <= 0)
donchian_breakout both -0.42 -17.6 +31.0 -55.5 355 deprecate (#985: no gate/profile clears protocol OOS + held-outs)
ichimoku_cloud both -0.43 -8.5 +40.1 -65.5 173 watch
order_blocks both -0.52 -19.9 +28.7 -63.4 295 watch
amd_ifvg both -0.53 -19.6 +28.9 -63.4 87 deprecate (#1023: DST/session-timing corrected + 15m rebaseline; passes OOS but failed 2023/2024 held-outs on both 15m and 1h/4h)
sweep_squeeze_combo both -0.55 -29.4 +19.2 -73.5 26 watch
momentum spot -0.58 -22.1 +26.5 -58.1 126 watch
sma_crossover both -0.68 -24.0 +24.5 -70.7 360 watch
volume_weighted both -0.72 -26.6 +22.0 -64.6 287 watch
session_breakout futures -0.79 -28.4 +20.2 -67.3 371 deprecate (#1031: short leg failed bull-year held-outs)
atr_breakout both -0.89 -22.7 +25.9 -69.8 389 watch
tema_cross both -0.90 -17.9 +30.6 -49.5 451 watch
momentum futures -0.92 -30.2 +18.4 -62.3 287 watch
bollinger_bands both -1.08 -44.0 +4.6 -60.5 344 deprecate
adx_trend both -1.10 -38.5 +10.1 -76.1 204 deprecate
liquidity_sweeps both -1.10 -42.0 +6.6 -63.0 127 deprecate (short leg failed held-outs)
rsi both -1.11 -45.3 +3.3 -63.8 118 deprecate
triple_ema both -1.12 -32.6 +16.0 -58.1 512 deprecate
rsi_macd_combo both -1.13 -46.0 +2.6 -64.6 180 deprecate
tema_cross_bd futures -1.16 -41.8 +6.8 -65.9 806 watch (short leg unmeasured)
ema_crossover both -1.33 -40.8 +7.8 -66.8 559 deprecate
stoch_rsi both -1.42 -46.6 +1.9 -65.2 664 deprecate
pairs_spread spot -1.45 -47.9 +0.7 -72.0 374 deprecate
mean_reversion both -1.46 -49.5 -0.9 -70.5 496 deprecate
triple_ema_bidir futures -1.55 -46.6 +2.0 -69.8 800 watch (short leg unmeasured)
heikin_ashi_ema both -1.56 -48.7 -0.2 -74.9 801 deprecate
parabolic_sar both -1.84 -55.8 -7.3 -72.6 1327 deprecate
macd both -1.86 -55.6 -7.1 -80.8 1264 deprecate
consolidation_range futures -1.88 -58.5 -9.9 -74.5 624 watch (short leg unmeasured)
vwap_reversion both -1.88 -59.5 -10.9 -78.9 1504 deprecate

Deprecation candidates (18)

Bar: mean Sharpe ≤ -1.0 across all 6 runs, ≥100 trades, edge vs B&H ≤ ~+16pts. Removal is a separate PR — the registry --list-json output must stay byte-identical until then.

  1. vwap_reversion — Worst in registry: -59.5% mean, 1,504 trades, edge -10.9pts below buy-and-hold; pure fee churn.
  2. macd — -55.6% mean over 1,264 trades, -80.8% worst DD, below B&H.
  3. parabolic_sar — -55.8% over 1,327 trades, below B&H; whipsaws every regime.
  4. heikin_ashi_ema — -48.7% over 801 trades, zero edge vs B&H.
  5. mean_reversion — -49.5% over 496 trades, negative edge; superseded by mean_reversion_pro (regime-filtered variant).
  6. pairs_spread — -47.9%, +0.7pt edge; spot-only and structurally homeless (no second-leg execution in live).
  7. stoch_rsi — -46.6% over 664 trades, +1.9pt edge; pure churn.
  8. rsi_macd_combo — -46.0%, +2.6pt edge; the combo inherits both parents' weaknesses.
  9. rsi — -45.3%, +3.3pt edge over 118 trades.
  10. liquidity_sweeps — Long leg was -16.94% gross in M5; #1022 short-leg screen passes protocol OOS but fails 2023/2024 held-outs with SOL liquidations.
  11. range_scalper — #987 current-cache M1 is degenerate in every window (0/3 held-outs) and M5 remains gross-negative (-7.46% gross over 7 trades).
  12. session_breakout — #1031 short leg: gross edge real on OOS (Sharpe up to 2.50) but bear gate + atr_stop + zscore all fail the 2023/2024 bull-year held-outs (best 1/3); the short edge can't survive an uptrend and exits amputate the long-hold winners.
  13. amd_ifvg — #1023: session timing was UTC-fixed/DST-unaware and the M5 deprecate baseline ran on 1h/4h, not the designed 15m. Corrected to NY-anchored ICT killzones (DST-aware civil sessions) and rebaselined at 15m + 1h/4h. The corrected baseline clears protocol OOS but fails the 2023 and 2024 held-out years on both timeframes (1/3 held-out) — competitive only in chop, lags incumbents in trends. Concept disproven on a sound implementation.
  14. donchian_breakout — #985 full M1: the long leg (shipped default) fails every window ungated, and no mechanism rescues it — ADX trending_up gate and composite trending_up_clean gate flip IS only, the entry_period plateau wanders per window (30 passes 2023, 40 passes 2024, nothing passes 2025H1), the best tuned config (period 40 + gate) fails the one protocol-OOS look on DDadj, and the #977 M4 dual profile (20/55 on the ADX switch) fails all five windows. The short leg has a real OOS edge (Sharpe 1.62 gated vs bar -0.75) but fails the 2023/2024 bull-year held-outs at every period and under both classifiers (best 1/3) — the #1031 session_breakout failure shape. Both sides measured per the M5 unscreened_short requirement.
  15. bollinger_bands — -44.0%, +4.6pt edge over 344 trades.
  16. ema_crossover — -40.8% over 559 trades; dominated by sma_crossover and tema_cross.
  17. adx_trend — -38.5%, -76.1% worst DD; trend filter that doesn't filter.
  18. triple_ema — -32.6% over 512 trades; dominated by tema_cross (-17.9% on the same idea).
Bug found: supertrend_strategy produces zero signals on any input: the recursive band update seeds from NaN (rolling-ATR warmup), so final_upper/final_lower stay NaN for the entire series — verified empirically (8,783 bars, 0 signals, direction stuck at -1). Any live config running supertrend has been silently flat. It is a band-seeding bug, not a performance verdict.

Out-of-sample check

Strategy OOS return % OOS Sharpe Trades Edge vs B&H Holds?
momentum_pro -3.1 -0.09 5 +27.3 yes — best OOS
chart_pattern -6.4 -0.37 23 +24.0 yes
breakout -6.8 -0.39 33 +23.6 yes
squeeze_momentum -11.7 -0.78 21 +18.7 mostly
mean_reversion_pro -18.6 -1.84 2 +11.8 weak (2 trades)
donchian_breakout -20.5 -1.53 43 +9.9 weak
ichimoku_cloud -26.6 -2.73 23 +3.8 no
range_scalper -38.3 -2.69 5 -7.9 no — worse than B&H

Top-4 ordering is stable in and out of sample (BTC/USDT 1h, since 2026-01-01; B&H -30.4%): squeeze_momentum, breakout, momentum_pro, chart_pattern keep a 19-27pt edge over buy-and-hold in the unseen window. ichimoku_cloud's in-sample edge evaporates OOS and stays watch; range_scalper underperforms holding and #987 moves it to deprecate after M1/M5 confirmed a degenerate, gross-negative sample.

Verdicts on the five candidate strategies

Multi-timeframe confluence CONFIRM

The single biggest failure mode is high-frequency long entries fighting a year-long downtrend: every strategy with 300+ trades churned to -30%..-60%, and 4h runs consistently beat their 1h twins. An HTF trend gate over an LTF pullback entry attacks exactly this; highest-conviction candidate.

Regime-adaptive entry CONFIRM

Style alone did not decide outcomes: squeeze/breakout top the table while unfiltered mean reversion is the bottom — yet mean_reversion_pro, the ADX-gated variant, ranks in the top tier of strategies that traded. Regime selectivity, not entry style, separated winners from losers.

Volatility-targeted momentum CONFIRM

Raw momentum is mid-table, but momentum_pro (confirmation-gated) posted the best out-of-sample edge of any strategy on very few, selective trades. ATR-normalized sizing plus efficiency confirmation addresses the churn that killed macd/parabolic_sar. Build it bidirectional.

Funding-rate aware perps entry BLOCKED

The audit could not evaluate funding signals at all: delta_neutral_funding runs 0 trades because the backtest path has no funding data. Untested rather than disproven; add funding-data support to the backtester first, otherwise the strategy cannot clear its own gate.

Volume-profile / liquidity levels CUT

The existing structure/liquidity family is mid-to-bottom tier: order_blocks -0.52, amd_ifvg -0.53, sweep_squeeze_combo -0.55, liquidity_sweeps -1.10 mean Sharpe — none survived fees and none shows OOS promise. Cut it (or fold untested-level confluence into candidate 1).