Your Backtest Can Pass for the Wrong Reason: 5 Python Checks Before Deployment
The dangerous version runs cleanly, produces a smooth equity curve, and reports a Sharpe ratio that makes deployment feel obvious. Then live performance diverges because one quiet assumption allowed future information, ignored trading costs, or rewarded the luckiest configuration. Before trusting a backtest, I now ask five questions. This is the simplest causal invariant I know: Run the strategy on the complete dataset. Delete the final 20% of the data. Run it again. Compare signals in the shar…