The go-live checklist
Lesson 29 · about 9 min
This lesson collects the whole course into a checklist. It is deliberately long. A strategy that passes every item is not guaranteed to work; a strategy that fails several of them is very likely to disappoint, and the point of the list is to find that out before it costs money. Copy it, keep it with each system's documentation, and date each item as it is done.
Hypothesis
- Claim written in one sentence, dated, before any testing.
- Mechanism stated: who is on the other side, and why they lose to this.
- Falsifying result defined in advance.
- Expected win rate, average R and trade frequency written down in advance.
- Number of variations tested to reach this version is logged.
Data
- Source, instrument, session, time zone and bar interval recorded.
- Adjustment method (split, dividend, back-adjusted, ratio) recorded and matched to rule type.
- Futures roll rule recorded and matched to live practice.
- Universe is point-in-time or the survivorship effect is acknowledged and discounted.
- Bars far outside the ATR inspected; bad ticks removed or capped; sensitivity to cleaning checked.
- Bar counts per day and week checked; holidays and early closes handled.
- Data covers at least one full cycle (bull, bear, sideways) or the strategy is labelled regime-conditional.
Rules
- Filter, entry, exit and sizing each written as computable conditions.
- Order type named for every entry and exit.
- Stop-versus-target precedence stated (stop first by default).
- Stop honoured on the entry bar.
- Sizing formula references the stop distance; caps stated.
- Every parameter listed; degrees of freedom counted; trades per DoF at least 30.
- A second person, given the rules and a chart, would mark the same trades.
Costs and fills
- Commission set to the real schedule.
- Spread modelled per side.
- Slippage modelled (ticks, percent, ATR-scaled or volume-scaled) and stated.
- Market and stop fills at the next open or at the worse of stop level and bar open, plus slippage; no fills at the signal close.
- Limit fills require a trade-through, not a touch.
- Gaps through stops fill at the open.
- Holding costs (borrow, swap, funding) charged per period held, if the hold exceeds a day.
- Result recomputed at 2× and 3× slippage; edge survives 2×.
- Order size as a percent of bar volume checked; below 1% or volume-scaled slippage applied.
Results
- Trade list inspected: top five winners' share of profit, clustering of losses, outliers explained.
- Expectancy, profit factor, win rate, average winner and loser reported after costs.
- Standard error of expectancy computed; expectancy at least 2× standard error.
- Trade count at least 200 across more than one regime (or the shortfall acknowledged).
- Histogram of R built; shape described.
- Sharpe computed on daily returns with the frequency stated; per-trade Sharpe not quoted.
- Max drawdown in R and percent; longest time underwater; drawdown episode table.
- Return sliced by year; share from best two years noted.
- Monte Carlo reshuffle run; 95th percentile drawdown recorded.
- Long-biased strategies compared against an exposure-matched buy-and-hold.
Robustness
- Sensitivity table for the two most important parameters; result is a plateau, not a spike.
- Parameters chosen from the plateau centre, not the peak.
- Out-of-sample test run once on frozen rules; decay from in-sample between 20% and 40%.
- Walk-forward with at least five windows; OOS positive in most; parameters stable; WFE near 50% or better.
- Number of trials counted; observed Sharpe compared with expected maximum from noise for that count.
- Tested on at least two uncorrelated instruments where the mechanism should apply.
- Tested through the worst two-year period in the data.
Tools
- Trade list reproduced in a second tool or by hand for a sample of trades; differences resolved.
- Platform defaults for commission, slippage, sizing and fill checked and set.
- Higher-timeframe lookahead and every-tick evaluation ruled out.
- Forward-tested live signals match historical markers for the same bars.
Going live
- Incubation run for at least 30 trades at paper or tiny size; frequency, win rate, average R and slippage compared with backtest.
- Measured live slippage fed back into the backtest.
- Risk per trade computed as tolerable drawdown ÷ (Monte Carlo 95th percentile × 1.25).
- Starting size set at half the computed figure.
- Monitoring table built with backtest values and alarm levels.
- Five stop rules (drawdown, expectancy, mechanism, cost, discipline) written with numbers and dated.
- Review procedure written: add live trades, rerun with measured costs, resume at half or retire.
- Commitment written: no changes to live rules outside the pipeline.
Using the list
The list is long because each item corresponds to a way that real strategies have failed real traders. Do not treat it as a formality; treat each unchecked item as an open question about whether the backtest means what you think. Most strategies will fail several items on the first pass. That is the list doing its job.
Key idea: A backtest is a chain of assumptions, and the checklist is the list of links. A strategy is ready to trade when every link has been inspected, not when the equity curve looks good.
Try it: Print this list and go through it for your best current strategy, honestly, marking each item done, not done, or not applicable with a one-line reason. Count the "not done" items. Then decide, based on that count and not on the equity curve, whether it is ready.
Recap
- The checklist covers hypothesis, data, rules, costs, results, robustness, tools and going live.
- Each item corresponds to a documented way backtests mislead.
- Expect several failures on the first pass; that is the purpose.
- Readiness is decided by the checklist, not by the equity curve.
- Keep the completed list with the system's documentation and date every item.
See it drawn
Original diagrams for the ideas on this page. Illustrative, not real market data.