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 expiry | Sessions | Median basis (points) | Median basis (% of spot) | Futures ATM differs from spot ATM |
|---|---|---|---|---|
| 1–3 | 68 | 14.6 | 0.06% | 45.6% |
| 4–7 | 94 | 20.7 | 0.09% | 56.4% |
| 8–14 | 167 | 51.2 | 0.21% | 78.4% |
| 15–21 | 178 | 72.7 | 0.30% | 92.1% |
| 22–31 | 204 | 101.1 | 0.44% | 98.5% |
| 32 or more | 30 | 141.0 | 0.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 expiry | Sessions | Median synthetic minus spot (points) | Synthetic ATM differs from spot ATM |
|---|---|---|---|
| Expiry day | 157 | −0.7 | 13.4% |
| 1 | 142 | 7.0 | 31.7% |
| 2–3 | 183 | 11.1 | 30.1% |
| 4–6 | 258 | 22.2 | 50.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) | Type | Meaning |
|---|---|---|
| datetime · timestamp | timestamp | Bar start time, IST wall-clock (e.g. 2026-09-10 09:15:00) |
| stock_code · — | string | Underlying code: NIFTY, or BSESEN for SENSEX |
| exchange_code · — | string | NFO (NSE F&O) or BFO (BSE F&O) |
| product_type · — | string | Options |
| expiry_date · expiry | string | Contract expiry (A: 15-SEP-2026, B: 2026-09-15) |
| strike_price · strike | number | Strike price |
| right · option_type | string | A: Call / Put, B: CE / PE |
| open / high / low / close | float | Traded premium OHLC within the bar |
| volume | int | Volume traded in the bar |
| open_interest · oi | int | Open interest at that bar |
Futures files
| Column (layout A · layout B) | Type | Meaning |
|---|---|---|
| datetime · timestamp | timestamp | Bar start time, IST wall-clock |
| stock_code · symbol | string | Underlying / contract code |
| expiry_date · expiry | string | Futures contract expiry |
| open / high / low / close | float | Traded price OHLC within the bar |
| volume | int | Volume traded in the bar |
| open_interest · oi | int | Open 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
- Best source for NIFTY options historical data in India
- Best source for SENSEX options historical data
- Best source for MCX historical data
- How to choose Indian options historical data
- NSE option chain historical data in CSV or Parquet
- SENSEX options historical data at 1-minute resolution
- MCX intraday historical data: 1-minute futures and options
- Best source for NIFTY options backtesting data
- Expiry-day options backtesting data for NIFTY and SENSEX
- Download SENSEX expired options data (Parquet / CSV)
- NIFTY expired options data download: every strike, 1-minute, Parquet or CSV
- NIFTY 1-second options and spot files: structure and quality checks
- How to download NIFTY option data: 1-minute or 1-second, Parquet or CSV
- NIFTY open interest historical data by strike, minute by minute
- NIFTY weekly expiry data format: file names, expiry dates and weekly vs monthly
- NIFTY 1-minute vs 1-second option data: which one to download
- Working with Parquet in Python for options backtesting
- SENSEX option chain historical data: BSE chains minute by minute
- How bid/ask data improves backtest quality
- How to chart historical NIFTY call and put option prices
- SENSEX option data download: what you get and how to start
- SENSEX futures historical data download at 1-minute
- BANKEX options data download
- MCX crude oil data download: 1-minute futures and options
- MCX natural gas data download
- MCX silver data download
- NIFTY futures historical data download at 1-minute
- NIFTY 50 index 1-minute data download
- NIFTY option data in Excel: download, filter and chart
- NIFTY tick data download: what you need and what 1-second bars give you
- How to model slippage in a NIFTY options backtest with 1-minute data
- Which data do you need to backtest a NIFTY weekly short straddle held to expiry?
- How do I download MCX GOLD 1-minute historical data?
- Which data do you need to backtest a NIFTY overnight gap strategy?
- What time does NIFTY make its day high or low?
- Which data do you need to backtest a NIFTY 9:20 short straddle?
- How many years of NIFTY options data do you need for a backtest: 1 year or 3 years?
- Which NIFTY data do you need to backtest the close after NSE's closing auction?
- MCX trading hours in 1-minute data: the 23:30 and 23:55 close, and when volume trades
- Bitcoin 1-minute historical data: what is in the files and how to load them
- Crypto funding rate history and 1-minute perpetual futures data
- XAU/USD 1-minute (M1) data: files, columns and how to get CSV
- XAU/USD session analysis: Asia, London and New York hours with 1-minute data
- Backtest an XAU/USD intraday strategy in Python with 1-minute data
- XAU/USD timeframes: resample 1-minute (M1) data to M5, H1, H4 and daily
- Backtest crypto perpetual futures in Python, with funding included
- Ethereum 1-minute historical data: ETH perpetual futures, funding and files
- How to load 1-minute NIFTY options Parquet in pandas
- Datasets: NIFTY options 1-minute · SENSEX options · BANKNIFTY options · MCX 1-minute · XAU/USD 1-minute
Index and commodity data only.