free expiry day ↓

blog /

NIFTY 0DTE options data: what to download for same-day expiry strategies

What NIFTY 0DTE options data you need to backtest same-day expiry strategies: the expiring series only, entry and exit timing, and when to step up to 1-second bars.

"0DTE" means trading an option on the day it expires. For NIFTY, that is the weekly expiry session: one day, one series, from the open to 15:30. The data question is narrow, and that makes it easy to get right.

The minimum dataset

A 0DTE straddle skeleton

import pandas as pd

opt = pd.read_parquet("NIFTY_OPT_1min_2025-10-14_exp2025-10-14.parquet")
spot = pd.read_parquet("NIFTY_SPOT_1min_2025-10-14.parquet")
t0 = pd.Timestamp("2025-10-14 09:20")
s0 = spot.set_index(pd.to_datetime(spot["timestamp"])).loc[t0, "close"]
atm = round(s0 / 50) * 50
legs = opt[(opt["strike_price"] == atm)].set_index("datetime").groupby("right")["close"]
straddle = legs.get_group("Call") + legs.get_group("Put")
print(straddle.loc["2025-10-14 09:20":].iloc[[0, -1]])

Column names differ slightly in older files. The free sample uses the names above.

When 1-minute is not enough

Stops and targets placed close to price in the final hour can be hit and reversed inside one minute. If your rules depend on that, use the 1-second packs, which have options and the index at one row per second.

Start with the free expiry day, then pick a 1-minute year or a 1-second year.

FAQ

What is NIFTY 0DTE data?

Option data for the NIFTY weekly series on its own expiry day. In our files, that is any file whose trading day equals its expiry date.

Do I need 1-second data for 0DTE?

Only if your entries, stops or targets depend on moves inside a minute. Most 0DTE research works at 1-minute.

Is the index included?

Yes in the Complete packs and the 1-second packs. The options-only 1-minute packs have the option chain alone.

more guides

Building an expiry-day dataset in Python: pandas and DuckDB recipesOne-second or one-minute bars for the last hour of expiry?Does NIFTY pin to max pain on expiry day? Testing it with open interest by strike