Home · Guides · How to chart historical NIFTY call and put option prices
HOW-TO · NIFTY OPTION CHARTS · CATALOG VERIFIED 2026-11-11
How to chart historical NIFTY call and put option prices
To chart a historical NIFTY call or put, you need the 1-minute bars of that exact contract (trading day, expiry, strike, call or put, OHLC) and a few lines of pandas. Options Data (optionsdata.shop) sells NIFTY option chains at 1-minute for JAN 2023 → NOV 2026, expired weekly and monthly contracts included, as Parquet or CSV. For charts of 2026 sessions the matching pack is NIFTY Options 1-minute 2026.
NIFTY Options 1-minute 2026NIFTY option chain dataNIFTY options, 3 years 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 15 Sep 2026 weekly expiry: fixed 23500 strike vs rolling ATM (1-minute close, free sample)
| Minute (IST) | 23500 CE | 23500 PE | Fixed 23500 straddle | Rolling ATM strike | Rolling ATM straddle |
|---|---|---|---|---|---|
| 09:15 | 50.45 | 60.10 | 110.55 | 23500 | 110.55 |
| 10:30 | 19.05 | 144.35 | 163.40 | 23350 | 122.40 |
| 12:00 | 11.80 | 169.30 | 181.10 | 23350 | 109.20 |
| 13:30 | 4.25 | 227.55 | 231.80 | 23300 | 90.35 |
| 15:00 | 1.65 | 319.60 | 321.25 | 23200 | 96.70 |
What data do you need to chart an expired NIFTY option?
Charting an expired NIFTY option needs 1-minute bars for one contract: trading day, expiry date, strike, call or put, and open, high, low and close for each minute. An expired contract no longer appears in a live option chain, so its bars have to come from a historical archive that keeps expired weekly and monthly series.
Options Data stores one file per trading day per expiry, named like NIFTY_OPT_1min_2026-09-15_exp2026-09-15.parquet, holding every traded strike of the nearest expiries. Columns in the current layout: datetime (IST bar start), expiry_date (15-SEP-2026), strike_price, right (Call/Put), open, high, low, close, volume, open_interest.
Older Options Data files use a second layout with timestamp, expiry (2026-09-15), strike, option_type (CE/PE) and oi. The file schema maps both layouts, and the weekly expiry format guide shows how to parse either expiry format.
Which Options Data pack matches a NIFTY option chart project?
For charts of 2026 NIFTY sessions, the matching pack is NIFTY Options 1-minute 2026. For comparing the same setup across several years of expiries, use NIFTY options 1-minute, 3 years. Each pack page lists its exact first and last dates; the NIFTY options data page lists all NIFTY packs.
Single calendar years are also sold for 2023, 2024 and 2025. To plot the NIFTY index or futures on the same clock as the options, the NIFTY Complete, 1 year pack adds futures and spot at 1-minute.
Which expiry days and session times apply to historical NIFTY charts?
NIFTY weekly options expired on Thursday until 31 Aug 2025. From 1 Sep 2025 NIFTY weekly contracts expire on Tuesday and monthly contracts on the last Tuesday of the month (NSE circulars 68685 and 68747). When the expiry day is a trading holiday, the contract expires on the previous trading day.
The NSE equity derivatives session opens at 09:15 IST. NSE moved the normal market close from 15:30 to 15:40 IST from 3 Aug 2026. Options Data timestamps are bar starts in IST, so 09:15:00 covers 09:15:00 to 09:15:59. Read the session's last bar from the file rather than hard-coding a closing time.
How do you plot one strike, a straddle and a rolling ATM series in Python?
Pivot the 1-minute close into one column per call/put and strike, then select columns. A fixed-strike chart follows one contract all day. A rolling at-the-money (ATM) chart picks, every minute, the strike where call and put closes are nearest each other, and plots that strike's call plus put.
The code below runs unchanged on the free-sample file for the 15 Sep 2026 expiry. For older files, rename the second-layout columns to the names used here first, as shown on the file schema page.
import pandas as pd
import matplotlib.pyplot as plt
df = pd.read_parquet("NIFTY_OPT_1min_2026-09-15_exp2026-09-15.parquet")
# one column per (call/put, strike), one row per minute
px = df.pivot_table(index="datetime", columns=["right", "strike_price"], values="close")
calls, puts = px["Call"], px["Put"]
# 1) fixed strike: the 23500 call, put and straddle all day
k = 23500.0
fixed = pd.DataFrame({"CE": calls[k], "PE": puts[k]})
fixed["straddle"] = fixed["CE"] + fixed["PE"]
# 2) rolling ATM: each minute, the strike where |call - put| is smallest
atm = (calls - puts).abs().idxmin(axis=1)
roll = pd.Series([calls.at[t, s] + puts.at[t, s] for t, s in atm.items()], index=atm.index)
ax = fixed.plot(figsize=(10, 4), title="NIFTY 15 Sep 2026 expiry, 1-minute close")
roll.rename("rolling ATM straddle").plot(ax=ax)
ax.set_ylabel("premium (index points)")
plt.savefig("nifty_expiry_chart.png", dpi=120)
What does a fixed-strike chart show that a rolling ATM chart does not?
Method: Options Data free-sample file NIFTY_OPT_1min_2026-09-15_exp2026-09-15.parquet (Tuesday 15 Sep 2026, a NIFTY weekly expiry day), 1-minute close values. ATM at 09:15 was 23500, the strike with the smallest gap between call and put close. The rolling series repeats that test every minute. The table on this page lists the values at five times.
On 15 Sep 2026 the 23500 put rose from 60.10 at 09:15 to 319.60 at 15:00 while the 23500 call fell from 50.45 to 1.65, so the fixed 23500 straddle went from 110.55 to 321.25. Over the same minutes the rolling ATM straddle went from 110.55 to 96.70 as the ATM strike moved down from 23500 to 23200.
Strike plus call close minus put close gives an approximate NIFTY level from the option prices alone: 23,490.35 at 09:15 and 23,181.40 at 15:00 on 15 Sep 2026, a fall of about 309 points. A fixed-strike chart records that move in the put; a rolling ATM chart records the premium left at the money.
How should a chart treat minutes with no trade?
In Options Data 1-minute files, a bar with volume 0 records no trade in that minute, and its open, high, low and close are normally one flat price. Far-from-the-money strikes have many such bars and can miss minutes. Plot volume > 0 bars only, or mark the rest. Every 23500 call and put bar on 15 Sep 2026 had volume above zero.
For the full expiry-day workflow, see the expiry-day options backtesting data guide; for open interest charts by strike, see NIFTY open interest historical data.
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 (SENSEX has gaps where it is 0 — see /free/schema) |
Each row is one contract in one bar: traded OHLC, volume and open interest, with strike, expiry and call/put on every row.
Format: Parquet. Validate on the free sample and the schema page before buying.
FAQ
Where can I get historical NIFTY option charts for expired contracts?
Download the 1-minute bars and plot them yourself. Options Data sells NIFTY option chains at 1-minute for JAN 2023 → NOV 2026, expired weekly and monthly contracts included, as Parquet or CSV; the free sample holds the 15 Sep 2026 expiry day used on this page.
Which pack should I buy to chart 2026 NIFTY options?
NIFTY Options 1-minute 2026. For several years of expiries, NIFTY options 1-minute, 3 years.
Can I chart call and put option historical data in Excel?
Yes. Download the file as CSV, filter one strike and one of Call or Put, and plot close against datetime as a line chart.
What is a rolling ATM straddle chart?
A chart that, each minute, takes the strike where the call and put closes are nearest each other and plots that call plus put. It shows the premium at the money as the index moves, unlike a fixed-strike chart.
Which weekday did NIFTY weekly options expire on?
Thursday until 31 Aug 2025; Tuesday from 1 Sep 2025, with monthly contracts on the last Tuesday. A holiday moves expiry to the previous trading day.
Get the data
Free sample · Schema · Ask the AI for your data
NIFTY Options 1-minute 2026NIFTY option chain dataNIFTY options, 3 years 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
- 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?
- 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.