DEFLATED
ALPHA
683 tickers. 18 years. Every failed alpha public.
A real-money-mechanics retail quant, run against a live Alpaca paper account. It submits real orders every weekday, corrects its headline Sharpe for multiple testing, and ships every strategy that fails to a public retraction page.


The real account, the real drawdown, the seven kills, and the notebook the math was worked out in. Nothing here is staged.
Retail quant is ninety-nine percent theater.
Every “I built an AI trading bot” video backtests on five years of survivorship-biased data, reports one lucky seed as if it were the truth, never posts a losing month, and never once runs a proper multiple-testing correction.
Retail traders buy those signals and lose real money. Junior quants have nothing rigorous to model against. The whole ecosystem has no honesty contract. Deflated Alpha is the opposite bet: real broker, real orders, real corrections, and every failure published in red.
Four gates. All four, or it never trades.
Before a single candidate signal touches the live path, it has to survive the entire stack, then win at least two of three seeds in a paired t-test. This is what honest_gate.sh enforces.
Walk-forward + purged K-fold
Per-fold embargo so no future bar ever leaks into a training window.
CPCV
Combinatorial purged cross-validation (JPM 2024). 45 backtest paths per config, Bailey PSR across every path.
Hansen SPA
Superior predictive ability test, stationary block bootstrap, 2,000 resamples. Guards against data-snooped families.
Deflated Sharpe (DSR)
n_trials-corrected against a real, append-only trial registry. The Bailey and Lopez de Prado deflation, applied honestly.

“A headline Sharpe of 1.04 became 0.71 the moment I corrected for survivorship. The site publishes the correction, not the flattering number.”
No green paint on red numbers.
Above the fold: live alpha versus the S&P, color-coded red when the bot is behind. A kill-switch runway gauge. Signal freshness. Drawdown from peak. The rolling Sharpe warm-up state. And a live equity curve with the index buy-and-hold overlaid, dashed.
Five grounded layers. Not one writes a number.
Every model call is grounded on structured data pulled that morning. Each output is a schema-validated category or an explicit refusal. No language model ever writes a dollar amount, a Sharpe, or a return into a rendered artifact. Total cost, about sixty-eight cents a month.
The strategies that failed, published on purpose.
Ingests real data from ten-plus providers, with zero synthetic values anywhere. A CI guard greps the production source for fake, mock and dummy, and blocks the merge.
Runs a four-stage validation stack, walk-forward to CPCV to Hansen SPA to a trial-corrected Deflated Sharpe, before any signal is ever wired to the live path.
Submits real marketable-limit orders through a real broker every weekday, behind a triple safety gate and a fifteen-percent kill switch.
Publishes a live truth panel with no green paint on red numbers. When the bot is losing to the index, the headline is red, above the fold.
Explains every pick with a SHAP waterfall, and proves the edge with a Fama-French six-factor attribution and an independent TabPFN v2 second opinion.
Retracts failed strategies publicly and immediately, each one signed with the exact backtest window, seeds, pooled t-statistic, and the commit that killed it.
Real money mechanics. Every kill signed.
- A live Alpaca paper account, real orders every weekday.
- 683 tickers, 2.75 million price rows, zero synthetic values.
- Seven public retractions, each one signed with the commit that killed it.
Ten providers. No synthetic anywhere.
A CI guard greps the production source for fake, mock, dummy and synthetic, and blocks the merge. Real, or it does not ship.
- No synthetic data, anywhere
- CI greps fake, mock, dummy
- Real, or it does not ship
- Triple gate: PAPER + ENABLED + confirm
- -15% peak-to-trough kill switch
- Idempotent client_order_id
- Marketable-limit at NBBO mid
- 489+ tests, mypy --strict clean
- Deflated Sharpe, Hansen SPA, CPCV
- Fama-French 6-factor, HAC SE
- GitGuardian + no-fake-data guard
The one where I published the loss.
Everyone in retail quant shows you the win. The one seed that printed. The backtest that curved up and to the right. I got tired of not being able to tell the real work from the demo, so I built the project that does the opposite of hype.
It runs a real paper account through a real broker. Right now it is losing to the index, and the site says so, in red, above the fold. That is not a bug in the story. That is the story. Anyone can claim alpha. Almost no one publishes the strategies that failed the deflation, with the commit that killed them attached.
The hardest part was never the modeling. It was the honesty infrastructure: the trial registry, the CI guard that refuses synthetic data, the retraction page that ships a failure before the market closes. I built all of it so that when a number appears on this site, you can trust that it survived every correction I know how to run.
And it costs about sixty-eight cents a month. Keeping something this rigorous alive, honest, and nearly free is the whole point. This is where I start.








































