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:
- Try local service (
quotetickcandle-secvice) - 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
Exceptionif any issue occurs - Network failures auto-switch to secondary server
🧩 Dependencies
pandasrequestsnumpytyping
📝 Notes
-
Ensure API services are running:
broker-api-servicequotetickcandle-secvice
-
URLs can be overridden via config file (
get_fileresponse)
📌 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
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 brokerpackage-0.1.tar.gz.
File metadata
- Download URL: brokerpackage-0.1.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
64e2fa369c146daf6ff587cda1fff512361142aee21440e80c91cd2bf659ffd1
|
|
| MD5 |
9d05e4b92e18600b0b10644794f6a87f
|
|
| BLAKE2b-256 |
7a15527a9b0c71aab86592875b7799a980cd578cd220ebfa143bd34fb1a4a591
|
File details
Details for the file brokerpackage-0.1-py3-none-any.whl.
File metadata
- Download URL: brokerpackage-0.1-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
06a57a6b5d291162453a1dfb50aace33145e5438bf0bd57ef550c7f7ec674552
|
|
| MD5 |
07ac056b6ef3c8079cb079a6b7272c9b
|
|
| BLAKE2b-256 |
103aa61786e83cb2799afe1ba75209e3e10847edd1815a3965f9794995839a9b
|