Nobody publishes their failures, which is exactly why retail strategy research keeps rediscovering the same corpses. Here are four of mine, with autopsies. Each was tested to completion under a falsification-first protocol — full grids, held-out windows, permutation nulls, cost stress — and each death taught something transferable.
1. Breadth does not rescue a concentrated edge
Hypothesis: the ML rotation's edge (PF ≈ 1.46 on its 59-name universe) should strengthen when applied to the full S&P cross-section — more names, more shots, Grinold's law says breadth compounds information ratio.
Test: identical walk-forward pipeline on all ~450 remaining S&P names. Cross-sectional features computed over the full pool for fidelity; sharded training across worker processes; region-A risk config; both drawdown-breaker variants.
Result: CAGR +0.5%, PF 1.04, MaxDD −49%, last five years −42% while SPY made +83%.
Autopsy: the multiseed generalization study that motivated this (3×20 random names at PF ≈ 1.25) was small-sample optimism. The full cross-section is the statistically powerful test, and it says the edge lives in specific names. A survivorship-flattered universe (today's members = past winners) still failed — which makes the negative more damning, not less.
2. A dollar-neutral book that wasn't — until it lost money honestly
Setup: long top-decile / short bottom-decile of cached walk-forward scores, 446 names, weekly rebalance, borrow + slippage modeled. First result: +467%, Sharpe 0.46.
The catch: a market-neutral book measured β = 0.85 against SPY. Chasing that
inconsistency exposed a real bug: replace(0, nan).ffill() persistence turned
flat positions into stale ones, accumulating ~8.7× gross leverage in phantom
weights. Three controls confirmed it — leg betas were individually neutral, a
random-rank control through identical machinery measured β ≈ 0, and the fixed
book lost money.
Fixed results: every cell net-negative after costs. Gross of costs a faint spread existed (Sharpe ≈ 0.45) — an order of magnitude below realistic trading costs at weekly turnover.
Lessons: (a) dollar-neutral construction doesn't guarantee neutral returns — check realized beta against controls; (b) leverage can impersonate skill; (c) when a number looks too good, audit the machinery before tuning.
3. Thirteen intraday families, one verdict: fees
On real crypto trade tape (millions of rows), thirteen edge families were built and tested end-to-end: Donchian breakout, BTC-leads-alts lead-lag, cointegrated pairs mean-reversion, order-flow proxies, taker-flow fade/ride, funding-extreme carry/fade, perp-spot basis reversion, open-interest cascades, positioning fades, hour-of-day seasonality, VPIN, tick-exact OBI, and post-cascade reversion.
Verdicts ranged from THIN (seasonality, PF 1.21 gross of most costs) to catastrophic (most families PF < 0.6 after 5bps/side). The pattern held across every family: plausible gross economics, negative net economics, with fee drag scaling faster than signal at intraday frequencies.
Follow-up probes closed the exits: external data (funding rates, open interest, long/short ratios from public dumps) added nothing as either signal or filter — in one test the hypothesis inverted entirely, with gated-out trades outperforming kept trades.
4. The ML prediction program that proved its own innocence
The most rigorous closure: 117 candidate features across 14 families (price, volatility, trend, cross-asset, volume, open interest, funding, chain metrics), redundancy-reduced via correlation clustering + mutual information, then walked forward with embargo across six expanding splits.
- Pooled OOS information coefficient: negative at every feature count (−0.06 to −0.14), under every ordering, at horizons 5/10/20 days
- Selection-aware permutation nulls beat the best real configuration every time
- Poison control: injecting the true future return produced IC +0.19 and a +13,587,978% backtest — proving the harness detects genuine signal
When your pipeline demonstrably converts signal into profit and your real features produce nothing, the honest conclusion is about the world, not the code: daily-horizon return predictivity does not exist in this data at the feature level. Early-split IC (+0.10…+0.29 in 2021) decaying negative by the final splits shows how regime luck masquerades as model skill.
Bonus autopsy: momentum vs its own universe
Classic 12−1 cross-sectional momentum on the same 446 names: +20% CAGR, Sharpe 0.85, beating buy-and-hold — until point-in-time index eligibility was enforced using historical S&P membership data. Result: +12.3%, Sharpe 0.61, now below buy-and-hold, with delisting survivorship still inflating even that. Roughly eight points of annual "edge" evaporated on contact with inclusion look-ahead alone. Universe hygiene is not optional.
Why publish these
Because the graveyard is the credential. Any framework can show you a winner; the interesting question is whether it can kill losers — including losers that look like +467%. Every survivor described in the other posts earned its place by outliving these.