Python library for algorithmic trading with OpenAlgo - Accounts, Orders, and Market Data APIs
Project description
OpenAlgo Python Library
A Python library for algorithmic trading using OpenAlgo's REST APIs. This library provides a comprehensive interface for order management, market data, and account operations.
Installation
pip install openalgo
Quick Start
from openalgo import api
# Initialize the client
client = api(
api_key="your_api_key",
host="http://127.0.0.1:5000" # or your OpenAlgo server URL
)
API Categories
1. Accounts API
Funds
Get funds and margin details of the trading account.
result = client.funds()
# Returns:
{
"data": {
"availablecash": "18083.01",
"collateral": "0.00",
"m2mrealized": "0.00",
"m2munrealized": "0.00",
"utiliseddebits": "0.00"
},
"status": "success"
}
Orderbook
Get orderbook details with statistics.
result = client.orderbook()
# Returns order details and statistics including:
# - Total buy/sell orders
# - Total completed/open/rejected orders
# - Individual order details with status
Tradebook
Get execution details of trades.
result = client.tradebook()
# Returns list of executed trades with:
# - Symbol, action, quantity
# - Average price, trade value
# - Timestamp, order ID
Positionbook
Get current positions across all segments.
result = client.positionbook()
# Returns list of positions with:
# - Symbol, exchange, product
# - Quantity, average price
Holdings
Get stock holdings with P&L details.
result = client.holdings()
# Returns:
# - List of holdings with quantity and P&L
# - Statistics including total holding value
# - Total investment value and P&L
2. Orders API
Place Order
Place a regular order.
result = client.placeorder(
symbol="RELIANCE",
exchange="NSE",
action="BUY",
quantity=1,
price_type="MARKET",
product="MIS"
)
Place Smart Order
Place an order with position sizing.
result = client.placesmartorder(
symbol="RELIANCE",
exchange="NSE",
action="BUY",
quantity=1,
position_size=100,
price_type="MARKET",
product="MIS"
)
Basket Order
Place multiple orders simultaneously.
orders = [
{
"symbol": "RELIANCE",
"exchange": "NSE",
"action": "BUY",
"quantity": 1,
"pricetype": "MARKET",
"product": "MIS"
},
{
"symbol": "INFY",
"exchange": "NSE",
"action": "SELL",
"quantity": 1,
"pricetype": "MARKET",
"product": "MIS"
}
]
result = client.basketorder(orders=orders)
Split Order
Split a large order into smaller ones.
result = client.splitorder(
symbol="YESBANK",
exchange="NSE",
action="SELL",
quantity=105,
splitsize=20,
price_type="MARKET",
product="MIS"
)
Order Status
Check status of a specific order.
result = client.orderstatus(
order_id="24120900146469",
strategy="Test Strategy"
)
Open Position
Get current open position for a symbol.
result = client.openposition(
symbol="YESBANK",
exchange="NSE",
product="CNC"
)
Modify Order
Modify an existing order.
result = client.modifyorder(
order_id="24120900146469",
symbol="RELIANCE",
action="BUY",
exchange="NSE",
quantity=2,
price="2100",
product="MIS",
price_type="LIMIT"
)
Cancel Order
Cancel a specific order.
result = client.cancelorder(
order_id="24120900146469"
)
Cancel All Orders
Cancel all open orders.
result = client.cancelallorder()
Close Position
Close all open positions.
result = client.closeposition()
3. Data API
Quotes
Get real-time quotes for a symbol.
result = client.quotes(
symbol="RELIANCE",
exchange="NSE"
)
Market Depth
Get market depth (order book) data.
result = client.depth(
symbol="RELIANCE",
exchange="NSE"
)
Historical Data
Get historical price data.
result = client.history(
symbol="RELIANCE",
exchange="NSE",
interval="5m",
start_date="2024-01-01",
end_date="2024-01-31"
)
Intervals
Get supported time intervals for historical data.
result = client.interval()
Examples
Check the examples directory for detailed usage:
- account_test.py: Test account-related functions
- order_test.py: Test order management functions
- data_examples.py: Test market data functions
Publishing to PyPI
-
Update version in
openalgo/__init__.py -
Build the distribution:
python -m pip install --upgrade build
python -m build
- Upload to PyPI:
python -m pip install --upgrade twine
python -m twine upload dist/*
License
This project is licensed under the MIT License - see the LICENSE file for details.
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 openalgo-1.0.4.tar.gz.
File metadata
- Download URL: openalgo-1.0.4.tar.gz
- Upload date:
- Size: 11.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
551cf94830a4940f5b88dee05976caf0762c411b2b463153daf9a88c15e50ee7
|
|
| MD5 |
c528bbb0ebaea424cdd8b8bd1a4143c3
|
|
| BLAKE2b-256 |
16e7bc0f6661e99a0c5114747c099a89d8e0ef44ccf193d31bb29fb25bc41736
|
File details
Details for the file openalgo-1.0.4-py3-none-any.whl.
File metadata
- Download URL: openalgo-1.0.4-py3-none-any.whl
- Upload date:
- Size: 10.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.0.1 CPython/3.13.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fee1b5c3424f971d5fee8a2ed8bee73f0be9adb4a81335ffb7c053d8a80ce815
|
|
| MD5 |
1976e9e2f94efdd856370036efb32961
|
|
| BLAKE2b-256 |
241cca1147c5f0c5cd89c00458c095abb5d574af25e2b3784eb95626233ea9d0
|