Two days ago I published a write-up about a small ETH/USDC bot that asks a typed-question judge every minute and switches the whole position when five judgments in a row agree on the trend. On paper, over a few quiet nights, it lost a little to just holding ETH. Two readers said the same thing from two sides: a switch should depend on new information (the price), not on the same opinion repeated, and a hedge should be judged on the crash it sits out, not on a quiet week.
So I built a replay: the same engine, votes, filters, limits and judge, run over historical Coinbase candles under a simulated clock, with a cost scenario for every fill and the date hidden from the model. Then I put four versions of the bot and "just hold" through five windows: seven months of 2022, six months of the 2023–24 rise, and three single months with a crash, a collapse and a rally. Everyone starts with $10,000. The repo is public (trend-switcher, MIT); every number below is a row in SESSIONS.md.
The four bots
All four share the base from the first post: a judgment every five minutes, a switch of the whole position when 5 of the last 6 judgments agree on the trend, a 3 % daily and a 30 % total loss limit that freeze the bot until someone resets it. They differ in one rule each:
Bot 1 — votes only. The rule of the first post: five agreeing judgments are enough.
Bot 2 — votes + a price breakout. A switch also needs the price 0.9 % beyond the high or low of the last two hours of closed candles.
Bot 3 — votes + breakout, and a loss limit never blocks a sale. A latched loss blocks only buying back; selling into USDC stays allowed.
Bot 4 — bot 3's exit, and a different way back. It buys ETH again as soon as the price is 0.9 % above the level it sold at. No votes needed for that; the judge decides when to leave, the price decides when to come back.
The results
| Window | Holding ETH | Bot 1 | Bot 2 | Bot 3 | Bot 4 |
|---|---|---|---|---|---|
| May–Nov 2022: Luna, the June low, FTX | −52.5 % | −49.5 % | −10.8 % | −16.5 % | +0.9 % |
| Oct 2023–Mar 2024: a rise with two pullbacks | +118.2 % | −4.9 % | +79.8 % | +28.2 % | +104.0 % |
| May 2021: a choppy top, then the crash | −2.5 % | +50.0 % | +7.0 % | +14.9 % | −13.7 % |
| November 2022: FTX | −17.7 % | −17.9 % | −17.7 % | −6.6 % | −6.6 % |
| February 2024: a straight rally | +46.7 % | +19.5 % | +46.7 % | +46.7 % | +46.7 % |
Net of all costs, including the judge calls and the fills. Four windows out of five are a story each.
The fall. Over seven months of 2022 holding ETH lost half, with a worst drop of 70 %. Bot 4 sold once, on 5 May at 2,753, and the price never came back 0.9 % above that level, so it sat in USDC through Luna, the June low and FTX and ended the year flat: +0.9 %, worst drop 7 %. Bot 3 made the same exit but came back on breakouts, 25 switches through the summer rallies, and gave most of its lead back. Bot 1 switched 130 times and lost almost as much as holding.
The rise. This is the window that killed my earlier favourite. From October 2023 to April 2024 ETH went from 1,670 to 3,645. Bot 3 sold in November, and its way back needs a 0.9 % burst above the two-hour high at the very moment five judgments agree, which a slow, steady rise almost never prints. It sat in USDC for three and a half months and made +28 %. Bot 4 made the same sale and was back in the next day, 0.9 % above the level; six such round trips cost it 14 points of the 118 the market gave. Bot 1 switched 610 times and ended below where it started while ETH doubled.
The chop. May 2021 is the month bot 4 loses. A choppy top where every 0.9 % dip was a sale and every retest a buy-back 0.9 % higher: six round trips and −13.7 % against −2.5 % for holding. Bot 3, which needs a breakout to come back, made +14.9 % there. And bot 1 made +50 %, because its constant switching happened to land in USDC at the crash of 19 May; it is the same rule that gave back more than half of February 2024 and all of the 2023–24 rise.
The collapse. In the FTX month bots 3 and 4 sold at the same instant, 8 November at 1,468, and stayed out: −6.6 % against −17.7 %. Bots 1 and 2 ended where holding ended; bot 2's loss limit had latched before the votes lined up and blocked the one sale that mattered.
The rally. In February 2024 nobody with a breakout condition switched at all, so the insurance cost nothing. Bot 1 switched 95 times and gave back more than half of the gain.
What the default is now
Bot 4. It beat holding in three windows, matched it in one and lost in one, and its worst window against holding is 14 points behind, where bot 3's is 90. That is the shape I wanted from the start: when the market falls, the stops save you; when it rises, you are not sitting outside. Bot 3 stays one line in .env away (STRATEGY=hedge), and so do the other two.
Every number above is one run of a stochastic judge per bot. The first eleven weeks of the 2022 window were run twice during the week, with a different judge draw, and the order of the bots held while the numbers moved. Treat the table as a ranking with an error bar, not as a return.
What a replay cannot say
The judge may have seen 2021 and 2022 in its training; the date is hidden from it, the price level is not. The fills are a scenario, the pool fee plus the price impact I measured on the real pool at $10,000, not historical quotes; the pool did not exist in 2022. And it is one pair on one pool. The repo now also supports the same rules on Ethereum, Arbitrum, Optimism and Polygon with ETH, ARB, OP and POL against USDC, with every address checked on-chain, but none of those has run; several of those pools are too shallow for a $10,000 switch, and the README says which.
Size matters through the pool, not the strategy: a round trip on the Base pool costs 0.10 % at $1k, 0.13 % at $10k, 0.36 % at $100k and 2.8 % at $1M in real quotes. Seven months of judging cost about three dollars per bot.
Who this is for, and who it is not for
For someone holding ten to a hundred thousand dollars of ETH who wants a cheap insurance against a crash, accepts a whipsaw tax in choppy weeks and a late exit in a fast one, and will not read "+0.9 % in 2022" as a promise. Not for small balances, not for a million on this pool, not for anyone who wants income in a sideways market, and not for live money: the live mode exists, is deliberately hard to arm, and I have not used it.
What is in the repo
SESSIONS.md rows 9–14 (the replays), the four strategies (STRATEGY, README: Strategies), the re-entry rule and its margin, the markets, the replay tool, a recorded-judge replay that lets you screen a rule change over a finished window without paying the judge again, a pool-impact probe, and 204 tests. If you replay a month I did not, I would like to see the row.






Top comments (2)
The 2022 row for bot 4 is one decision: the sale on 5 May at 2,753, after which the re-entry rule never fired. So that window measures how early the judge said "down", once. A control would separate the judge from the exit and re-entry rules: replay bot 4 with the judge's votes replaced by random votes that switch about as often as the real ones, over many seeds, and see where +0.9% falls among them. If random judges also sell in the first days a fair share of the time, the row belongs to the rules; if they mostly sell later and lower, the judge earned it. Your recorded-judge replay should make the random version nearly free to run. The same goes for the choice itself: bot 4 was picked after seeing these five windows, so a month none of the four has run on is its first real test.
Appreciate your feedback it really helps. Now i have a better conclusion about this bot. The judge isnt a key, but it helps. I just tested it with random decisions - 99 bots: 17 decided to sell at the same time, the rest sold later around -31%. So code saves you from the fall, not judge.
Bot without judge sells on each breakthrough. But during rise it gives too many actions. So the judge is who denies actions during rise, and during fall it accepts sales.
Also i ran a normal test on Sep 2026 and bots decided not to do any actions. Hold was +8.7% so they were +8.7% with no moves. This bot is very long term so it is hard to test it properly. I think now to run a live session 1 month with virtual balance but in real time. But results might be also boring.