The Autopsy Table · updated 2026-08-04

We built 15 strategies.
Ten of them died.

Anyone can show you a winning backtest. Almost nobody shows you the losers, which is exactly why you have no reason to believe the winners. So here is the whole table — every strategy we built, what it actually made or lost, and the sample it was measured on.

The two that survived are worth more to you because you can see the ten that didn’t.

2SURVIVED
10DIED
3NOT ENOUGH DATA
Read this before the numbers

Every P&L figure on this page is PAPER. The 0DTE book is 37 closed trades over 7 weeks. That is not a track record and we will not call it one.

Survived

Beat modelled friction out-of-sample on real bars, with commissions at the correct contract multiplier.

0DTE

0DTE Iron Butterfly

+$3,040
25 trades · avg +$121.62

The only strategy in the book carrying its own weight. Expectancy +$78.47/trade across the full 37-trade ledger, 70% win rate. Paper.

scripts/iron_condor/trades.jsonl
0DTE

The 13:30 gamma cutoff

+$1,525.20
37 trades re-cut · 9 changed, 8 improved, 1 worse

Closing before ~13:30 ET instead of 15:45. Our ledger splits hard by exit window: 09:30–12:00 made +$1,467.59 at 82% wins; 12:00–13:30 made +$2,049.99 at 76%; 13:30–16:00 LOST −$614.01 at 44%. 0DTE carries roughly 45× the gamma of a 45-day option and it is ~5× worse in the final two hours. The caveat we publish rather than bury: 13:30 sits just before a cluster of exits, so the exact peak is partly a sample artifact. The robust claim is 'cut before ~13:30', not '13:30 precisely'.

scripts/iron_condor/backtest_cutoff.py

Died

Measured, lost, and switched off. Standing down and trading nothing beat every single one of these.

Trend

6-factor confluence model

−$6,221
505 days of real 1-min ES, out-of-sample

The most elaborate model we built and the worst performer in the set. More factors did not mean more edge.

scripts/trend_bot/
Trend

VWAP-trend model

−$3,828
505 days, out-of-sample

Trading nothing at all ($0) beat it by $3,828.

scripts/trend_bot/
Trend

3-step price action (validated swings + supply/demand + 2.5:1 R:R)

−$3,729
t = −3.86 · 505 days

A faithful implementation of the most widely taught discretionary method we could find. Losing at t = −3.86 is not bad luck — it is statistically reliable failure.

scripts/trend_bot/
Trend

Naive σ-fade (chop)

−$1,697
48 days

Mechanical mean reversion into chop. Every fade variant we tested lost money.

scripts/trend_bot/fade_lab*.py
Trend

Level fade (prior-day high / low)

−$662
48 days

Fading the most-watched levels on the chart. Being obvious is not the same as being profitable.

scripts/trend_bot/fade_lab*.py
0DTE

Butterfly roll (adjusting a losing 0DTE fly)

−$313
loses at every trigger: −$50 → −$313 · −$100 → −$400 · −$200 → −$561

Tested two independent ways. An ATM butterfly is a theta trade — price wanders off, then decay drags P&L back. 5 of 7 losers recovered on their own, so rolling locks in the loss right before the bounce. We also found the trigger itself was broken: 'within 8 points of a short strike' is true from entry on 505 of 505 days for an ATM fly. Built, measured, and deliberately left unwired.

scripts/iron_condor/backtest_roll_pnl.py
0DTE

0DTE entries on REVERSION days

12 of 14 breached
86% breached a short strike before 13:30 · 0% survived the full day

We logged 14 reversion days in shadow mode and scored every one against real ES 1-min bars. The cutoff does not rescue them. Skipping these days is the correct behaviour.

scripts/iron_condor/backtest_reversion.py
Trend

Overnight drift

−$306
505 days, out-of-sample

A small loss is still a loss. Stand-down beats it.

scripts/trend_bot/
Trend

Morning open-drive

−$172
505 days, out-of-sample

The closest any trend strategy came to breaking even — and it still did not.

scripts/trend_bot/
Method

Full-day regime gating — the look-ahead trap

+$1,671 → −$2,045
the same gate, rebuilt to be causal

This is the entry that explains why this page exists. Gating trades on the day's regime scored +$1,671 — until we rebuilt it to use only the bars available at decision time. The honest version loses $2,045. A $3,716 swing produced entirely by letting the model see the future. Any regime gate must be causal, and most backtests you will be shown never check.

scripts/trend_bot/

Not enough data

Refused a verdict on purpose. Note that one of these is POSITIVE — we are not going to bank a flattering result off eight trades just because it points the right way.

0DTE

Credit spread (MACD-gated)

+$45
8 trades

Positive, and meaningless at n = 8. We are not going to dress up eight trades as an edge.

scripts/iron_condor/trades.jsonl
0DTE

Iron Condor (proper, non-butterfly)

−$215.53
1 trade

One trade tells you nothing. It is listed because leaving it out would be curation.

scripts/iron_condor/trades.jsonl
Trend

Master-gated σ-fade (strict)

+$51
1 trade in 48 days

The only fade variant that made money, on a single trade in seven weeks. That is noise wearing a decimal point, not a strategy.

scripts/trend_bot/fade_lab*.py

We tested our own score. It failed.

Showing what feeds a score is transparency, not validation. So we replayed the live X-Ray engine across 12,600 historical days on 30 tickers — each replay seeing only the bars available on that day — and measured what happened over the next 10 sessions.

The result

A higher edge score did not lead to a better outcome. Rank correlation between score and forward return was -0.034 — effectively zero. Setups the engine flagged returned 0.188% (t = 0.88), while simply holding the same names over the same days returned 1.039%. Our signals did worse than doing nothing.

5–39
n=41
+0.077%
t=0.08
40–49
n=3,933
+0.747%
t=5.81
50–59
n=7,309
+1.126%
t=11.27
60–69
n=208
-0.772%
t=-1.26
70+
n=1,109
+0.13%
t=0.47
Checked at three holding periods
HeldOur flagged setupsJust holdingRank corr.
3 sessions-0.06% t=-0.52+0.315% t=7.71-0.009
10 sessions+0.188% t=0.88+1.039% t=13.8-0.034
20 sessions+0.697% t=1.97+2.129% t=18.84-0.024

Every column tells the same story. Doing nothing beat our signals at 3, 10 and 20 sessions, and the rank correlation sits at roughly zero throughout. We checked more than one horizon precisely because a result that only appears at one is the definition of curve-fitting.

Read the t column, not the percentages. Anything under 2 is not distinguishable from luck. The 60–69 bucket is negative; the 70+ bucket, our most confident readings, is flat. So what is Proof for? Not prediction. It is a structured read of where price sits, what would invalidate the idea, and what the wider tape is doing — and it says NO TRADE on roughly 8 of every 10 names precisely because most setups are not there. This table is why we will never print a probability next to that score.

Limits, stated plainly: 10 sessions, one basket of 30 liquid names, about two years, mostly a rising market. A different horizon or basket could give a different answer — the universe and the method are both in the repo so you can check. NO TRADE rows are not direction-adjusted (there is no direction to adjust to), so their mean is simply market drift. Compare them against the baseline, never against the directional verdicts.

How a strategy earns a verdict

A strategy is marked SURVIVED only if it beats modelled friction out-of-sample on real bars, with commissions at the correct contract multiplier. Anything scored on a handful of observations is published as NOT ENOUGH DATA rather than given a number it has not earned.

Sample: 0DTE ledger 2026-06-10 → 2026-07-27 · 505 days of real 1-min ES for out-of-sample backtests · 48 days for the fade lab

The TauricResearch/TradingAgents desk run is still unmetered and has NOT been run. Nothing on this page comes from it. These are our own strategies, scored against our own money.

Same standard, pointed at your ticker.

The X-Ray shows you every factor behind a score and tells you to WAIT when there is no edge. Free, no card, no signup.

Check my ticker →
Or watch the two survivors trade, live →

We killed ten because we measured them.

Most people never measure the one that actually cost them — which is exactly why it happens again. Bring a single trade you still haven’t explained to yourself and you’ll get back whether the process was broken or the loss was simply valid, plus the one rule that would have caught it. No score designed to flatter you. No email, nothing saved, nothing sold.

Debrief the one you regret →

Research and commentary only — not investment advice, and not a recommendation to buy or sell anything. We are not licensed advisers. Past results, paper or live, do not predict future results. Trading involves risk of loss.