100% FREE RESOURCES

Historical Expired Options Data CSV

Sanitized, verified, and complete expiry datasets for Nifty and Bank Nifty options. Perfect for quants, strategy developers, and backtesting algorithmic trading strategies.

1-Minute
Granularity
CSV Format
Universal Load
Weekly/Monthly
All Expiries
Clean & Verified
Zero Bad Ticks
NIFTY 50 INDEX

Nifty Expired Options Data

Complete historical 1-minute OHLCV+OI dataset for expired Nifty 50 weekly and monthly options contracts. Ideal for straddle, strangle, and index decay strategies.

  • Coverage starts: 2024-01-04 (4 Jan 2024)
  • Columns: Symbol, Expiry, Date, Time, OHLC, Vol, OI
  • Update Frequency: Weekly updates
Download Nifty Dataset
BANKNIFTY INDEX

Bank Nifty Expired Options Data

Complete historical 1-minute OHLCV+OI dataset for expired Bank Nifty weekly and monthly options contracts. Ideal for high-volatility expiry day strategies.

  • Coverage starts: 2026-02-24 (24 Feb 2026)
  • Columns: Symbol, Expiry, Date, Time, OHLC, Vol, OI
  • Update Frequency: Weekly updates
Download Bank Nifty Dataset

Share these datasets with other traders

CSV Dataset Schema Specification

Each CSV dataset is structured consistently, allowing easy loading in Python, Excel, or R. Below is the mapping and specification of columns provided in the files:

Column NameData TypeDescriptionExample Value
SymbolStringUnique options contract identifier (NSE format)NIFTY24DEC24000CE
DateDate (YYYY-MM-DD)Trading session date2024-12-26
TimeTime (HH:MM:SS)Timestamp at start of the 1-min interval09:15:00
Open / High / Low / CloseFloatContract premium prices during the minute125.40, 128.00, 122.10, 124.95
VolumeIntegerAccumulated trading volume (number of contracts)1450
Open Interest (OI)IntegerLive open positions at the end of the minute425200

Quick Integration with Pandas

Load the CSV historical data directly in your Python backtesting engine.

import pandas as pd

# Load the downloaded options CSV dataset
df = pd.read_csv('NIFTY_2024_01_04.csv')

# Convert Date and Time strings to a unified DatetimeIndex
df['Datetime'] = pd.to_datetime(df['Date'] + ' ' + df['Time'])
df.set_index('Datetime', inplace=True)

# Filter for specific CE/PE strikes
strike_filter = df[df['Symbol'].str.contains('CE')]
print(strike_filter.head())

Backtest Real Expiries

Conduct comprehensive backtesting on actual completed cycles. Calculate realistic metrics for straddles, iron condors, or butterflies.

Premium Decay Analytics

Study how Option Theta decays on intraday candles near closing hours. Validate assumptions regarding high-impact slip boundaries.

Sanitized CSV Outputs

Clean data ensures correct backtests. All bad data points and outliers are flagged, filtered, and corrected before being archived.

Frequently Asked Questions

Is there any charge for downloading this options contract data?

No, both Nifty and Bank Nifty historical expired options contract datasets are 100% free and open for public download. No subscription or log-in required.

Can I import this CSV data directly into Python or custom backtesters?

Yes. The format matches standard CSV. It contains raw columns that are fully compatible with Pandas backtesting engines, vectorBT, or Excel.

Why is it important to analyze expired options contract datasets?

Using expired contracts helps you run simulation models that capture real bid-ask behavior, premium spikes, and complete decay profiles across various historical market cycles, reducing live trading surprises.