The first two strategies I ran lost 55% and 67% of a paper account in two backtested years. Buy-and-hold made 32% over the same stretch. That was the starting line: a moving-average crossover and a Bollinger mean-reversion bot, the two setups every trading tutorial hands you first, both bleeding out through fees and chop while doing nothing beat them by ninety points.
I want to tell you about the day I spent fixing that with AI as my engineering team, because the interesting part isn't the platform that came out the other end. The interesting part is the graveyard.
The rule that made the day work
Before adding any new strategy, I locked in one rule: nothing trades until it passes a gate. Two tests, no exceptions.
First, walk-forward validation. The optimizer picks parameters on one slice of history, then trades the following unseen slice. Only the unseen results count. Curve-fitting the past is easy; the test window is the part the strategy never saw.
Second, the Deflated Sharpe Ratio. When you search hundreds of parameter combinations, the best one looks great by construction. Search 540 random coin-flip strategies and the winner will show you a beautiful backtest. DSR asks the brutal question: is this result better than the best of N noise trials? One published study ran 50,000 crypto strategies through this test. The single best performer scored 0.029 against a pass bar of 0.95. The best of fifty thousand was luck.
For strategies with parameters taken straight from published research, with zero searching, I used a cousin of the test: the Probabilistic Sharpe Ratio, which asks whether the out-of-sample curve itself shows real skill at 95% confidence. No search means nothing to deflate.
Everything below either passed that gate or died at it.
The graveyard
Volatility breakout, the "daytrader" play. ATR-burst entries on 1-hour bars: out-of-sample return of -12.3%, DSR 0.0, and a different "best" parameter set won each of the nine test windows. That last detail is the fingerprint of noise. On 15-minute bars it lost 3.3% while buy-and-hold gained 12%. Dead on both timeframes.
RSI dip-buying. The one intraday setup I found with a published, falsifiable, net-of-fees claim behind it. I tested it at my fee model and again at a worse-case fee tier: -8.9% and -13.3%, zero profitable test windows out of nine, DSR 0.0 at both levels. Dead.
A meme-coin bot. Failed the gate, sat flat for its whole life, deleted without a single trade to its name.
Quarterly rebalancing between strategies. The version with a 5% trigger band produced zero rebalances across six years of data. Zero. The inverse-volatility version traded, charged 0.92% of starting wealth in costs, and lowered the Sharpe ratio for the privilege. Dead.
The same winning strategy on a different coin. More on this below, because it's the best argument for testing everything.
The trap that nearly got me
The strategy that survived is embarrassing in its simplicity. Mebane Faber published it in 2007: hold the asset while price sits above its 200-day average, hold cash while it sits below. One moving average. Institutional research replicated it on Bitcoin in 2023. Decades of evidence, one parameter.
Here's the trap. I first ran that idea through the optimizer like everything else, letting it search for the best average length and stop. The search found +86% out-of-sample returns. It also failed DSR, hard: twelve test windows, twelve different winning parameter sets. The search was mining noise on top of a real signal and taking credit for both.
So I ran it again with zero search. Parameters frozen at the published values, one configuration, nothing to deflate. Bitcoin: +43% out-of-sample over six years with a 7.9% maximum drawdown, PSR pass. Ethereum: +39.6%, pass. The lesson cost me one afternoon and it generalizes: when a rule comes from decades of literature, tuning it can only add noise. Don't search. Test the published thing.
One more confession from that afternoon. My first zero-search run measured +5.16%, and several test windows showed exactly 0.00%. The strategy was fine; my test harness was broken. It only entered positions on a fresh signal, so any test window that started mid-uptrend sat in cash through the whole rally. A regime rule says "be long while the condition holds," and the harness was testing "buy when the condition begins." Fixing that one assumption took the measured result from +5% to +43%. Backtests fail in both directions.
A wider-stop variant of the same rule later passed too, at +81.8% on Bitcoin and +139.2% on Ethereum out-of-sample, with drawdowns near 19%. Same entries, same exits, more capital per position under an identical risk cap.
And the different-coin test: the identical frozen rule passed on Solana (+105.9%, PSR 0.965) and I shipped it. Then a capitulation strategy that worked on Bitcoin funding data showed no edge at all on Ethereum funding data: 90 events, 48% win rate, worse than baseline. Same idea, different market, opposite verdict. Every market gets its own trial.
What else survived
Two structural plays made it through, both built on perpetual futures funding rates, the hourly fees leveraged traders pay each other.
The first collects those fees with a delta-neutral position when they run hot. The second came from an event study I ran on a year of hourly funding data: 94 independent moments where the crowd paid extreme fees to bet against Bitcoin. Prices averaged +0.49% over the next 48 hours and +0.66% over 72, against a negative baseline, profitable after full round-trip costs. One year of data is thin, so that bot runs with a FORWARD TEST label on its card until live results and more history earn it an upgrade. The label is the honesty doing its job in the UI.
The afternoon it moved to the cloud
The whole fleet ran on my PC until I asked whether it could live on a $5/month Cloudflare Workers plan. Answer: yes, with room to spare. A cron trigger fires every five minutes, a TypeScript port of the engine trades against live exchange data, results persist in a serverless database, and the dashboard is an installable phone app with push notifications that only fire when a bot acts.
The port could have diverged from the validated Python engine without anyone noticing, so I made divergence impossible to miss: the Python engine exports golden test vectors, and the TypeScript engine must reproduce every trade, fee, and fill to the cent before any deploy. The port passed on the first run. My machine now does nothing; my phone buzzes when something happens.
That plumbing, none of it trading-specific, is what I packaged into PulseKit, the starter kit this build left behind.
What it honestly earns
I bootstrapped 10,000 simulated years from the validated strategies' out-of-sample history. A $1,000 stake shows a median of $1,042 after twelve months. The bad tail loses about $24. The good tail makes about $223. The wider-stop configurations project low-double-digit annual returns at the median.
Read that again if you came here for a money printer. Ten to sixteen percent a year at the median, with real drawdowns, on validated rules. That is what surviving the gate looks like, and it is the honest ceiling I found in one day of trying with unlimited AI leverage and full statistical rigor. Everyone advertising more than that, on retail data feeds and retail fees, is selling you the thing my gate spent a day executing.
The actual return on the day
Total compute cost: about $71. The platform runs itself for $5 a month.
But the asset the day produced isn't the fleet. It's the demonstrated loop: idea, test, verdict, ship or kill, with statistics standing between me and my own optimism. AI wrote the code fast; the gate decided what deserved to exist. Most of what we built that day was proof that most things don't work, delivered in hours instead of years, for the price of a dinner.
The capability is the asset. The skepticism is the product.
Disclosure: I packaged the non-trading plumbing from this build (the Workers cron engine, the iPhone push pipeline, the self-updating PWA) into a starter kit called PulseKit (https://pulsekit.fetcho.dev). The trading code stays my own experiment.
Everything here is paper trading against live market data. Nothing in this article is financial advice.
Top comments (0)