FAILURE DATASET
The Strategies We Killed.
Every Cell Published.
Showing only winners is easy — survivors sell themselves. We publish the losers — 12 retired presets, live-measured: most bled out, and a couple still print a positive number on this window yet were killed anyway for failing out-of-sample.
Plus a full 31-cell out-of-sample sweep of our entire strategy registry. Deployable from that sweep: 0(3 cells reached GO*, a conditional pass — not a deploy). That is the honest result, and you can download and reproduce every number.
Scope note: this is the registry-wide SL/TP grid sweep from our July 2026 research run. The simulator grid's ✓Verified badges answer a different question — they are preset-level, re-measured on the production engine, and must clear a 2-year PF bar plus out-of-sample and walk-forward gates.
A preset can carry ✓Verified while its cell in this sweep reads NO-GO: same engine, different window and different bar. Both numbers are published unedited so you can check that yourself.
Data source: Binance historical ≤ 2026-04-17, OKX USDT-SWAP live from 2026-04-18 — 1-hour candles. That window spans an exchange switch, so cells crossing 2026-04-17 mix both sources. You can pull the raw candles yourself from our public API (no key, no account:/api) and run them through your own engine. Our engine code is not open source, so this is two layers stated plainly: open data plus a re-runnable engine — not a fully independent reimplementation.
Reading −100%: where a return reads exactly −100.0%, that is the account-ruin floor, not a sum. The engine stops the equity curve when capital reaches zero and reports the trade number where that happened — trades after it could not have been taken. Individual coins inside such a run can show losses far larger than −100%.
OOS sweep run: 2026-07-19 · Window: 2023-12-30 → 2026-07-12 (1h bars, top-40 coins) · Smallest cell OOS n = 664
The verdict, in four numbers
Every strategy in our backend registry × every supported direction = 31 cells. In-sample = first 60% of the window (to 2025-07-07, a bull regime), out-of-sample = last 40% (a bear regime). Costs here are equal or lighter than production — so a failure in this sweep is the conservative case.
How the costs compare, in numbers
Costs included: fee 0.08%/leg, slippage 0.02%/leg, funding 0.01%/8h, net PnL. That is 0.20% per round trip — the same as production for Top-50 coins, and cheaper than production below that (0.30% for Top-200, 0.50% for the rest), because production charges liquidity-tiered slippage while this sweep used a flat 0.02%. A strategy that loses on cheap costs loses harder on real ones. The live-measured table below uses the production default instead, so the two tables are not directly comparable.
21
NO-GO (loses outright)
7
NO-GO — bear beta, not alpha
3
GO* — then killed by walk-forward
0
Deployable directional strategies
Why the survivors died too
- All 16 of 16 LONG cells are NO-GO — long directional edge was 0 in both the bull and the bear window.
- 7 SHORT cells win the OOS window but lose in-sample. A naive always-short baseline printed in the same bear window — so those wins are regime beta, not strategy alpha. A verdict requires winning both windows.
- The 3 cells that pass the annual regime-robust filter (bb-squeeze-short SHORT, atr-breakout SHORT, ichimoku SHORT) were each killed by half-year walk-forward: every one has 2–3 structural loss halves, with max drawdowns of 69.6–99.4% (scope: full-window adversarial re-run, half-year buckets, n≥30 per material bucket).
All 31 cells — nothing cherry-picked
Registry-default SL/TP as-is, no per-cell parameter fishing. IS = in-sample (2023-12-30 → 2025-07-07), OOS = out-of-sample (2025-07-07 → 2026-07-12). n = trade count in that window. The CSV download carries every column shown here plus TP/SL/timeout exit counts and per-coin profitability.
Scroll for the full grid →
| Cell | Verdict | SL/TP | IS n | IS PF | OOS n | OOS PF | OOS ret | OOS MDD |
|---|---|---|---|---|---|---|---|---|
| bb-squeeze-short SHORT | GO* | 10/8 | 1364 | 1.29 | 912 | 1.08 | +146.7% | 86.3% |
| bb-squeeze-long LONG | NO-GO | 7/6 | 1076 | 0.76 | 664 | 0.91 | -128.4% | 91.8% |
| momentum-long LONG | NO-GO | 5/10 | 1843 | 0.92 | 1138 | 0.94 | -151.6% | 97.4% |
| atr-breakout SHORT | GO* | 3/7 | 1818 | 1.42 | 1169 | 1.12 | +240.5% | 69.0% |
| atr-breakout-long LONG | NO-GO | 3/7 | 1520 | 0.97 | 1076 | 0.83 | -317.6% | 98.4% |
| hv-squeeze SHORT | NO-GO(beta) | 10/6 | 6733 | 1.0 | 4009 | 1.31 | +2243.6% | 62.3% |
| rsi-divergence LONG | NO-GO | 7/5 | 1990 | 0.7 | 1153 | 0.71 | -793.7% | 100.0% |
| rsi-divergence SHORT | NO-GO | 7/5 | 1872 | 0.93 | 1069 | 1.01 | +14.6% | 87.2% |
| macd-cross LONG | NO-GO | 8/6 | 7775 | 0.83 | 4936 | 0.72 | -3361.8% | 100.0% |
| macd-cross SHORT | NO-GO(beta) | 8/6 | 7420 | 0.98 | 4475 | 1.16 | +1285.7% | 88.1% |
| donchian-breakout LONG | NO-GO | 8/10 | 7813 | 0.89 | 4763 | 0.79 | -2352.5% | 100.0% |
| donchian-breakout SHORT | NO-GO(beta) | 8/10 | 7885 | 0.97 | 4860 | 1.24 | +2271.5% | 75.2% |
| mean-reversion LONG | NO-GO | 5/4 | 5045 | 0.69 | 3114 | 0.83 | -1100.5% | 100.0% |
| mean-reversion SHORT | NO-GO | 5/4 | 4584 | 0.86 | 2931 | 0.95 | -301.8% | 99.8% |
| supertrend LONG | NO-GO | 8/8 | 5536 | 0.91 | 3578 | 0.77 | -1941.7% | 100.0% |
| supertrend SHORT | NO-GO(beta) | 8/8 | 5559 | 0.9 | 3534 | 1.21 | +1349.7% | 78.1% |
| keltner-squeeze LONG | NO-GO | 7/6 | 1918 | 0.89 | 1330 | 0.83 | -517.3% | 99.9% |
| keltner-squeeze SHORT | NO-GO(beta) | 7/6 | 2093 | 1.02 | 1495 | 1.21 | +592.6% | 66.1% |
| keltner-squeeze-long LONG | NO-GO | 15/30 | 1844 | 0.94 | 1295 | 0.78 | -682.2% | 100.0% |
| stochastic-rsi LONG | NO-GO | 15/15 | 7938 | 0.88 | 5145 | 0.66 | -4607.1% | 100.0% |
| stochastic-rsi SHORT | NO-GO | 15/15 | 7947 | 0.93 | 5207 | 1.03 | +344.3% | 99.8% |
| ma-cross LONG | NO-GO | 5/10 | 1588 | 0.98 | 1089 | 0.69 | -825.4% | 100.0% |
| ma-cross SHORT | NO-GO | 5/10 | 1584 | 1.35 | 1112 | 0.94 | -131.5% | 96.4% |
| adx-trend LONG | NO-GO | 15/5 | 3573 | 0.82 | 2297 | 0.81 | -930.7% | 100.0% |
| adx-trend SHORT | NO-GO(beta) | 15/5 | 3323 | 0.99 | 2131 | 1.15 | +561.2% | 86.4% |
| ichimoku LONG | NO-GO | 3/15 | 2802 | 1.12 | 1678 | 0.89 | -353.6% | 99.8% |
| ichimoku SHORT | GO* | 3/15 | 2687 | 1.08 | 2074 | 1.28 | +965.9% | 81.8% |
| heikin-ashi LONG | NO-GO | 7/8 | 12565 | 0.88 | 7448 | 0.75 | -4599.7% | 100.0% |
| heikin-ashi SHORT | NO-GO(beta) | 7/8 | 12597 | 1.0 | 7443 | 1.16 | +2354.5% | 72.8% |
| volume-profile LONG | NO-GO | 2/5 | 23180 | 0.81 | 12231 | 0.78 | -4225.0% | 100.0% |
| volume-profile SHORT | NO-GO | 2/5 | 24072 | 0.85 | 10552 | 0.99 | -141.8% | 99.9% |
GO* = passes a naive annual regime-robust filter but is killed by the half-year walk-forward (details in the summary above). Returns are the engine’s non-compounded sums across coins for that window — a backtest artifact, not an account trajectory, and not a forecast of any future window.
The 12 retired presets — click any of them and lose again
These live on our simulator grid with honest verdict badges (✗ Washout / ◔ Conditional / Shelved). Metrics are live-measured against the production engine (scope: 2-year backtest, top 10 coins by signal, fee 0.05%, leverage 5×, at the exact defaults shown) — a click reproduces the loss.
Keltner Squeeze ↓
After a squeeze releases, shorts the first break below the lower Keltner band — barely above breakeven at these settings and below our 1.05 curated bar; the re-test read the short edge as bear-beta, with deep drawdowns.
measured 2026-08-21
Reproduce this result — one click →All 30 SL/TP combinations →MACD Cross ↓
The textbook MACD sell signal — gets chopped to pieces by crypto's noise: negative expectancy at real fees.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Supertrend ↑
Follows the popular Supertrend line upward — enters late, exits late, fees eat the rest.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Donchian Breakout ↓
Shorts a break below the 20-bar channel — the turtle-trading classic, underwater on 2 years of crypto. The re-test read the short edge as bear-beta.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Stochastic RSI ↓
Shorts every overbought reading — trades so often that fees bleed it out. A fresh run reversed the sign: the original edge was curve-fit.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Momentum ↑
Buys strength expecting more — near breakeven here. Widen the take-profit and it looks profitable, but that gain fails out-of-sample: it's curve-fit, not real.
measured 2026-08-21
Reproduce this result — one click →All 30 SL/TP combinations →Mean Reversion ↑
Buys sharp dips expecting a snap back — crypto dips keep dipping: negative expectancy at real fees.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →HV Squeeze ↓
Shorts volatility squeezes filtered by candle color — barely above breakeven per trade, and a total drawdown wipes the account long before that edge can compound. 85% of its signals overlap BB Squeeze — shelved as redundant.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →RSI Divergence ↕
The chart-school favorite — price makes a new extreme, RSI disagrees. Lowest profit factor on this grid — negative expectancy at real fees.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →ADX Trend ↕
Only trades when ADX confirms a strong trend — the confirmation arrives too late, every time. The 2026-06 re-test read its short edge as bear-beta.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Heikin Ashi ↕
Follows smoothed Heikin Ashi candles — the smoothing hides the noise until it becomes your loss: negative expectancy at real fees.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Volume Profile ↕
Fades moves away from the volume point-of-control — fires constantly and loses far more than it wins. The original 10-coin sample is below our n≥30 bar.
measured 2026-08-21
Reproduce this loss — one click →All 30 SL/TP combinations →Run the same test yourself — full history, free
Everything behind this dataset is the same engine you can use right now: backtests over our full 2.6+ years of data on 320+ coins, with fees, slippage and funding modeled — no subscription, no credit card, no account. Hosted backtesters typically put full-history testing behind a paid tier; we publish our platform comparison separately.
Dataset updates are announced onTelegramand RSS — no email required.
Everything on this page is free — PRUVIQ runs on exchange referral fees (how that works).
Cite this dataset
PRUVIQ, “Failed Strategies Dataset — full-registry OOS sweep” (run 2026-07-19), https://pruviq.com/failed-strategies/ · CSV: https://pruviq.com/data/failed-strategies-oos.csv
- Generated 2026-07-19 by
backend/research/oos_full_registry.py+oos_full_registry_adversarial.pyagainst the production simulation engine (engine_fast.py::run_fast— the same code path as /simulate). - Data: 1h futures bars, top-40 coins fixed at run start (survivorship caveat: delisted coins absent — affects absolute returns, not the directional verdicts).
- No look-ahead: entries at signal index + 1, indicators past-only, trades bucketed by entry time. Verdicts are for the stated windows only — past failure or survival in these windows implies nothing about future windows.
All figures are historical backtest measurements for the stated windows, settings and coin universes. They are published for verification and education, are not investment advice, and do not predict future performance.