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.
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
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
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 Name | Data Type | Description | Example Value |
|---|---|---|---|
| Symbol | String | Unique options contract identifier (NSE format) | NIFTY24DEC24000CE |
| Date | Date (YYYY-MM-DD) | Trading session date | 2024-12-26 |
| Time | Time (HH:MM:SS) | Timestamp at start of the 1-min interval | 09:15:00 |
| Open / High / Low / Close | Float | Contract premium prices during the minute | 125.40, 128.00, 122.10, 124.95 |
| Volume | Integer | Accumulated trading volume (number of contracts) | 1450 |
| Open Interest (OI) | Integer | Live open positions at the end of the minute | 425200 |
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.