Skip to main content

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

https://github.com/madmay247/breeze-historical-options/assets/132202725/3047a80e-1ae3-44f4-ac20-f1445375e0cf

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

breeze-historical-options-1.2.tar.gz (7.8 kB view details)

Uploaded Source

Built Distribution

breeze_historical_options-1.2-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file breeze-historical-options-1.2.tar.gz.

File metadata

File hashes

Hashes for breeze-historical-options-1.2.tar.gz
Algorithm Hash digest
SHA256 96eec9fcacfb9e1d78317f9408e795f7aa2b84640ed80dee1525da89c2221e28
MD5 a81e28e1f95ed7df30abfe15a9eafc7c
BLAKE2b-256 f32297a4b6ccae1231d08b4c9106822957c98bd62eb5c361dc129a947545922c

See more details on using hashes here.

File details

Details for the file breeze_historical_options-1.2-py3-none-any.whl.

File metadata

File hashes

Hashes for breeze_historical_options-1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 b5071c58f255d9dc7e55b6a8c160cd55fb5d469be6e0a32b358f21f727f4f47c
MD5 16f76d7b14faa3d1b3978a74f2ac4c65
BLAKE2b-256 f7b90ed43e781a53ce2af674122f441201bae78c8564a94e6c98740412114e9c

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page