What a 99.99% Drawdown Taught Me About Building Trading Bots

The first trading bot I ever shipped to a live account lost almost everything. Win rate: 25%. Maximum drawdown: 99.99%. It did not blow up because the market was cruel. It blew up because I built it the way most people build their first bot — as a prototype held together by my own opinions.

This is the story of why I deleted every manual rule from the system that came after it, and what that decision taught me about where human judgment actually belongs in an automated strategy.

Illustrative equity curve climbing modestly to a peak, then collapsing almost to zero Illustrative, not real performance data. The collapse wasn’t one bad trade — it was a thousand small, confident, wrong ones.

The comfortable mistake

When you start, hard-coded rules feel like control. Stop-loss at 3%. Take-profit at some round number. Position size from a formula you read in a blog post. Each rule feels prudent in isolation. Together they form a brittle machine that has never seen the situation it’s about to face.

My first system was full of these. It also did its number-crunching on the CPU, in loops, the way you’d write a one-off script. None of that mattered while I was backtesting on clean, friendly data. All of it mattered the moment real conditions — fees, slippage, the possibility of liquidation — showed up. A 3% hard stop that looks disciplined on paper becomes a machine that sells into every bit of noise and never lets a thesis breathe. The drawdown wasn’t one catastrophic trade. It was a thousand small, confident, wrong decisions.

The uncomfortable lesson

The lesson was not “tune the stop-loss better.” It was that I was the bottleneck. Every hard-coded threshold was me freezing a guess into the system and forcing the future to comply with it.

So in the next system I made a rule about rules: inside the part of the model that actually learns, there are no manual rules at all. Not stop-loss, not take-profit, not position sizing, not leverage. If a decision affects how the strategy acts, the model has to learn it from the consequences of acting — not inherit it from my intuition. (System-level safety — exposure caps, a kill-switch — is a separate layer, and it stays. What goes is me hand-writing the trade.)

That sounds extreme, and it is. It also forces a discipline that quietly addresses several common beginner failures:

Where humans still belong

Removing manual rules doesn’t remove the human. It relocates them. I no longer decide what the model does in a given moment. I decide what “good” means — the objective it’s rewarded for, the conditions it trains under, the costs it must respect. Designing that objective is the most human part of the whole endeavor, and getting it wrong is far more dangerous than any single bad trade, because the model will optimize exactly what you asked for, not what you meant.

That’s the trade I’d make every time: stop pretending I can hand-write the decision for every future state, and instead spend that effort defining the world the system learns in.

The takeaway

A 99.99% drawdown is an expensive teacher, but a clear one. The bot didn’t fail because it lacked rules. It failed because it had my rules — rigid, untested against reality, and substituting for learning instead of enabling it.

If you’re building your first system, the most useful thing you can delete is your own certainty.


This is part 1 of an ongoing, anonymous log of building a reinforcement-learning trading system. It’s about method and mistakes, not signals — nothing here is investment advice, and no strategy details are shared.