Skip to main content

Package is a Python client library designed to interact with a broker API service. It provides functionalities to manage and execute trading strategies, handle orders, and retrieve market data.

Project description

📦 BrokerPackage

BrokerPackage is a Python client library designed to interact with a broker API service. It provides a structured interface to perform trading operations such as login, fetching quotes, placing orders, managing positions, and more.


🚀 Features

  • 🔐 Login & session handling
  • 📊 Fetch market quotes (API + local fallback)
  • 📈 View orders, positions, and portfolio
  • 💰 Check available cash & margin requirements
  • 🛒 Place, modify, and cancel orders
  • 🔄 Automatic failover (primary → secondary server)
  • 🎯 Token-based instrument identification
  • ⚡ Tick-size rounding utility for F&O (.05 precision)

This script requires the following libraries:

  • openpyxl==3.1.2
  • pandas==1.5.3
  • numpy==1.23.5

📦 Installation

pip install openpyxl==3.1.2 pandas==1.5.3 numpy==1.23.5 

🧑‍💻 Usage

1. Initialize

from BrokerPackage import BrokerPackage

broker = BrokerPackage(username="your_username")

2. Login

broker.login()

3. Get Token

token = broker.get_token(name="RELIANCE")

4. Get Quote

quote_df = broker.get_quote(name="RELIANCE")
print(quote_df)

5. Get LTP (Last Traded Price)

ltp = broker.get_ltp(name="RELIANCE")
print(ltp)

6. Place Order

order_id = broker.place_order(
    transaction_type="BUY",
    price_=2500,
    quantity=10,
    name="RELIANCE"
)
print(order_id)

7. Modify Order

broker.modify_order(order_id="12345", price=2550, quantity=10)

8. Cancel Order

broker.cancel_order(order_id="12345")

9. View Orders / Positions / Portfolio

orders = broker.orders()
positions = broker.positions()
portfolio = broker.portfolio()

10. Account Info

cash = broker.get_available_cash()
margin = broker.get_required_margin(
    transaction_type="BUY",
    token=token,
    price_=2500,
    product="MIS"
)

🔄 Failover Mechanism

All API calls:

  • Try Primary URL
  • On failure → fallback to Secondary URL

🌐 API Endpoints Used

Endpoint Description
/get_file Fetch user configuration
/login Login using config
/get_token Get instrument token
/get_quote Fetch market data
/place_order Place trade
/modify_order Modify trade
/cancel_order Cancel trade
/orders Get order book
/positions Get positions
/portfolio Get holdings
/get_available_cash Cash balance
/get_required_margin Margin calculation

📊 Local Quote Fallback

Method: get_quote_api()

Flow:

  1. Try local service (quotetickcandle-secvice)
  2. If failed → fallback to broker API

🎯 Tick Size Rounding

Utility method:

broker.round_to(12569.67)
  • Default precision: 0.05 (F&O tick size)
  • Supports dynamic precision via column or value

⚠️ Error Handling

  • All API responses checked for "error"
  • Raises Exception if any issue occurs
  • Network failures auto-switch to secondary server

🧩 Dependencies

  • pandas
  • requests
  • numpy
  • typing

📝 Notes

  • Ensure API services are running:

    • broker-api-service
    • quotetickcandle-secvice
  • URLs can be overridden via config file (get_file response)


📌 Example Workflow

broker = BrokerPackage("user1")
broker.login()

token = broker.get_token("NIFTY")
ltp = broker.get_ltp(name="NIFTY")

order_id = broker.place_order(
    transaction_type="BUY",
    price_=ltp,
    quantity=50,
    name="NIFTY"
)

📄 License

This project is intended for internal/private trading system usage.


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

brokerpackage-0.2.tar.gz (5.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

brokerpackage-0.2-py3-none-any.whl (6.2 kB view details)

Uploaded Python 3

File details

Details for the file brokerpackage-0.2.tar.gz.

File metadata

  • Download URL: brokerpackage-0.2.tar.gz
  • Upload date:
  • Size: 5.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.7

File hashes

Hashes for brokerpackage-0.2.tar.gz
Algorithm Hash digest
SHA256 1bce6130bf539e3672d495ac90a598312c0f674cd41467a6194ea79ad60a5b48
MD5 69e15c01d9e8d23701c9c821f6c6fb75
BLAKE2b-256 9eaa8057c55e060b8efb301eb5a819db1dd8d098bb0db591421186e17afaeb9b

See more details on using hashes here.

File details

Details for the file brokerpackage-0.2-py3-none-any.whl.

File metadata

  • Download URL: brokerpackage-0.2-py3-none-any.whl
  • Upload date:
  • Size: 6.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.7

File hashes

Hashes for brokerpackage-0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 387b5edbd1a46d2defcecada350a6d93011d1879f322948626df7a94b3d50d2c
MD5 e1749cc19c1a7bafca7cd93bd778ec8a
BLAKE2b-256 1c475365fbeaaf237f038c293bf538e7fa2af02397ca5c605372d9f79c9e9e1c

See more details on using hashes here.

Supported by

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