A Python module for placing bracket orders with Zerodha's KiteConnect API, featuring authentication, dashboard, Google Sheets integration, and customizable logging.
Project description
Kite Bracket Orders
A Python module for placing bracket orders with Zerodha's KiteConnect API. It includes features like automated authentication, a dashboard for viewing margins/holdings/positions/orders, Google Sheets integration for trade plans, customizable logging, and market hour checks with AMO (After Market Order) support.
Features
- Bracket Order Placement: Place entry orders with target and stop-loss, including monitoring and modification.
- Authentication: Automatic login with dependency installation, config management, and session token handling.
- Dashboard: View account margins, holdings, positions, and recent orders in a clean terminal format.
- Google Sheets Integration: Load trade plans from a specified sheet for easy data-driven trading.
- Logging Toggle: Enable/disable logging to file with a simple flag (no impact on terminal output when disabled).
- Market Checks: Detects closed markets/weekends and prompts for AMO orders.
Dependencies
- kiteconnect
- gspread
- oauth2client
- colorama
These are automatically installed via pip.
Usage
-
Setup Credentials:
- Create
credentials/config.jsonwith your Kite API details. - Create
credentials/credentials.jsonwith your Google Service Account key.
- Create
-
Run the Script (example in order.py):
from kite_bracket_orders import BracketOrderPlacer, run_login, KiteDashboard
Define your order data here (edit as needed for easy order placement - used when choice "1" is selected)
order_data = { "segment": "NSE", # "NSE" or "NFO" "product_type": "MIS", # "MIS" or "CNC" or "NRML" "side": "SELL", # "BUY" or "SELL" "entry_order_type": "LIMIT", # "LIMIT" or "MARKET" "sl_type": "SL-M", # choose: "SL" or "SL-M"
"symbol": "IDEA", # e.g. "IDEA", "RELIANCE", or "NIFTY24JUL20000CE"
"quantity": 1, # Must match lot size for options; 1+ for stocks
"entry_price": 7.60, # Only used if LIMIT order
"target_price": 7.80,
"stop_loss_trigger": 7.50,
"stop_loss_limit": 0 # only used if SL (not SL-M)
}
if name == "main":
enable_logging = True # Toggle logging
run_login() # Handle authentication
# Show dashboard
dash = KiteDashboard()
dash.show_all()
# Proceed to bracket order
placer = BracketOrderPlacer(code_data=order_data, enable_logging=enable_logging)
placer.load_kite_login_name_show()
placer.place_bracket_order()
- Run: python order.py
Configuration
- config.json: Stores Kite API_KEY and ACCESS_TOKEN.
- credentials.json: Google Sheets auth.
- Logging: Set
enable_logging=Falseto disable log files.
License
MIT License. See LICENSE for details.
Contributing
Fork the repo and submit a pull request. Issues and feature requests are welcome!
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
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kite_order-0.1.0.tar.gz.
File metadata
- Download URL: kite_order-0.1.0.tar.gz
- Upload date:
- Size: 13.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6a23eed63680311b33f0fc6b697c14b667645a2c33c08112f248f1b969fff26b
|
|
| MD5 |
2e1b45067711231975fa24299313bc1d
|
|
| BLAKE2b-256 |
cbd1018034e7fdf70a6aa3532d0d07fb4b3330bbf99f996cc28a8117173bbc20
|
File details
Details for the file kite_order-0.1.0-py3-none-any.whl.
File metadata
- Download URL: kite_order-0.1.0-py3-none-any.whl
- Upload date:
- Size: 12.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8bce7837b73617b98b718e546b54a29b8965f941a932d27799ffc397ba24c9e1
|
|
| MD5 |
c71d010913049edd9be1a2fc2ab6a1c7
|
|
| BLAKE2b-256 |
807d2d6af2e2f6af1455293d96ce1a329d518c0791692b53f932fa537953f62d
|