Home · Guides · Do you need NIFTY futures and spot data, or only options, for a backtest?

BUYER GUIDE · OPTIONS ONLY VS OPTIONS + FUTURES + SPOT · CATALOG VERIFIED 2026-11-11

Do you need NIFTY futures and spot data, or only options, for a backtest?

Buy NIFTY options alone when every signal, strike choice and trade comes from the option chain; buy NIFTY options plus futures and spot when a rule reads the index level, trades futures, or must pick the at-the-money strike from spot. On 741 sessions from 3 November 2023 to 3 November 2026 in Options Data (optionsdata.shop) 1-minute files, the 09:20 IST at-the-money strike taken from front-month futures differed from the one taken from NIFTY spot on 82.3% of days. Options only: NIFTY Options, 3 years. Options, futures and spot on one IST clock: NIFTY Complete, 3 years.

NIFTY Complete, 3 yearsNIFTY Options, 3 yearsFree 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 front-month futures minus NIFTY 50 index, 09:20 IST bar close, Options Data 1-minute files, 3 November 2023 to 3 November 2026 (741 sessions). Front-month = the futures expiry with the most volume that day. ATM = price rounded to the nearest 50-point strike. Days to expiry are calendar days to the front-month futures expiry.

Days to futures expirySessionsMedian basis (points)Median basis (% of spot)Futures ATM differs from spot ATM
1–36814.60.06%45.6%
4–79420.70.09%56.4%
8–1416751.20.21%78.4%
15–2117872.70.30%92.1%
22–31204101.10.44%98.5%
32 or more30141.00.58%100%

NIFTY synthetic forward from the nearest-expiry option chain (strike + call close − put close at the strike where call and put are closest, strikes within 300 points of spot), 09:20 IST bar close, same 3-year window (740 sessions with both legs traded at 09:20). ATM = nearest 50-point strike.

Days to weekly expirySessionsMedian synthetic minus spot (points)Synthetic ATM differs from spot ATM
Expiry day157−0.713.4%
11427.031.7%
2–318311.130.1%
4–625822.250.0%

Is NIFTY options data enough for a backtest without futures or spot?

NIFTY options data alone is enough when entries, exits, stops and strike selection all use option prices: straddles and strangles priced off premiums, premium-based stops, open-interest filters and expiry-day option rules. The NIFTY Options, 3 years pack holds every traded NIFTY strike and expiry at 1-minute with OHLC, volume and open interest, timestamped as IST bar starts.

An options-only backtest can still find the at-the-money strike without the index file by using put-call parity on the same expiry. On 740 sessions from 3 November 2023 to 3 November 2026, the 09:20 IST synthetic forward from the nearest NIFTY expiry sat a median 11.0 points above the NIFTY 50 index.

When do I need NIFTY futures and spot data as well as options?

NIFTY futures and spot data are needed when a rule reads the index level (overnight gap, opening range, index stop-loss, moving average on NIFTY 50), when the strategy trades or hedges with NIFTY futures, or when the at-the-money strike must be set from the NIFTY 50 index value. NIFTY Complete, 3 years and NIFTY Complete, 1 year hold options, futures and spot at 1-minute on one IST clock.

NIFTY 50 index files carry OHLC per minute with volume recorded as zero, because the index itself does not trade. NIFTY futures and options files carry traded OHLC, volume and open interest. Index bars end at the 15:29 IST bar; NIFTY futures and options files dated from 3 August 2026 run to the 15:39 IST bar.

How far is NIFTY futures from spot, by days to expiry?

At the 09:20 IST bar close, front-month NIFTY futures traded a median 65.7 points (0.27%) above the NIFTY 50 index across 741 sessions from 3 November 2023 to 3 November 2026. The 10th and 90th percentiles were 12.9 and 130.6 points, and futures were below spot on 3.9% of sessions.

The gap shrinks into expiry: a median 141.0 points with 32 or more calendar days to the futures expiry, 51.2 points at 8–14 days and 14.6 points at 1–3 days. The median basis was 0.27%, 0.29% and 0.26% of spot in the three yearly windows from November 2023, November 2024 and November 2025.

Does using futures instead of spot change the ATM strike in a NIFTY backtest?

Yes, on most days. Rounding the 09:20 IST price to the nearest 50-point NIFTY strike, front-month futures gave a different at-the-money strike from NIFTY spot on 82.3% of 741 sessions, a higher strike on 81.6%, and a strike two or more steps away on 40.8%. With 22–31 days to the futures expiry the two picked different strikes on 98.5% of sessions.

The synthetic forward from the nearest weekly NIFTY expiry agreed with spot more often: the same 50-point ATM strike on 66.2% of 740 sessions, rising to 86.6% on weekly expiry day and falling to 50.0% at four to six days before expiry. A backtest that labels a strike "ATM" therefore needs to state which reference it used.

How do I compute the NIFTY synthetic forward from options data in pandas?

Read one NIFTY options file for a single trading day and expiry, rename the layout-B columns used in files dated 3 July 2023 to 31 July 2026, keep the 09:20 IST bars, and find the strike where the call and put closes are closest. Strike plus call close minus put close is the synthetic forward for that expiry; round it to 50 points for the at-the-money strike.

Method for the tables above: for each NIFTY trading day from 3 November 2023 to 3 November 2026, the 09:20 IST bar close was taken from the NIFTY 50 index file, from the futures expiry with the most volume that day, and from the nearest-expiry option file. Days without a 09:20 bar in all three were skipped.

import pandas as pd
names = {"timestamp": "datetime", "strike": "strike_price", "option_type": "right",
         "expiry": "expiry_date", "oi": "open_interest"}
o = pd.read_parquet("NIFTY_OPT_1min_2026-11-03_exp2026-11-09.parquet").rename(columns=names)
o["right"] = o["right"].replace({"CE": "Call", "PE": "Put"})
o = o[pd.to_datetime(o["datetime"]).dt.strftime("%H:%M") == "09:20"]   # IST bar start
c = o[o["right"] == "Call"].set_index("strike_price")["close"]
p = o[o["right"] == "Put"].set_index("strike_price")["close"]
k = c.index.intersection(p.index)
kk = (c[k] - p[k]).abs().idxmin()          # strike where call and put are closest
synthetic = kk + c[kk] - p[kk]              # put-call parity forward for that expiry
atm = round(synthetic / 50) * 50
print(synthetic, atm)

Which NIFTY expiry dates apply to futures and weekly options in the files?

NIFTY weekly options expired on Thursday and monthly futures on the last Thursday of the month for contracts expiring up to 31 August 2025. Under NSE circular 68685 dated 23 June 2025, NIFTY weekly contracts expire on Tuesday and monthly contracts on the last Tuesday of the month from 1 September 2025, moved earlier when the day is an exchange holiday.

Every NIFTY futures and options row in Options Data files carries its contract expiry in the expiry_date column, so days to expiry can be computed from the file rather than from a weekday rule. The NIFTY futures data guide lists the futures columns; the 9:20 straddle guide uses spot and options together.

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 with zero volume. Options and futures carry volume and open interest.

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

FAQ

Can I backtest NIFTY options without NIFTY spot data?

Yes, when signals and strike choice use option prices. The at-the-money strike can be set from the put-call parity synthetic forward of the same expiry, which matched the spot ATM strike on 66.2% of 740 sessions at 09:20 IST from November 2023 to November 2026.

What is the median NIFTY futures basis over spot?

65.7 points, or 0.27% of spot, at the 09:20 IST bar close for front-month NIFTY futures over 741 sessions from 3 November 2023 to 3 November 2026 in Options Data 1-minute files.

How often does the NIFTY ATM strike from futures differ from spot?

On 82.3% of 741 sessions at 09:20 IST, rounding to the nearest 50-point strike, from November 2023 to November 2026. The futures-based strike was higher on 81.6% of sessions.

Does the NIFTY index file have volume?

No. Options Data NIFTY 50 index files record volume as zero because the index is not traded. Use NIFTY futures or options files for volume and open interest.

Which pack has NIFTY options, futures and spot together?

NIFTY Complete packs, in 1-year and 3-year versions, hold NIFTY options, futures and spot at 1-minute on one IST clock. NIFTY Options packs hold options only.

Get the data

Free sample · Schema · Ask the AI for your data

NIFTY Complete, 3 yearsNIFTY Options, 3 yearsFree NIFTY sample Get free sample by email

Related guides

Index and commodity data only.