A backtest is a hypothesis test. Run it badly and it becomes a sales brochure you have written for yourself. Most of the strategies that reach us look excellent on first sight and lose most of their apparent edge to three things: look-ahead in the data, costs modelled as a round number, and parameters fitted on the same window used to report results.
What we check, in order
- Data. Point-in-time correctness, survivorship, adjusted versus unadjusted series, expiry and roll conventions, missing bars, timestamp alignment between feed and broker.
- Look-ahead. Signals computed on bars that had not closed, indicators peeking into the future, next-day data leaking into today's decision.
- Costs. Brokerage, STT/CTT, exchange transaction charges, SEBI turnover fees, GST, stamp duty, and impact cost per leg — modelled at the leg level, not netted at the end.
- Fills. Whether the assumed execution price was available at that moment, in that size, and what a realistic queue position implies.
- Robustness. Walk-forward folds, parameter surfaces rather than a single champion setting, and behaviour across volatility regimes and crisis windows.
What you receive
A written report with the equity and drawdown curves, per-fold statistics, the cost breakdown, sensitivity maps, a list of every assumption, and the trade-by-trade log so you can audit any single day. Plus the harness code itself, so the next test is yours to run.
When the answer is no
Sometimes the honest verdict is that the strategy does not survive costs, or that its performance came from four days in the sample. We write that down as clearly as we would write a success. It is a far cheaper way to learn it than live.
Backtested and simulated results have inherent limitations, are prepared with hindsight and do not represent actual trading. They are not indicative of future results.