A clean backtest doesn't guarantee a live winner. Watch for these:
Look-ahead bias
The engine guards against using current-bar values for current-bar decisions, but custom indicator setups can still leak. Spot it when a backtest catches every reversal exactly at the bottom.
Over-fitting
Tuning parameters until the in-sample backtest is great. The out-of-sample window then disappoints. Validate with walk-forward (run on years 1-3, test on year 4; slide and repeat).
Regime dependence
A strategy that won during 2020-2021 bull crypto may not win in choppy 2022. Test across multiple regimes.
Sample size
trade_count < 30 is essentially noise. Look for sample sizes that
let you estimate win rate with reasonable confidence intervals.
Survivor bias
If your candle data covers only currently-traded symbols, results are biased toward symbols that didn't fail. LucraX symbols are all currently traded - be careful generalizing from a single symbol.
Costs
Zero fees + zero slippage produces unrealistic numbers. Set them to your venue's actual rates.
Stop fills inside spread
In live trading a stop can fill at a slightly worse price than the trigger. Backtest doesn't model this. Account for a few bps of extra cost on stop exits.
Liquidation modeling
The engine does not simulate per-position liquidation precisely. For leveraged strategies near liquidation distance, treat backtest results as best-case.
What helps
- High trade count
- Walk-forward validation
- Out-of-sample testing
- Multiple symbols / regimes
- Paper trading before going live
