You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

kite-order

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

kite-order

A Python module for placing bracket orders with Zerodha's KiteConnect API, featuring authentication, dashboard, Google Sheets integration, and customizable logging.

0.1.8
pipPyPI
Maintainers
1

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.json with your Kite API details.
    • Create credentials/credentials.json with your Google Service Account key.
  • Run the Script (example in order.py):

     # pip install --upgrade kite-order
    
     from kite_bracket_orders import BracketOrderPlacer, KiteDashboard, safe_print, login, pip_upgrade, pip_install
    
     order_data = {
         "segment"               : "NSE"     ,           # "NSE" or "NFO"
         "product_type"          : "MIS"     ,           # "MIS" or "CNC" or "NRML"
         "side"                  : "BUY"    ,           # "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.34      ,           # Only used if LIMIT order
         "target_price"          : 7.45      ,
         "stop_loss_trigger"     : 7.28      ,
         "stop_loss_limit"       : 7.27                  # only used if SL (not SL-M)
     }
    
     if __name__ == "__main__":
         # pip_install()  # Optional: Uncomment if you want to auto-install packages
    
         enable_logging = True  # True or False Enable/disable logging
    
         while True:
             safe_print("\n📊  Select an option:")
             safe_print("━" * 30)
             safe_print("1. 🔐  Kite Login")
             safe_print("2. 📈  Show Dashboard")
             safe_print("3. 🛒  Place Order")
             safe_print("4. 🛒  Entry Order track")
             safe_print("5. 🛒  SL/target Order track")
             safe_print("6. 🛠️   pip Upgrade")
             safe_print("7. ❌  Exit")
    
    
             choice = input("\n👉 Select an option (1-7): ")
    
    
             if choice == "1":
                 login()
             elif choice == "2":
                 dash = KiteDashboard()
                 dash.show_all()
             elif choice == "3":
                 placer = BracketOrderPlacer(code_data=order_data, enable_logging=enable_logging)
                 placer.load_kite_login_name_show()
                 placer.place_bracket_order()
             elif choice == "4":
                 placer = BracketOrderPlacer(code_data=order_data, enable_logging=enable_logging)
                 placer.load_kite_login_name_show()
                 safe_print("\n📋 Enter Entry Order Details:")
                 entry_order_id = input("🔢 Entry Order ID: ").strip()
                 target_price = float(input("🎯 Target Price: "))
                 stop_loss_trigger = float(input("🛑 Stop Loss Trigger Price: "))
                 sl_type = input("🛑 Stop Loss Type (SL or SL-M): ").strip().upper()
                 stop_loss_limit = float(input("🛑 Stop Loss Limit Price (if SL, else enter 0): ")) if sl_type == "SL" else 0
                 placer.track_entry_order(entry_order_id, target_price, stop_loss_trigger, stop_loss_limit, sl_type)
             elif choice == "5":
                 placer = BracketOrderPlacer(code_data=order_data, enable_logging=enable_logging)
                 placer.load_kite_login_name_show()
                 safe_print("\n📋 Enter SL/Target Order Details:")
                 target_order_id = input("🎯 Target Order ID: ").strip()
                 sl_order_id = input("🛑 Stop Loss Order ID: ").strip()
                 placer.track_sl_target_orders(target_order_id, sl_order_id)
             elif choice == "6":
                 pip_upgrade()
             elif choice == "7":
                 safe_print("\n👋 Exiting... Have a profitable day!")
                 break
             else:
                 safe_print("❗ Invalid option. Please try again.")
    
  • Run: python order.py

Configuration

  • config.json: Stores Kite API_KEY and ACCESS_TOKEN.
  • credentials.json: Google Sheets auth.
  • Logging: Set enable_logging=False to 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!

Keywords

zerodha kiteconnect trading bracket-orders api google-sheets

FAQs

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts