Picture a bot with a bug. A data feed returns a stale price, the signal flips, and the bot opens and closes the same position thirty times before lunch. Each trade loses a little to fees and slippage.
By the time you check your phone, the account is down 9% and the bot is still cheerfully following its rules.
A smaller version of this has happened to me, and the next morning I added a rule above every signal I run. It's the most boring piece of code in the system, and I'd keep it over any entry improvement I've ever made.
The rule that sits above everything else
A kill switch is a hard limit that halts the bot when the day goes badly wrong. Say it's 3% of equity. Lose 3% in a session and the bot stops opening trades, cancels resting orders, and waits for a human.
It doesn't ask why. Bad signal, broken feed, exchange glitch, regime change. The switch doesn't diagnose anything. It just stops the bleeding so you can do the diagnosing.
Here's how I think about sizing it. Your backtest has a worst normal day, say -2%. A -6% day isn't an unlucky day for that strategy. It's evidence that something other than the strategy is running the account.
Why it beats a better signal
Take the 9% scenario above. Recovering from a 9% loss takes a gain of about 9.9%. Recovering from a 3% loss takes about 3.1%. Same bug, but one version costs you a bad afternoon and the other costs you weeks of trading just to get back to flat.
These numbers are illustrative, not from a backtest. The arithmetic of drawdowns is not illustrative, though. Losses are cheaper to cap than to recover.
A signal improvement might add a point to your win rate on average. A loss limit changes the worst day you can have. For an account that has to survive for years, the worst day matters more.
Most automated accounts don't die because the strategy turned out to be wrong in the usual way. They die because the strategy ran outside the conditions it was built for, with nobody watching.
Why most people skip it
Partly it feels like admitting the bot might fail. Partly it's annoying: set the limit too tight and normal volatility trips it, so people loosen it, then remove it.
The fix for that is to set it from data, not mood. Pick a multiple of your worst backtested day and leave it alone.
The other common mistake is the soft kill switch, meaning a Telegram alert. Alerts need a human who's awake and near a phone, and the bad day doesn't wait for 8am. The stop has to be code that acts. The alert is what you send afterward.
What to build
Three pieces, and none of them is clever. A daily loss limit measured on total equity, open positions included, not just closed trades. A halt that cancels orders and refuses new entries. And a manual restart, so the bot can't switch itself back on.
Whether the halt also flattens open positions is a judgment call. I'd settle that question now, in daylight, not at 3am with a number falling on the screen.
Then test it. Set the limit to 0.1% in paper mode and watch it trip. A kill switch you've never seen fire isn't a control. It's a hope.
One last thing
If you run any kind of automation, add this before you add anything else. At v33 Systematic we publish our methodology and full backtest data at v33systematic.com, and the risk controls are the part I'd read first.