Skip to main content

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

  1. Update version in openalgo/__init__.py

  2. Build the distribution:

python -m pip install --upgrade build
python -m build
  1. 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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

openalgo-1.0.4.tar.gz (11.0 kB view details)

Uploaded Source

Built Distribution

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

openalgo-1.0.4-py3-none-any.whl (10.6 kB view details)

Uploaded Python 3

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

Hashes for openalgo-1.0.4.tar.gz
Algorithm Hash digest
SHA256 551cf94830a4940f5b88dee05976caf0762c411b2b463153daf9a88c15e50ee7
MD5 c528bbb0ebaea424cdd8b8bd1a4143c3
BLAKE2b-256 16e7bc0f6661e99a0c5114747c099a89d8e0ef44ccf193d31bb29fb25bc41736

See more details on using hashes here.

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

Hashes for openalgo-1.0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 fee1b5c3424f971d5fee8a2ed8bee73f0be9adb4a81335ffb7c053d8a80ce815
MD5 1976e9e2f94efdd856370036efb32961
BLAKE2b-256 241cca1147c5f0c5cd89c00458c095abb5d574af25e2b3784eb95626233ea9d0

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