How Flash Finance backtests are run
The rules behind every backtest on the site: universes, fills, costs, data guards, benchmarks and the biases that remain.
Flash Finance publishes several kinds of backtest: the Strategy Library (classic technical rules on Nifty 50 stocks), the portfolio engines on the Strategies pages, the sector rotation strategy, the AI Monthly Picks paper trade, the seasonality track record and individual research studies. A backtest is only as honest as its assumptions, so these are the ones they use.
Universe, trades and costs
| Backtest | Universe | How it trades | Costs assumed |
|---|---|---|---|
| Strategy Library | Today's Nifty 50 members, since 2014 | Long only, one position per stock. A signal is judged on the close and filled at the next session's open | 0.10% per side |
| Portfolio engines (Gap-Up, 52-week-high breakout, Momentum Top-20) | Today's Nifty 500 members, from 2004 to 2006 depending on the engine | Equal-weight portfolio, marked to market monthly; in cash while the Sensex is below its 200-day average | 0.25% per side |
| Monthly portfolio engine | The 750 largest companies by market value, price at least ₹20 | Monthly bars, positions held for six months | 0.30% per round trip |
| Sector rotation | Eleven NSE sector indices (duplicates removed) | The top four by three-month return, rebalanced monthly, with a 200-day filter | 0.20% on the weight traded |
| AI Monthly Picks | The 450 most-traded NSE stocks | The model's top 15% each month, equal weight; ranked walk-forward, so each month uses only a model trained on earlier data | 0.30% per round trip on the shares replaced |
Each strategy's own page restates its universe, period and costs.
Cleaning the price data
- Splits and bonuses. Exchange prices are not adjusted for splits and bonus issues. The portfolio engines back-adjust prices for a lasting jump of that kind, so a 1:2 split is not counted as a 50% loss.
- Bad prints. A one-day jump that reverses the next day is treated as a bad tick and skipped. In the Strategy Library, a trade spanning a one-day move of more than 40% is discarded as a probable price error rather than counted as a gain or a loss.
- Tradeable stocks only. The portfolio engines only take a signal in a stock whose median daily traded value over the previous 20 sessions was at least ₹1 crore in today's money (scaled down by the Sensex level for earlier years). This keeps out stocks locked at their price limit, whose paper returns could not have been captured.
Benchmarks and statistics
- The portfolio engines are compared with the Sensex, the seasonality picks with the Nifty 50 and the median stock, and the AI Monthly Picks with the average of its own universe. Each page names its benchmark.
- Results report the compound annual growth rate (CAGR), the maximum drawdown (the largest fall from a peak), the yearly returns and the win rate.
- A high win rate is not a good strategy. In our own comparison of technical strategies on the Nifty 500, two mean-reversion rules won about 64% of their trades and still lost money, because their losses were larger than their gains. Drawdown and return matter more.
- The Strategy Library re-runs each strategy with its main setting moved up and down, and splits its results by calendar year. A rule that works at only one setting, or in only one year, shows up as fragile.
Biases that remain
- Survivorship. Most tests use today's index members back in time, so companies that were dropped after doing badly are missing. This flatters older years; real results would have been lower.
- Price returns. The Strategy Library does not add dividends back.
- Fills. Real trades can cost more than the assumed costs on days with gaps or thin trading.
- Paper, not money. Live tracking is a paper trade. A backtest describes what a set of rules would have done in the past; it is not a forecast and not a recommendation.