Paper trading and incubation
Lesson 26 · about 10 min
A strategy that has passed its out-of-sample and walk-forward tests has cleared the cheap filters. The next filter is time: running the frozen rules forward, on data that did not exist when the rules were written, and comparing what happens with what the backtest predicted. This period is called incubation. Paper trading is one way to do it; tiny live size is another; both are better than skipping straight to full size.
What incubation tests
Incubation catches things the backtest cannot:
- True out-of-sample. The rules were frozen before this data existed. There is no way to have fitted it.
- Operational reality. Data feed hiccups, platform quirks, orders that do not go in because you were away, holidays you forgot.
- Repainting and evaluation differences. The live signals either match the historical ones for the same bars or they do not.
- Your ability to follow the rules. Whether you take the signal that arrives at a bad moment.
What it does not test well: fills. A paper account fills you at the displayed price, and displayed prices are optimistic in exactly the ways Module 4 describes. Paper-traded slippage is usually near zero, and you should keep applying the backtest's slippage assumption to paper trades rather than believing the paper fills.
Paper versus tiny live
| Paper account | Tiny live size (e.g. 0.1% risk, one micro contract) | |
|---|---|---|
| Fills | Optimistic | Real |
| Costs | Usually modelled or absent | Real |
| Emotional load | None | Small but present |
| Operational issues | Mostly caught | All caught |
| Cost of a bug | Zero | Trivial |
| Data feed | Sometimes delayed | Live |
Tiny live is better on almost every dimension and costs very little. The exception is markets where the minimum size is large relative to your account, in which case paper is the only option, and its fill optimism has to be corrected by hand.
How long
Incubation should run until the number of trades is large enough to compare with the backtest, not for a fixed calendar period. A useful minimum is 30 trades, and 50 is better. For a system averaging 60 trades a year that is six months to a year; for an intraday system it may be a month.
| System frequency | Trades per month | Incubation for 30 trades | For 50 trades |
|---|---|---|---|
| Swing, daily bars | 5 | 6 months | 10 months |
| Active swing | 12 | 10 weeks | 4 months |
| Intraday, 15-minute | 35 | 4 weeks | 6 weeks |
Thirty trades cannot confirm an edge (the sample-size arithmetic from Module 5 says so), but they can reveal a broken one, a mismatch in trade frequency, or a slippage assumption that was wrong by a factor of two.
Key idea: Incubation is the first test on data that could not have been fitted, run by a person who has to actually place the orders. It is not there to prove the edge; it is there to catch the ways the backtest and reality differ before those differences cost real money.
What to record
For every incubation trade, log the same fields as the backtest plus the operational ones:
| Field | Why |
|---|---|
| Signal time and price per the rules | To compare with what the tool showed historically later |
| Order time and price actually placed | Latency and discipline |
| Fill price | Real slippage |
| Stop, target, exit and R | The usual |
| Deviations from rules, with reason | Every one is a data point |
| Missed signals | Ones you did not take, and why |
After 30 trades, compare with the backtest on four numbers: trade frequency, win rate, average R, and slippage per trade in R. Trade frequency is the first thing to check, because a system that trades half as often live as in the backtest has a data or session mismatch, and that must be fixed before any other comparison means anything.
When incubation fails
An incubation result that is far worse than the backtest is information. The usual causes, in order of frequency:
- Slippage and costs were under-estimated (measure them; they are now known).
- The live signals do not match the historical ones (repainting, session, time zone).
- The rules were not followed (the log will show it).
- The strategy is overfit (nothing operational explains the gap).
The first three are fixable and you go back to the backtest with corrected inputs. The fourth is the answer you were paying to learn, and the correct response is to stop.
Try it: Set up an incubation log with the fields above before the next signal. Decide now the number of trades at which you will do the first comparison, and write down what backtest numbers you will compare against. Deciding the comparison in advance is what stops you moving the goalposts later.
Recap
- Incubation runs frozen rules forward on data that did not exist when they were written.
- It catches operational problems, repainting, discipline failures and cost errors; it does not prove the edge.
- Tiny live size beats paper on fills and costs; paper fills are optimistic and must be corrected.
- Run for at least 30 trades, preferably 50; compare frequency, win rate, average R and slippage.
- A large gap traces to costs, signal mismatch, or discipline first; if none of those, the strategy was overfit.
See it drawn
Original diagrams for the ideas on this page. Illustrative, not real market data.