A Python package for easily downloading historical options data
Project description
breeze-historical-options
Introduction
breeze-historical-options provides historic options data(starting from seconds) using the ICICI Breeze API. Data can be used for backtesting, analysis and simulation purposes. All you need is a free ICICI direct account to access Breeze API.
Referral Link - https://secure.icicidirect.com/accountopening?rfrlcode=8510403004&utm_source=referral&utm_medium=referral&utm_campaign=OAO2.0
Installation
- Clone or download the repository using:
git clone https://github.com/madmay247/breeze-historical-options.git
or using PyPi Package:
pip install breeze-historical-options
- Create Virtual Environment
- Install required dependencies(if using git clone):
pip install -r requirements.txt
Usage
- Fill in
cred.yml
with your Breeze API keys and credentials. - Adjust parameters in
example.py
as needed (e.g., expiry dates, time range, scrip, strike range, path). - Run the script:
python example.py
- Data will be fetched and saved to the specified path.
Files Explanation
sample_cred.yml
: Template for API credentials.expiries.json
: Contains a list of expiry dates for options data.example.py
: Main script to fetch data using the package.
Login Code
from datetime import datetime
from breeze_connect import BreezeConnect
from BreezeHistoricalOptions import autologin, Breezy
import json, yaml, time
with open('cred.yml') as f:
cred = yaml.load(f, Loader=yaml.FullLoader)
breeze = BreezeConnect(api_key=cred['api_key'])
try:
session_key = autologin.get_session_key(cred=cred, force=False)
except:
session_key = autologin.get_session_key(cred=cred, force=True)
breeze.generate_session(api_secret=cred['api_secret'],
session_token=session_key)
Fetch Data Function
from datetime import datetime
from breeze_connect import BreezeConnect
from BreezeHistoricalOptions import autologin, Breezy
import json, yaml, time
expiry_date = "06-Dec-2023" # 'expiries.json' contains a list of expiry dates in this format
start_datetime = "06-Dec-2023 9:15:00"
end_datetime = "06-Dec-2023 15:29:59"
Breezy.fetch_data(
api = breeze,
scrip = "CNXBAN", # 'NIFTY' for Nifty 50 | 'CNXBAN' for Bank Nifty | 'NIFFIN' for Finnifty | 'NIFMID' for Midcap Nifty
exch = "NFO",
expiry_date = datetime.strptime(expiry_date, "%d-%b-%Y"),
start_datetime = datetime.strptime(start_datetime, "%d-%b-%Y %H:%M:%S"),
end_datetime = datetime.strptime(end_datetime, "%d-%b-%Y %H:%M:%S"),
start_strike = 47000,
end_strike = 47200,
step = 100,
max_threads = 3, #Set this to 1 if you are getting api breeze_historical_v2() error
export_path = 'HistoricData/' #will auto-create path if it doesn't exist
)
Contributing
Contributions are welcome. Please fork the repository, make your changes, and submit a pull request.
Support
Consider supporting via using this referral link for ICICI Direct account: https://secure.icicidirect.com/accountopening?rfrlcode=8510403004&utm_source=referral&utm_medium=referral&utm_campaign=OAO2.0
Usage Video
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file breeze-historical-options-1.2.tar.gz
.
File metadata
- Download URL: breeze-historical-options-1.2.tar.gz
- Upload date:
- Size: 7.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 96eec9fcacfb9e1d78317f9408e795f7aa2b84640ed80dee1525da89c2221e28 |
|
MD5 | a81e28e1f95ed7df30abfe15a9eafc7c |
|
BLAKE2b-256 | f32297a4b6ccae1231d08b4c9106822957c98bd62eb5c361dc129a947545922c |
File details
Details for the file breeze_historical_options-1.2-py3-none-any.whl
.
File metadata
- Download URL: breeze_historical_options-1.2-py3-none-any.whl
- Upload date:
- Size: 8.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.3
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5071c58f255d9dc7e55b6a8c160cd55fb5d469be6e0a32b358f21f727f4f47c |
|
MD5 | 16f76d7b14faa3d1b3978a74f2ac4c65 |
|
BLAKE2b-256 | f7b90ed43e781a53ce2af674122f441201bae78c8564a94e6c98740412114e9c |