Market structure · A field note

The Overnight Drift

Split any trading day into two legs — the session, and the gap either side of it — and compound each separately. Over eleven-plus years, almost the entire gain in two Indian indices happened while the market was shut.

01

The split

Every trading day has two separate legs, and they behave nothing alike.

Take the simplest possible test. On any given day the index opens at 09:15 and closes around 15:29–15:30. Between those two prints, run one trade: buy the open, sell the close. Call that the session leg — pure intraday exposure, no overnight risk carried.

Now do the mirror image. Buy at today's close, sell at tomorrow's open. Call that the gap leg — no intraday exposure at all, just whatever happened between the last print and the next one, while the exchange was shut.

Chain each leg through every session for over a decade — 2,856 trading days on Nifty and Bank Nifty, from January 2015 to August 2026 — compounding only within that leg, and see which one actually built the return.

Buy the open, sell the close, every day for eleven years: ₹100 becomes ₹14.20 on Nifty. Buy the close, sell the next open, same eleven years: ₹100 becomes ₹2,064. The entire index gain — and then some — happened while nobody was watching a ticking chart.

02

The numbers

Nifty: the session was a net loser. The gap was the entire story.

The two legs recombine exactly — ₹14.20 × ₹20.64 (indexed) reproduces the actual buy-and-hold line to the last decimal, because that is arithmetically what a daily close and a daily open decompose into. This isn't an approximation of the real return; it's the real return, split into its two component parts.

Buy & hold (open day 1 → close today) Session only (open → close, compounded) Gap only (close → next open, compounded)
₹10₹30₹100 ₹300₹1,000₹3,000 201520172019 202120232025 ₹2,064 ₹293 ₹14
Nifty, 12 Jan 2015 – 17 Aug 2026, 2,856 sessions. Value of ₹100 compounded within each leg only. Log scale — the gap line's climb and the session line's decline are both this steep in reality, not a charting trick.
Buy & hold (open day 1 → close today) Session only (open → close, compounded) Gap only (close → next open, compounded)
₹10₹30₹100 ₹300₹1,000₹3,000 201520172019 202120232025 ₹1,205 ₹305 ₹26
Bank Nifty, 12 Jan 2015 – 17 Aug 2026, 2,856 sessions. Same method, same period, same log scale as the Nifty chart above — directly comparable.
MetricNifty · sessionNifty · gapBankNifty · sessionBankNifty · gap
₹100 compounds to₹14.20₹2,064₹25.65₹1,205
Total return, 11.6 yrs−85.8%+1,964%−74.3%+1,105%
Mean daily return−0.065%+0.108%−0.041%+0.090%
Annualized (252 d)−15.1%+31.3%−9.8%+25.6%
Share of days positive47.2%66.9%47.6%62.4%

Read the session column carefully — it is not merely "smaller than the gap," it is negative. A pure buy-the-open-sell-the-close strategy, held for eleven and a half years with no other edge, lost money on both indices. Every rupee of the long-run gain — and the rupees needed to cover the session's loss besides — came from the close-to-open leg.

The same story in raw index points, not compounded percentages.

Percentages compound, which is the right way to measure a return but can obscure the arithmetic. So set compounding aside and just add up the points: every day's close − open summed across the whole period is the total the session leg contributed; every day's open − previous close summed the same way is what the gap contributed. The two sums add up exactly to the index's total point gain over the period — no rounding, no approximation.

Index, 9 Jan 2015 → 17 Aug 2026NiftyBankNifty
Opening index level8,285.4518,845.90
Closing index level24,287.6557,497.80
Net points gained+16,002.20+38,651.90
— of which, from the session (intraday)−24,239.25−31,005.60
— of which, from the gap (overnight)+40,241.45+69,657.50
Overnight points, as a multiple of the net gain2.5×1.8×
Intraday points (session) Overnight points (gap) Net points gained
NIFTY −24,239 Intraday +40,241 Overnight +16,002 Net BANK NIFTY −31,006 Intraday +69,658 Overnight +38,652 Net −30k−15k0 +15k+30k+45k +60k+75k
Same period as the charts above, same two indices, but simple arithmetic instead of compounding: every day's point move, added up. Overnight points run 1.8×–2.5× the index's entire net gain over eleven-plus years — the session leg gave a meaningful chunk of it back.

This is the plainest way to say it: if you'd captured only the overnight points on Nifty, you'd have banked 2.5 times the index's actual eleven-year gain — the session then handed roughly three-fifths of that back. On Bank Nifty the overnight haul is 1.8 times the net gain. Either way, the number the market reports as "the index went up 16,000 points" is really "the index went up 40,000 points overnight and gave back 24,000 of them during the day."

03

Not one lucky year

The gap was positive in every full calendar year measured. The session mostly wasn't.

A decade-long average can hide a story that's really about two or three outlier years. Splitting by calendar year rules that out here.

Sign of each leg's point contribution, by calendar year. 2015 starts mid-January; 2026 is year-to-date through 17 August.
YearNifty sessionNifty gapBankNifty sessionBankNifty gap
2015negativepositivenegativepositive
2016negativepositivenegativepositive
2017negativepositivenegativepositive
2018negativepositivenegativepositive
2019negativepositivenegativepositive
2020negativepositivenegativepositive
2021negativepositivenegativepositive
2022negativepositivepositivepositive
2023negativepositivenegativepositive
2024negativepositivenegativepositive
2025≈flat (+0.5%)positivepositivepositive
2026 YTDnegativenegativepositivenegative

The gap was positive in all eleven complete calendar years on both indices — 2015 through 2025 — without exception. The one year it wasn't is 2026, and it isn't finished yet.

The session leg is messier, and worth stating honestly rather than rounding off. On Nifty it was negative in ten of the eleven complete years and essentially flat in the eleventh. On Bank Nifty it was negative in nine of eleven, but genuinely positive in 2022 and 2025 — so "the session always loses" is an overstatement for Bank Nifty specifically, even though it's a fair description of the eleven-year average. 2026 is the year to watch: it's the first year in the entire sample where Nifty's gap leg has gone negative alongside its session leg, and the first year Bank Nifty's session has run positive while its gap ran negative — worth returning to once the year is complete rather than reading much into eight months.

04

Why

This isn't an India quirk. It's one of the oldest documented anomalies in equity markets.

The same pattern shows up wherever anyone has looked. Academic work on the S&P 500 going back to the early 1990s — Cooper, Cliff & Gulen (2008) and, on ETF data a few years later, Kelly & Clark (2011) — found that essentially the entire long-run US equity risk premium was earned overnight, with the intraday session contributing close to nothing on average. More recent tallies of SPY over the last three decades land on numbers the same shape as the ones above: roughly flat intraday, and almost all of the index's growth captured close-to-open.

A few explanations get offered, and they're complementary rather than competing:

05

What this isn't

A clean decomposition, not a strategy.

It's tempting to read "buy the close, sell the open, repeat 2,856 times" as a trading idea. It largely isn't one, for reasons worth being upfront about:

What the numbers do establish cleanly: on both of these indices, over more than a decade, the session and the gap are not two flavors of the same return — they are two different regimes that happen to share a ticker. Any strategy, chart, or backtest built purely on intraday price action is fighting a headwind that has run against it in ten of the last eleven years; anything that has to be flat by the close is giving up the leg that actually did the work.