There is a specific way intraday backtests lie, and it is not the signal. It is the arithmetic underneath.
A monthly strategy rebalances twelve times a year. An intraday strategy that enters at the open and exits at the close trades roughly 250 times a year, both legs. If a round trip costs 30 basis points all-in, the monthly strategy pays under 4% a year in costs and the intraday one pays a multiple of its entire expected edge. The signal can be perfectly real and the strategy still unprofitable, and no amount of staring at the equity curve will show you which situation you are in unless the cost model is right.
So this is a post about costs with a strategy attached.
What “intraday on daily bars” means
You do not need minute data to backtest an open-to-close strategy, and pretending otherwise stops a lot of people from testing the idea at all.
A daily bar carries four prices: open, high, low, close. A strategy that buys at the open and sells at the close of the same session needs exactly two of them. The signal is computed from the previous session’s completed bar, the entry fills at today’s open, and the exit fills at today’s close. Every number involved was knowable at the moment it was used.
What daily bars cannot tell you is the path — whether the position was 3% underwater at 11:00 before recovering. That matters if your strategy uses intraday stops, and it means this construction is only honest for strategies that do not. An open-to-close hold with no stop is one of them.
The one execution rule that makes it honest
The single most common flaw in retail intraday backtests is computing a signal from today’s close and filling at today’s close.
It sounds harmless. It is not. If the signal reads today’s closing price, you did not know it until the market had closed — at which point you cannot trade at that close. The backtest is executing on information that arrives after the fill. Every result it produces is unattainable.
The correct timing is: decide on the previous bar’s completed data, fill at the next bar’s open. This is the only sequence a live system can physically achieve, because it is the only one where the decision precedes the fill. Our engine defaults to it for exactly this reason, and intraday strategies require it — the alternative is not a configuration option so much as a way to fool yourself.
The corollary is that any signal reading close is reading yesterday’s close. A strategy screening for “closed in the top quarter of its range” selects stocks based on yesterday’s session and buys them at today’s open. That is a real, tradeable sequence. It is also a weaker signal than the naive version, which is precisely why the naive version backtests better.
Square-off is a session-level action
An intraday strategy is defined by one property: no position survives the close. That has to be enforced by the engine, on the whole book, driven by the exchange’s session calendar — not by a per-position rule and not by the data’s own date axis.
The distinction matters more than it sounds. If square-off is driven by “is this the last bar in my data,” then on a date-granular daily panel every bar looks like the end of a session, and the strategy squares off on every bar whether or not that was the intent. Anchoring it to the exchange session — which knows Indian markets close at 15:30 IST, and which days are holidays — is what makes the behaviour correct and portable to a market with different hours.
It also means a strategy cannot be half-intraday. Square-off applies to the whole book. If you want an intraday sleeve and a positional sleeve, run two strategies and allocate between them.
The cost stack, itemised
For an Indian intraday equity trade, the charges are different from delivery — and mostly lower, which is why the strategy is viable at all:
- STT is charged at 0.025% on the sell side only for intraday equity, against 0.1% on both legs for delivery. This is the single largest structural advantage of intraday trading in India.
- Exchange transaction charges, SEBI turnover fees and stamp duty apply on both legs at small rates.
- GST at 18% applies on brokerage and transaction charges.
- Brokerage is zero at several discount brokers for equity delivery but typically flat per order for intraday.
Add it up and a round trip lands in the region of a few basis points of statutory cost — meaningfully less than delivery. Then add the part that is not on any rate card.
Slippage is the dominant term. The open is the least orderly moment of the session: spreads are widest, the price discovery from overnight news is still happening, and a market order competes with every other market order queued overnight. A 15 basis-point slippage assumption at the open is not conservative, it is roughly realistic for a liquid large cap, and worse for anything else.
Participation matters more. Placing an order for 2% of a stock’s entire daily volume in the first minutes of trading will move the price against you. A participation cap that limits a single day’s trade in one name to a small fraction of that bar’s volume is the difference between a modelled fill and an imaginary one.
The test that actually decides
Run the strategy with your cost assumptions. Then run it again with slippage doubled and nothing else changed.
If the second run is unprofitable, the first run was measuring your cost assumption, not an edge. That is the finding — and it is a genuinely useful one, because it tells you the strategy needs a bigger per-trade edge rather than better parameters.
This test is worth running on any strategy, but on an intraday one it is not optional. At 250 round trips a year, the strategy’s profitability is a function of the cost model to a degree that has no analogue in a monthly strategy.
What you are actually buying
The reason to run an intraday book despite all of the above is structural, not statistical: no overnight gap risk.
A positional portfolio is exposed to everything that happens between 15:30 and 09:15 — earnings, global markets, policy announcements, geopolitics. Indian markets regularly open several percent away from the previous close. A book that is flat at the close cannot gap.
That is a genuinely different risk profile, and it is worth something to a portfolio that already holds positional strategies. Whether it is worth 250 round trips of costs is the question this template exists to let you answer with numbers rather than opinion.
Try it
The Intraday Gap Continuation template screens Nifty 100 constituents for a strong prior close — in the top quarter of the day’s range, with delivery above 45% — buys the ten strongest at the open, and squares the whole book off before that day’s close. Participation is capped at 1% of volume and slippage is set at 0.15%.
Do the doubled-slippage run before you conclude anything. Then compare the drawdown profile against any of the positional templates and note where the difference actually shows up — it is not in the average, it is in the days the market gapped.
Further reading
Costs and fills decide this strategy, so those are the posts to read next:
- Brokerage charges in India: the full cost stack itemises every statutory charge on a round trip
- Slippage in trading: why live fills are worse covers the part of the cost you cannot look up in advance
- Backtest execution timing: fill at the next bar’s open for why the fill has to follow the signal rather than share its bar
- Short selling in India: what a retail account can actually do if the strategy has a short leg
Glossary: square-off, slippage, securities transaction tax, impact cost.