A bot with no edge is the most disciplined way to lose money ever invented. It never hesitates. It never skips a signal. It pays every fee on schedule.
I learned this the expensive way, and I'd rather you learn it from a blog post.
Fees don't care that it's automated
Take a simple setup. A bot trades 20 times a day on a perpetual contract. Each round trip costs roughly 0.1% in taker fees plus slippage, which is a fair guess on a liquid pair and optimistic on a thin one.
That's 2% of position size per day in friction. Over a month it's north of 40%, before the strategy has made or lost a single dollar on direction. The bot would need a gross edge bigger than that just to break even.
Most strategies don't have it. A human discretionary trader taking three trades a week pays a small fraction of that cost, which is one quiet reason the slow, boring approach often beats the clever fast one.
Where backtests lie
Here's the thing about a backtest. It fills every order at the price on your chart. Live markets don't. In a fast move the fill is worse, in a thin book it's much worse, and the days you most want to be filled cleanly are the days you aren't.
Add the usual suspects. Curve fitting, where you tune parameters until the past looks great. Survivorship, where you only tested coins that still exist. A start date that happens to sit right before a bull run.
Grid bots are a good case study. In 2022, BTC fell about 77% from its November 2021 high. A grid bot in a falling market keeps buying every dip, so it fills up with a coin that keeps sliding. The bot's dashboard showed small, steady grid profits right up until the unrealized loss on the bag swallowed them. Automation did its job perfectly. The strategy was the problem.
Ask yourself this: would you pay a stranger 2% a day to run your account? That's effectively what an overactive bot does, and the invoice arrives in slippage rather than a bill.
Why most people get this wrong
Most traders treat the bot as the edge. Buy the software, pick the pair, turn it on, check back in a month. The software only executes. It has no opinion on whether the rule it's running is any good.
The mistake is subtle because automation does fix something real. It removes hesitation, revenge trades and the urge to close a winner early. That feels like improvement. But removing emotional noise from a bad signal gives you a clean, confident, repeatable bad signal.
My own first bot ran for about six weeks before I admitted the live numbers had nothing in common with the backtest. I wanted it to work, so I kept finding reasons to wait. That's human error, and no code removes it.
What I'd do instead
Judge the rule before you automate it. Strip it down to something you can write in three sentences. If you can't, it's probably fitted to noise.
Then put real costs into the test. Use taker fees, add slippage at two or three times what looks reasonable, and see whether the edge survives. If it only works at zero friction, it doesn't work.
Finally, go live small. Run paper first, then a size you can shrug off, and compare live results to the backtest over a meaningful number of trades. A big gap isn't bad luck. It's information.
That process is slow and unglamorous, and it's the part of automation nobody sells. We publish our backtest and live results at v33systematic.com, including the stretches that look bad, because a strategy you can't inspect isn't one you should fund.