How we built this — and how we landed on what we run today
The honest versionThis is an experiment, run in the open. That promise only means something if we show our work — including the parts that didn’t go to plan. Here’s the whole path, start to finish, in plain language.
Where we started
The idea was simple to say and hard to do: build an automated system that picks a small number of stock trades and, over time, does better than just buying the S&P 500 and holding it. We didn’t want one magic indicator. We built three separate “engines,” each looking for a different kind of opportunity:
- Breakout — stocks coiling in a tight range and then pushing through it.
- Mean Reversion — stocks that have been knocked down too far, too fast, and tend to snap back.
- Relative Strength — the strongest names in the market, the ones already leading.
Every signal the system produced was meant to be tradeable, transparent, and graded against the same benchmark: the S&P 500.
The part we’d rather skip — but won’t
When we first put the system through its paces, the early trades lost. Not one or two — the first handful went against us, in a row. This was private testing, with nobody following along yet — but it stung all the same, and it turned out to be the most useful thing that could have happened, because it forced us to stop admiring the design and actually take it apart.
A losing streak early on is either a reason to quit or a reason to dig. We dug.
What we found when we dug in
Three problems, and they compounded on each other.
1. The list of stocks was far too small
We were only looking at 66 hand-picked, recognizable names. The original reason was “keep it familiar and keep costs down” — but that reasoning didn’t hold up. Our data plan is flat-rate; scanning thousands of stocks costs the same as scanning sixty. Worse, a tiny list quietly broke two of our three engines. The Relative Strength engine ranks stocks against the rest of the field — and the “strongest of 66” is close to meaningless. The Breakout engine needs a deep pool to find clean setups, and in a three-year test on the small list it fired zero times.
2. One engine was quietly winning every day
The three engines scored opportunities on different scales, and we were simply taking the highest score. But Breakout ran “hot” — its numbers were systematically higher — so it won almost every day and the other two barely got a turn. We were running three engines but effectively listening to one. We fixed the scoring so the three are compared on a level playing field.
3. We were using the same tool in every kind of market
When we finally tested the engines across different market conditions, a clear pattern showed up: each engine is good in a specific environment and poor in others. Mean Reversion does its best work in shaky, falling markets. Relative Strength wants a healthy uptrend. Running all three full-blast regardless of the weather guaranteed we’d use the wrong tool a good share of the time.
The rebuild
So we rebuilt the front half of the system as a funnel — wide at the top, narrow at the bottom:
- Start with the whole market. Instead of 66 names, we now build a universe of roughly two thousand genuinely liquid, easy-to-trade stocks, refreshed on a schedule.
- Narrow to what’s actually in play today. Each morning we pull the names that are moving and the names that are strongest, and hand those to the engines — not the whole haystack.
- Route by the market’s weather. We read whether the market is trending up, trending down, or chopping sideways, and lean on the engine that historically fits that condition. The right tool for the day, not the same tool every day.
The insight that changed everything
Even with the rebuild, one number kept nagging: we were still trailing the S&P 500. The reason wasn’t the trades — it was the cash sitting between trades. A careful system only holds a few positions at a time, so most of the money was sitting idle, earning nothing, while the market marched higher. In a rising market, idle cash is a slow leak.
Our edge wasn’t broken. Our idle cash was the problem.
The fix is the piece we’re proudest of for being so boring: when we’re not in a trade, the money isn’t in cash — it’s parked in the S&P 500 itself. When an engine finds something worth doing, we sell just enough of that parked position to fund the new trade. When the trade closes, the money goes back to riding the market. We stay invested by default and step out only for a specific reason.
How we proved it — before risking anything
We have a rule: an engine doesn’t go live just because it looks good in the past. Anyone can find a strategy that would have worked if they’re allowed to peek at the answers. So we tune each engine on an early slice of history and then grade it on a later slice it has never seen. If it can’t stay profitable on data it wasn’t built around, it doesn’t earn a seat.
On that held-out test, here’s how the engines landed:
- breakout — too few trades on the held-out data to judge fairly — we keep watching it.
- mean reversion — too few trades on the held-out data to judge fairly — we keep watching it.
- relative strength — stayed profitable on data it never saw. It earned its seat.
With idle cash parked in the market and the engines routed by condition, the rebuilt system backtests to about +26.2% a year versus roughly +19.6% for buying and holding the S&P 500 over the same stretch — a difference of about +6.6% a year. You can see the year-by-year on our backtested results page, and the exact rules behind every trade on our how we trade page.
We handed the lab to a sharper mind
Once the rebuilt system was working, we did something we think anyone running an experiment like this should do: we handed the entire testing laboratory to the most capable AI model available today — Anthropic’s Fable 5 — and asked it to try to tear our own results apart.
It earned its keep in an afternoon. First it found several places where our own testing had been quietly flattering us — measurement mistakes, not trading ones. Prices that weren’t adjusted correctly for stock splits. A market-routing rule our tester wasn’t actually applying. A position-size limit the backtest had set at double what the real account uses. We fixed every one — and each fix made the headline number smaller.
Every correction lowered the number and made it more honest. We’ll take honest every time.
Then it found something that made the system genuinely better. Our strongest-names engine had been cutting its winners at a fixed target — capping exactly the market leaders it exists to catch. We changed it to trail instead: let a winner keep running while a protective stop ratchets up behind it, locking in gains without choking them off. In testing, that one change both raised the edge and lowered the worst drawdown — because a trailing stop also cuts losers sooner. We took the same trades we were already taking and simply kept more of what worked.
With that refinement done, we’ve reset the scoreboard to zero and relaunched today — nothing carried over, no positions held — so the forward record you follow from here is the refined system, run clean and in the open.
Where we landed — and what we’re honest about
What we run today is the system above: a deep universe, a daily funnel that narrows to what’s in play, engines routed by the market’s condition, our strongest-names winners left to trail, idle cash kept invested in the S&P 500, and a hard rule that nothing goes live until it proves itself on data it never saw.
And the honest caveats, because this is an experiment and not a sales pitch:
- The strong numbers above are backtested and hypothetical — built with the benefit of hindsight. Real life is messier.
- The backtest uses today’s list of surviving companies, which quietly flatters the results.
- Parking idle cash in the market cuts both ways: when the market falls, we fall with it.
- A trailing exit shines most in steady, trending markets — the recent stretch was exactly that, which flatters it. We fully expect leaner, choppier periods where it gives back some of that edge.
- We trade in a paper (simulated) account, not with real money, and nothing here is advice.
That’s the whole story so far. If you want to follow along, the backtested results show how the system grades out, and every signal we publish is the same system, working in the open.