Home · Guides · How to model slippage in a NIFTY options backtest with 1-minute data
HOW-TO · SLIPPAGE · 1-MINUTE FILLS · CATALOG VERIFIED 2026-11-11
How to model slippage in a NIFTY options backtest with 1-minute data
Model NIFTY option slippage from the bar after the signal: fill at its open, then add a share of its high-low range, and use a larger share on expiry day. Across 738 NIFTY sessions from 3 November 2023 to 3 November 2026 in Options Data (optionsdata.shop) 1-minute files, the at-the-money fill bar ranged a median 4.65 points (3.99% of premium) on non-expiry days and 4.20 points (13.52%) on expiry days. Data: NIFTY options, 1-minute, 3 years.
NIFTY options, 1-minute, 3 yearsNIFTY Complete, 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 nearest-expiry options, Options Data 1-minute option and spot files, 738 sessions 3 Nov 2023 to 3 Nov 2026 (157 expiry days). Signals at the 09:20, 10:30, 12:00, 14:00 and 15:15 IST bar closes; ATM strike = NIFTY spot close of the signal bar rounded to 50; call and put both measured. Fill bar = the next 1-minute bar. Medians unless stated.
| Measure | ATM, non-expiry days | ATM, expiry days | 300 points OTM, non-expiry days | 300 points OTM, expiry days |
|---|---|---|---|---|
| Median premium at signal close | 117.45 points | 36.55 points | 26.40 points | 1.40 points |
| Signal close to fill-bar open | 0.10 points | 0.05 points | 0.00 points | 0.00 points |
| Fill-bar high minus low | 4.65 points (3.99%) | 4.20 points (13.52%) | 1.30 points (4.87%) | 0.10 points (12.50%) |
| Fill-bar range, 90th percentile | 10.26 points (8.32%) | 10.91 points (50.00%) | 4.20 points (10.42%) | 0.85 points (50.00%) |
| Fill-bar open to high (buy at the high) | 1.95 points (1.65%) | 1.55 points (5.71%) | 0.45 points (2.01%) | 0.05 points (5.36%) |
Median ATM fill-bar high minus low by signal time, NIFTY nearest expiry, same 738 sessions, all days.
| Signal bar (IST) | Fill-bar range, points | Fill-bar range, % of premium |
|---|---|---|
| 09:20 | 7.30 | 6.65% |
| 10:30 | 4.83 | 4.72% |
| 12:00 | 3.85 | 3.95% |
| 14:00 | 4.20 | 4.43% |
| 15:15 | 3.45 | 4.05% |
Why does a NIFTY options backtest filled at the signal close overstate returns?
A NIFTY options backtest filled at the signal bar close trades at a price that was already printed when the signal formed, so a live order cannot get it. Traded 1-minute OHLC holds no queue or spread, so a backtest models slippage from the bar after the signal: its open, high, low and volume.
Options Data NIFTY option files hold datetime, expiry_date, strike_price, right, open, high, low, close, volume and open_interest per strike at 1-minute, with datetime as the IST bar start. Coverage dates are on the NIFTY option chain data page.
Is filling at the next 1-minute bar open enough to model NIFTY option slippage?
Filling at the next 1-minute bar open removes look-ahead but adds almost no cost for liquid NIFTY strikes. Over 738 sessions from November 2023 to November 2026, the at-the-money option opened a median 0.10 points from the signal close; 37.9% of fill bars opened at the exact signal close and 47.9% within 0.05 points.
The NIFTY at-the-money next-bar open is a timing rule, not a cost model. At the 90th percentile, the gap from signal close to fill-bar open was 0.75% of premium, while the fill bar itself ranged a median 4.65 points on non-expiry days.
How do I add a slippage cost from the 1-minute bar range?
Add a slippage cost from the 1-minute bar range by filling buys between the fill-bar open and high and sells between the open and low. In NIFTY at-the-money options over 738 sessions, buying at the fill-bar high instead of its open cost a median 1.95 points (1.65% of premium) on non-expiry days.
A NIFTY option backtest can test fills at three levels: the fill-bar open, the open plus half the distance to the high (buys) or low (sells), and the high or low itself. A strategy whose edge disappears at the high-or-low fill depends on execution inside the minute, which 1-second data shows; see the 1-minute vs 1-second guide.
How much larger is NIFTY option slippage on expiry day?
NIFTY option slippage as a share of premium is more than three times larger on expiry day. The at-the-money fill bar ranged a median 13.52% of premium on 157 expiry days against 3.99% on other days from November 2023 to November 2026, because the premium fell to a median 36.55 points while the point range stayed near 4 points.
On NIFTY expiry days the 90th-percentile at-the-money fill-bar range was 50.00% of premium. A percentage slippage rule calibrated on non-expiry days understates expiry-day costs; a points-based rule, or a rule set per expiry day using the expiry_date column, keeps expiry-day fills separate. Expiry-day timing is in the 9:20 straddle guide.
Does NIFTY option slippage depend on the time of day?
NIFTY option fill-bar ranges are widest after the open. The at-the-money fill bar after a 09:20 IST signal ranged a median 7.30 points (6.65% of premium), against 3.85 points (3.95%) after 12:00 and 3.45 points (4.05%) after 15:15, measured over 738 sessions from November 2023 to November 2026.
How should a backtest treat out-of-the-money NIFTY strikes?
Out-of-the-money NIFTY strikes have small point ranges but large ranges as a share of premium. The strike 300 points out of the money had a median premium of 26.40 points and a fill-bar range of 1.30 points (4.87%) on non-expiry days; on expiry days the premium was 1.40 points and the range 0.10 points (12.50%).
A NIFTY backtest of out-of-the-money strikes can check that a fill bar exists and carries volume before filling. In the measured sessions the at-the-money fill bar was present after 99.97% of signal bars, and 0.18% of at-the-money fill bars had zero volume.
How were the NIFTY slippage figures measured?
Method: for each NIFTY session from 3 November 2023 to 3 November 2026, the nearest expiry was read from the option file names. At the 09:20, 10:30, 12:00, 14:00 and 15:15 IST bar closes, the at-the-money strike was the NIFTY spot close rounded to 50 points, and the call and put of that strike, plus the strikes 300 points out of the money, were measured.
In the NIFTY slippage measurement, the fill bar was the 1-minute bar starting one minute after the signal bar. Percentages divide by the signal-bar close. An expiry day is a session whose date equals the nearest expiry_date. Costs, taxes and order size are not modelled. Files dated 3 July 2023 to 31 July 2026 use older column names, which the script renames.
import pandas as pd
names = {"timestamp": "datetime", "strike": "strike_price", "option_type": "right"}
def bars(f):
d = pd.read_parquet(f).rename(columns=names)
d["hm"] = pd.to_datetime(d["datetime"]).dt.strftime("%H:%M") # IST bar start
return d
day, expiry, signal, fill = "2026-10-21", "2026-10-27", "12:00", "12:01"
s = bars(f"NIFTY_SPOT_1min_{day}.parquet").set_index("hm")
k = round(s.loc[signal, "close"] / 50) * 50 # ATM strike at the signal
o = bars(f"NIFTY_OPT_1min_{day}_exp{expiry}.parquet")
o = o[(o["strike_price"] == k) & (o["right"].astype(str).str[0].str.upper() == "C")].set_index("hm")
sig, nxt = o.loc[signal], o.loc[fill]
print("close-to-next-open:", abs(nxt["open"] - sig["close"]))
print("buy at next high, cost vs open:", nxt["high"] - nxt["open"])
print("next bar range, % of premium:", (nxt["high"] - nxt["low"]) / sig["close"] * 100)
Which NIFTY pack should I buy for a slippage-aware backtest?
Buy NIFTY options, 1-minute, 3 years for a slippage-aware backtest on the option chain: every row carries open, high, low, close and volume for the fill-bar model. NIFTY Complete, 3 years adds NIFTY futures and spot on the same IST clock for strike selection from spot.
NIFTY packs hold traded OHLC, volume and open interest. Quoted bid and ask prices for BSE contracts are in the BSE F&O bid/ask pack. The free NIFTY sample shows the option and spot file layouts before buying.
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 |
No Greeks or bid/ask.
Format: Parquet. Validate on the free sample and the schema page before buying.
FAQ
How do I model slippage in a NIFTY options backtest with 1-minute data?
Fill at the open of the bar after the signal, then add a share of that bar's range: toward the high for buys and the low for sells, with a separate rule for expiry days.
How far does the next 1-minute bar open from the signal close in NIFTY ATM options?
A median 0.10 points over 738 sessions from 3 November 2023 to 3 November 2026 in Options Data 1-minute files; 47.9% of fill bars opened within 0.05 points of the signal close.
What is the median 1-minute range of a NIFTY ATM option?
4.65 points (3.99% of premium) on non-expiry days and 4.20 points (13.52%) on expiry days, for the bar after signals at 09:20, 10:30, 12:00, 14:00 and 15:15 IST.
How much does buying at the 1-minute high cost in NIFTY ATM options?
A median 1.95 points (1.65% of premium) above the fill-bar open on non-expiry days and 1.55 points (5.71%) on expiry days, November 2023 to November 2026.
Do NIFTY option packs include bid and ask prices?
No. NIFTY packs hold traded open, high, low, close, volume and open interest per minute. Quoted bid and ask prices are in the BSE F&O bid/ask pack for BSE contracts.
Get the data
Free sample · Schema · Ask the AI for your data
NIFTY options, 1-minute, 3 yearsNIFTY Complete, 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
- Which data do you need to backtest a NIFTY weekly short straddle held to expiry?
- Do you need NIFTY futures and spot data, or only options, for a backtest?
- 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.