Skip to main content

purpletrader

A lightweight Python client for the Live Trading Engine HTTP API.

Installation

pip install purpletrader

Usage

from purpletrader import TradingEngineClient, Order, Timeframe

# Optionally set a default user_id so you don't have to provide it per order
client = TradingEngineClient(base_url="http://localhost:8080", user_id="trader_123")

# Submit order
resp = client.submit_order(Order(
    id="order_001",
    symbol="AAPL",
    type="LIMIT",
    side="BUY",
    quantity=100,
    price=150.25,
))
print(resp)

# Fetch data
print(client.get_orderbook("AAPL"))
print(client.get_stats("AAPL"))
print(client.get_stats_timeframe("AAPL", Timeframe.ONE_MINUTE))
print(client.get_all_stats())
print(client.get_stats_summary())
print(client.get_leaderboard())
print(client.health())

Example Bots (for quick engine testing)

This repo also includes simple example bots under bots/ to exercise the live trading engine:

  • Market maker: continuously quotes around mid.
  • Momentum: buys breakouts, sells breakdowns.
  • Random: sends random buy/sell orders.

Each bot is a CLI that targets one or more symbols and a user id. They use the purpletrader client to interact with the engine's HTTP API.

Quick start:

# Set the engine base URL (adjust host/port for your deployment)
export ENGINE_URL="http://localhost:8080"

# Market maker on AAPL, user trader_mm
python -m bots.market_maker --base-url "$ENGINE_URL" --user-id trader_mm --symbol AAPL \
  --spread-bps 5 --qty 10 --tick-sec 1.0

# Momentum on AAPL, user trader_momo
python -m bots.momentum --base-url "$ENGINE_URL" --user-id trader_momo --symbol AAPL \
  --lookback 20 --threshold-bps 10 --qty 5 --tick-sec 1.0

# Random bot on AAPL and MSFT
python -m bots.random_bot --base-url "$ENGINE_URL" --user-id trader_rand --symbol AAPL --symbol MSFT \
  --qty-min 1 --qty-max 20 --tick-sec 0.5

# Run multiple bots concurrently from a config file
python -m bots.runner --base-url "$ENGINE_URL" --config bots/examples/bots.yaml

HPC/Slurm example

See bots/examples/slurm_job.sbatch for a minimal Slurm job that launches two bots. Submit via:

sbatch bots/examples/slurm_job.sbatch

Notes

  • Raises HTTPError on non-2xx responses with status_code, message, and body.
  • Default timeout is 30s; override via TradingEngineClient(timeout=...).
  • You can still override userId per order by passing it in the Order.

Metadata

Release files for purpletrader 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for purpletrader 0.1.1
File Size Uploaded
purpletrader-0.1.1.tar.gz 11.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for purpletrader 0.1.1
File Interpreter ABI Platform
purpletrader-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 16.8 kB

Release files / purpletrader-0.1.1.tar.gz

Download URL purpletrader-0.1.1.tar.gz
Size 11.3 kB
Tags Source
SHA-256 checksum
How to use checksums
1863a4741f2736b6d13df021f857a07dddc1007f5ff4c99ccc5c87024de5a1d7
BLAKE2b-256 checksum
How to use checksums
22edb03fa77b44fa596512e5e808c082c31ea63f951a7d5138dc9c9249f3b799
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release files / purpletrader-0.1.1-py3-none-any.whl

Download URL purpletrader-0.1.1-py3-none-any.whl
Size 5.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f45a651b10e0df7909b66e7ee8a5967145daf2a146e71b48069659bd6aa2c051
BLAKE2b-256 checksum
How to use checksums
5840b52a9d4ffa1d8b9d8d3fb9cc201b7e39c99cfcd9998d66c03b515dd9d733
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.13.3

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page