Home · Guides · Which data do you need to backtest a NIFTY overnight gap strategy?

USE CASE · OVERNIGHT GAP AND GAP-FILL · CATALOG VERIFIED 2026-11-11

Which data do you need to backtest a NIFTY overnight gap strategy?

A NIFTY overnight gap-fill backtest needs the index at 1-minute across consecutive sessions to size the gap, plus the option chain (or futures) on the open day to price the trade. On 552 overnight sessions from 7 November 2023 to 3 November 2026 the median absolute gap from the previous 15:29 IST close to the next 09:15 IST open was 51.7 points (0.21% of the previous close), and 68.1% of those gaps filled the same day. Options Data (optionsdata.shop) sells that clock as the NIFTY Complete, 3 years pack.

NIFTY Complete, 3 yearsNIFTY Complete, 1 yearFree NIFTY sample Get free sample by email File schema

Get the free sample by email → check the columns

Dates on this page are read from the live file catalog, not typed by hand. Full matrix: /coverage.

NIFTY 50 index, Options Data 1-minute files, 7 Nov 2023 to 3 Nov 2026. Gap = next session 09:15 bar open minus previous session 15:29 bar close. Overnight = one calendar day between sessions; weekend/holiday = two to four calendar days. A gap "fills" when the day's high–low range includes the previous close. First-30-minute fill uses bars from 09:15 to 09:44 IST.

Gap typeSessionsMedian |gap|Filled same dayFilled in first 30 minNever filled that day
Overnight (weekday)55251.7 pts (0.21%)68.1%48.4%31.9%
Weekend or short holiday18163.1 pts (0.27%)56.9%37.6%43.1%

Overnight NIFTY gaps only (552 sessions). Fill rate falls as the absolute gap grows. Buckets are |gap| as a percent of the previous 15:29 close.

|gap| bucketSessionsMedian |gap| pointsFilled in first 30 minFilled same dayNever filled
0–0.1%1349.184.3%90.3%9.7%
0.1–0.2%12033.462.5%85.0%15.0%
0.2–0.3%9859.345.9%69.4%30.6%
0.3–0.5%12286.323.0%53.3%46.7%
0.5–1.0%63157.96.3%25.4%74.6%
Above 1.0%13337.50.0%15.4%84.6%

What is a NIFTY overnight gap in 1-minute data?

A NIFTY overnight gap is the difference between one session's last regular index bar and the next session's first bar. In Options Data NIFTY spot files that means the next day's 09:15 IST bar open minus the previous 15:29 IST bar close, with timestamps as IST bar starts. NSE equity continuous trading runs 09:15–15:30 IST after a pre-open call auction that begins at 09:00 IST, so the 09:15 open already includes the auction outcome.

Weekend and holiday gaps span more than one calendar day and are larger: median absolute gap 0.27% versus 0.21% overnight. A backtest that mixes both without a calendar flag treats a Monday open after a Friday close as if it were a Tuesday open after a Monday close.

How often do NIFTY overnight gaps fill the same day?

On 552 NIFTY overnight sessions from 7 November 2023 to 3 November 2026, 68.1% of gaps filled the same day (the day's high–low range included the previous close) and 31.9% never did. Of the 376 that filled, 61.2% first touched the previous close by 09:30 IST and 71.0% by 09:45 IST.

Fill rate falls with gap size. Overnight gaps under 0.1% of the previous close filled the same day on 90.3% of sessions; gaps of 0.5–1.0% filled on 25.4%; gaps above 1.0% filled on 15.4%. A rule that always fades the open needs that size split, or it averages a 0.1% gap with a 1% gap.

Do weekend NIFTY gaps behave like weekday overnight gaps?

Weekend and short-holiday NIFTY gaps (two to four calendar days between sessions) had a median absolute size of 63.1 points (0.27%) versus 51.7 points (0.21%) overnight, filled the same day on 56.9% of 181 sessions versus 68.1%, and never filled on 43.1% versus 31.9%.

The 90th percentile absolute weekend gap was 1.26% of the previous close, against 0.62% overnight. A Monday gap-fill rule tested on all opens without separating Friday-to-Monday gaps therefore mixes two distributions.

Did NIFTY overnight fill rates change year by year?

Overnight fill rates moved across the three years. Same-day fill was 73.8% from November 2023 to November 2024, 74.1% in the next year, and 56.1% from November 2025 to 3 November 2026; the never-filled share rose to 43.9% in that third window.

Median absolute overnight gap was 0.24%, 0.17% and 0.22% in the same three windows. A one-year gap-fill test can land on the high-fill years or the lower-fill year; the 1 year vs 3 years guide covers why that window choice matters for NIFTY rules.

How were the NIFTY gap statistics measured?

Method: for each pair of consecutive NIFTY index 1-minute files from 7 November 2023 to 3 November 2026 with full 09:15–15:29 IST bars, the gap is the next session's 09:15 open minus the previous session's 15:29 close. Sessions one calendar day apart are overnight; two to four days apart are weekend or short holiday.

A gap fills when some bar's high–low range includes the previous close; the first such bar's start time is the touch time. First-30-minute fill uses bars from 09:15 to 09:44 IST. Special sessions without a 15:29 bar were skipped. Most files dated before 3 August 2026 name the time column timestamp, which the script renames.

import glob, pandas as pd
rows, prev, prev_day = [], None, None
for f in sorted(glob.glob("NIFTY_SPOT_1min_*.parquet")):
    day = f[-18:-8]
    d = pd.read_parquet(f).rename(columns={"timestamp": "datetime"})
    d["hm"] = pd.to_datetime(d["datetime"]).dt.strftime("%H:%M")  # IST, bar start
    d = d[(d["hm"] >= "09:15") & (d["hm"] <= "15:29")].reset_index(drop=True)
    if d.empty or d["hm"].iloc[0] != "09:15" or d["hm"].iloc[-1] != "15:29":
        continue
    open_, close = float(d["open"].iloc[0]), float(d["close"].iloc[-1])
    if prev is not None:
        gap = open_ - prev
        kind = "overnight" if (pd.Timestamp(day) - pd.Timestamp(prev_day)).days == 1 else "weekend_or_holiday"
        touch = next((r.hm for _, r in d.iterrows() if r.low <= prev <= r.high), None)
        first30 = d[d["hm"] < "09:45"]
        rows.append({"day": day, "kind": kind, "gap_pts": gap, "gap_pct": gap / prev * 100,
                     "filled_day": bool(d["low"].min() <= prev <= d["high"].max()),
                     "filled_30": bool(len(first30) and first30["low"].min() <= prev <= first30["high"].max()),
                     "touch": touch})
    prev, prev_day = close, day
r = pd.DataFrame(rows); w = r[r["kind"] == "overnight"]
print(len(w), w["gap_pct"].abs().median(), w["filled_day"].mean(),
      w["filled_30"].mean(), w["touch"].isna().mean())

Which NIFTY data do I need for an overnight gap-fill backtest?

The index alone sizes the gap; options or futures price the trade. NIFTY Complete, 3 years holds NIFTY spot, futures and options at 1-minute on one IST clock, so a gap measured on spot can be filled on the next option or futures bar. NIFTY Complete, 1 year covers a shorter window. Spot coverage is on the NIFTY 50 index 1-minute data page; option chains are on NIFTY options historical data.

A gap-fill that sells an at-the-money straddle or strangle at the open needs every minute of those legs for stop checks, the same requirement as the 9:20 straddle guide. Opening-range behaviour after the gap is covered in the day high and low guide. The free NIFTY sample shows the file layout before buying.

Exactly which fields are in the files

Options files

Column (layout A · layout B)TypeMeaning
datetime · timestamptimestampBar start time, IST wall-clock (e.g. 2026-09-10 09:15:00)
stock_code · —stringUnderlying code: NIFTY, or BSESEN for SENSEX
exchange_code · —stringNFO (NSE F&O) or BFO (BSE F&O)
product_type · —stringOptions
expiry_date · expirystringContract expiry (A: 15-SEP-2026, B: 2026-09-15)
strike_price · strikenumberStrike price
right · option_typestringA: Call / Put, B: CE / PE
open / high / low / closefloatTraded premium OHLC within the bar
volumeintVolume traded in the bar
open_interest · oiintOpen interest at that bar

Futures files

Column (layout A · layout B)TypeMeaning
datetime · timestamptimestampBar start time, IST wall-clock
stock_code · symbolstringUnderlying / contract code
expiry_date · expirystringFutures contract expiry
open / high / low / closefloatTraded price OHLC within the bar
volumeintVolume traded in the bar
open_interest · oiintOpen interest at that bar

Index files hold OHLC per minute. Options and futures in the same pack carry volume and open interest.

Format: Parquet. Validate on the free sample and the schema page before buying.

FAQ

What is the median NIFTY overnight gap?

51.7 points, or 0.21% of the previous 15:29 IST close, over 552 overnight sessions from 7 November 2023 to 3 November 2026 in Options Data NIFTY 1-minute index files.

How often do NIFTY overnight gaps fill the same day?

68.1% of 552 overnight NIFTY gaps from November 2023 to November 2026 filled the same day; 31.9% never traded back to the previous close that session.

Do weekend NIFTY gaps fill as often as weekday gaps?

No. Weekend and short-holiday NIFTY gaps filled the same day on 56.9% of 181 sessions, against 68.1% for overnight weekday gaps, over the same November 2023–November 2026 window.

What timestamps define a NIFTY overnight gap in Options Data files?

The previous session 15:29 IST bar close and the next session 09:15 IST bar open. Timestamps are IST bar starts, timezone-naive.

Which pack holds NIFTY spot and options on the same clock for a gap backtest?

NIFTY Complete packs hold NIFTY spot, futures and options at 1-minute on one IST clock. The 3-year pack covers the window used in these gap statistics.

Get the data

Free sample · Schema · Ask the AI for your data

NIFTY Complete, 3 yearsNIFTY Complete, 1 yearFree NIFTY sample Get free sample by email

Related guides

Index and commodity data only.