Paper vs live trading bot: what changes when money is real
A trading bot can look perfect on paper and stumble on its first live day. Not because the code changed, but because the market finally talks back.
The short answer
Paper trading a bot means running it on live prices with fake money. Most broker APIs that support bots offer a paper or "sandbox" mode for this.
Running a bot live means the same code sends real orders with real money.
Paper proves your code runs and your rules fire the way you meant. It can't fully show you real fills, real costs or what happens when something breaks with money on the line.
Side by side
| Paper bot | Live bot | |
|---|---|---|
| Money at risk | None | Real |
| Price data | Live (or near-live) | Live |
| Fills | Simulated, often instant and full | Real: can be partial, late or missed |
| Slippage | Often none or estimated | Real, worse in fast or thin markets |
| Fees and spreads | Sometimes ignored | Always charged |
| Errors | Easy to shrug off | Can cost money |
| Rate limits and outages | Rarely tested | Will happen eventually |
| Your feelings | Calm | Very much present, even if the bot clicks |
| What it proves | The logic and the code path work | How the whole system behaves for real |
What paper testing is great for
- Catching bugs. Wrong order size, wrong side, a stop that never gets placed.
- Checking the rules fire. Does the bot enter only when your written conditions are true?
- Testing the boring parts. Logging, restarts, what it does at the session close.
- Building a record. Weeks of logged trades you can compare with your backtest.
What paper testing hides
- Fill quality. A paper limit order may "fill" the moment price touches it. Live, you may be behind other orders and get nothing. See Partial fill.
- Slippage. A paper market order often fills at the last price. Live, it fills at whatever is available.
- Costs. Commission, spreads and, for crypto perpetuals, funding payments add up over many trades.
- Breakage. API timeouts, rejected orders, lost connections and exchange maintenance windows.
- You. It's tempting to switch off a live bot during a losing streak, or to turn up its size after a winning one.
A safe path from paper to live
- Paper for weeks, not days. Aim for enough trades to see losses as well as wins. Log every one.
- Compare paper to backtest. If results differ a lot, find out why before going further.
- Go live at the smallest size the market allows. A micro futures contract, a few shares, or the minimum crypto order.
- Keep the risk controls on. Size from the stop, a maximum daily loss that switches the bot off, and a maximum number of trades a day. See trading bot risk controls.
- Compare live fills to paper fills. Same signal, what price did each get? That gap is your real-world cost.
- Only then consider sizing up, slowly, and only if the live record still matches your plan.
Lock down the keys before going live. API keys go in environment variables, never in the code. Turn off withdrawal permissions and use IP whitelisting where offered. See API key security for trading bots.
Which fits you?
- New bot, new idea: paper only. There's no rush.
- Paper run looks steady over many trades: a tiny live test with a hard daily stop.
- Live test matches paper closely: keep logging. A small edge on paper can vanish once real costs land, so keep checking.
Our course includes the StructureX chart tool's full source code to learn from and build on: source code, not a ready-made trading bot.
Common mistakes
- Going live after a few good paper days. A short run proves almost nothing.
- No kill switch. A bug in a loop can send many orders fast. Cap trades and daily loss in the code.
- Assuming paper fills are real. Expect live fills to be worse, and plan for it.
- Changing the code and the size at the same time. Change one thing, test, then the next.
- Not logging every order. Without a record, you can't tell a bad rule from a bad fill.
Example code and bots for learning should always be tested on paper first. No bot is a ready-made trading system, and losses are always possible.
Questions
Is paper trading a bot accurate?
It's accurate for testing your logic and code, but it usually makes fills look better than real life. Live orders face slippage, partial fills, fees and outages that paper modes simplify or skip.
How long should I paper trade a bot?
Long enough to see many trades, including a losing stretch. For most rule sets that means weeks or months, not days. Then compare the results with your backtest.
Why does my bot do worse live than on paper?
The usual reasons are slippage, missed or partial fills, fees and spreads, and errors like timeouts. Comparing each live fill to what the paper run got shows where the gap comes from.
Does Alpaca have paper trading?
Yes. Alpaca offers a separate paper trading environment with its own API keys, so you can test a stock bot on live prices without real money.
Want the next step? We'll walk you through it.
Four free lessons by email, one every few days — each with a 10-minute exercise on a real chart.
Send Me the Free Lessons 4 short emails · No spam · Unsubscribe anytimeOr see the whole method, step by step:
See What’s Inside the Course Try everything free first. Decide when you're ready. · Open the free chart tool (works in the TradingView phone app)One chart idea a day, in plain English. Follow along: