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 CE23500 PEFixed 23500 straddleRolling ATM strikeRolling ATM straddle
09:1550.4560.10110.5523500110.55
10:3019.05144.35163.4023350122.40
12:0011.80169.30181.1023350109.20
13:304.25227.55231.802330090.35
15:001.65319.60321.252320096.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)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 (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

Index and commodity data only.