The 7 gotchas
1) Intrabar fantasy
Backtests often assume you “saw” every tick inside a bar and got filled at the exact price your logic wanted. In live trading, price prints come in bursts, queues matter, and your order hits the book after those prints. If your edge depends on perfect intrabar timing, expect live results to trail the backtest.
2) Zero slippage
Backtests love mid-price fills. Real fills don’t—especially on fast charts or thin books. Market orders can slide several ticks when momentum rips; limits avoid some slippage but miss moves entirely. The difference between “assumed” and “actual” execution is your edge tax.
3) Fee blind spots
Commissions, exchange/maker–taker fees, routing fees, borrow/funding, and occasional regulatory add-ons chip away at expectancy. A system that wins by fractions dies slowly when fees aren’t modeled right. Small edges require ruthless fee accounting.
4) Data drift
Live feeds, historical data vendors, corporate actions, and bad ticks never line up perfectly. A tiny symbol mapping issue or a revised candle can push a marginal system over (or under) the line. Treat data like weather: mostly predictable, sometimes squirrely.
5) Liquidity illusion
Your backtest isn’t in a queue. Live, you are—behind market makers, algos, and every trader hitting that level. Partial fills, rotate-to-market decisions, and widening spreads during news all change outcomes your sim never modeled.
6) Look-ahead / overfit
Optimizing until the equity curve looks flawless is how you memorize yesterday. True robustness shows up when you change the window, symbol, or timeframe and the logic still behaves. If a single parameter flip breaks it, it was curve-fit.
7) Execution gaps
Alerts, panels, extensions, APIs—each hop can delay or drop a signal. Rate limits, auth hiccups, or UI state (wrong tab, blocked click, modal open) create live-only failures that don’t exist in code. The wiring matters as much as the logic.
The fix: forward test it
Run the exact rules you plan to trade with the Automator:
-
Step 1 (Paper): Verify entries/exits trigger where you expect. Log time-to-signal, time-to-order, and obvious misses.
-
Step 2 (Micro live): Trade the smallest size. Capture time-to-fill, avg slippage, fill rate/non-fills, and all fees.
-
Step 3 (Compare order types): Market vs. Limit on your symbol/timeframe. Keep whichever nets better after costs.
-
Step 4 (Session testing): Open/close vs. mid-session; news vs. quiet. Your edge is regime-dependent—prove it.
-
Step 5 (Decide): If the live edge survives costs and chaos, scale slowly. If not, fix the execution (order type/offset/session) or retire the idea.
Start here: [Automate TradingView without webhooks or Python]
Faster start: [Prebuilt strategies made for the Automator]
Wrap-up
Backtests are chapter one. The live chapter is the one that pays (or doesn’t). Forward testing with real slippage, fees, latency, and misses is how you find out.
FAQs
Are backtests useless?
No—they’re great for idea filtering and spotting obvious flaws. They’re just not the final answer.
How many live trades before I trust it?
Enough to cover multiple sessions and volatility regimes. Think in batches (e.g., 100–300 signals), not one lucky week.
What if my live results are worse?
Change one lever at a time: order type (Market↔Limit), limit offset, or trading session. Let measured slippage, fill rate, and time-to-fill guide the tweaks—not hope.