Skip to content

How we backtest, and why most intraday strategies fail our tests

The rules behind every number on DataPointX. Point-in-time NIFTY 50 stocks, next-bar fills, real Indian brokerage and statutory costs, three separate periods, a slippage stress test and a random-stock benchmark.

Verdict

Every report shows net after costs, a +3 bps stress test and three periods. No exceptions.

Most backtests you see online make three mistakes. They test on today’s index members, so the stocks that crashed out of the NIFTY 50 are missing. They fill orders at prices nobody could have got. And they skip costs, or treat them as a rounding error. Any one of these can turn a losing strategy into a winning one on paper.

This page lists the rules every DataPointX result follows. The same rules are built into dpx_bt, the engine behind our posts and the Ask assistant, and you cannot switch them off.

10.7 yrs
Jan 2016 – Aug 2026
1-minute and 5-minute bars
76 of 79
past and present NIFTY 50 stocks
point-in-time membership
6.5 bps
cost of one round trip
₹5 lakh intraday trade
3
separate test periods
2016–20 · 2021–23 · 2024–26

1. The right universe on every day

We test only on stocks that were in the NIFTY 50 on that day. When YES Bank left the index in March 2020, it leaves our universe that day. When Trent joined in September 2024, it enters that day. Testing today’s 50 stocks over ten years quietly drops the losers and adds the winners, and makes almost any long strategy look better than it was.

One gap we can’t close yet: three of the 79 stocks that were members at some point since 2016 have no minute data in our snapshot: HDFC Ltd (merged into HDFC Bank in July 2023), Cairn India and Tata Motors DVR. On days they were members, the universe is one to three stocks short.

2. Fills you could actually get

A signal is read when a bar closes and the order fills at the next bar’s open, never at the bar’s own close, high or low. The two exceptions are written into the rules: a stop or limit order resting at a known level (an opening-range high, a pivot) fills at that level, or at the open if the price gaps through it.

Stops and targets are checked on the bar’s high and low from the entry bar on. A gap through the stop fills at the open, not at the stop. Everything is closed at 15:15 (15:10 from 3 August 2026). Positions never carry overnight.

3. Real costs on every order

We use the charges of a typical Indian discount broker. Zerodha, Groww, Upstox, Angel One and Dhan all charge a flat ₹20 per intraday order at this trade size; the rest are statutory charges every broker passes on. For a ₹5 lakh intraday trade in a ₹1,000 stock (500 shares), one round trip costs:

Item ₹ bps of the trade
Brokerage (₹20 per order, both sides) 40.0 0.80
STT, 0.025% on the sell side 125.0 2.50
NSE transaction charges, 0.00307% 30.7 0.61
Stamp duty, 0.003% on the buy side 15.0 0.30
GST at 18% and SEBI fees 13.9 0.28
Slippage, 1 bp on each fill 100.0 2.00
Total 324.6 6.49

Rates as of October 2026. Brokerage is capped at ₹20 per order and everything else is a percentage, so any ₹5 lakh round trip costs about 6.5 bps, whatever the stock. A strategy needs to earn more than that on average before costs just to break even. Most of the setups we test earn 1–5 bps.

We charge slippage as a percentage (1 bp per fill) rather than a fixed amount per share because our price history is adjusted for splits and bonuses: Reliance shows about ₹385 in early September 2017, when it actually traded near ₹1,550. A per-share charge on adjusted prices would overstate costs in older years.

We also report every strategy with 3 extra basis points of slippage on each fill. Real fills, especially on fast breakouts, are often worse than the open of the next bar. If a result flips from profit to loss with 3 bps of slippage, it is too fragile to trade.

4. Three periods, judged separately

We split the history into 2016–20, 2021–23 and 2024–26 and report each one separately. A result that only works in one period is a story about that period, not a strategy. When we pick a setting from several, we pick it on 2021–23 and report the other two as untouched tests. We also say how many variants we tried: test 50 settings and one will look good by luck.

5. A random-stock benchmark

For strategies that enter at the next bar’s open, we rerun every trade 200 times on a randomly chosen NIFTY 50 stock at the same minute, in the same direction. If the strategy’s stocks don’t beat these random picks, any profit comes from the market’s move that day (timing), not from picking the stock.

What a report looks like

Every backtest, on this site or in Ask, ends with the same table: trades, gross edge per trade, win rate, net after costs, net with +3 bps slippage, each period, profit factor and maximum drawdown, followed by automatic warnings, for example:

  • Edge smaller than costs: 4.5 bps gross vs ~6.5 bps of costs per trade.
  • Not robust: loses money in 2024-26.
  • Fragile: 3 bps of extra slippage per fill wipes out the profit.

Most ideas get at least one of these. That’s normal, and spotting it before you trade is the point of a backtest.

What we don't publish

These posts cover setups that don’t work, and the methods that show it. They are research on historical data, not advice, and nothing here tells you to buy or sell anything.

Have a variation in mind?

Ask runs your own idea on the same data and rules, with the same report: net after costs, +3 bps stress test, three periods.

Try Ask

Backtest on historical data (Jan 2016 – Aug 2026), net of discount-broker (₹20 per order) and statutory charges and 1 bp slippage per fill. Education and research only, not investment advice. Past results do not predict future returns. Disclaimer.