Skip to main content

A lightweight Python client for the Amherst College Quant Club Live Trading Engine.

Project description

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.

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

purpletrader-0.1.1.tar.gz (11.3 kB view details)

Uploaded Source

Built Distribution

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

purpletrader-0.1.1-py3-none-any.whl (5.5 kB view details)

Uploaded Python 3

File details

Details for the file purpletrader-0.1.1.tar.gz.

File metadata

  • Download URL: purpletrader-0.1.1.tar.gz
  • Upload date:
  • Size: 11.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for purpletrader-0.1.1.tar.gz
Algorithm Hash digest
SHA256 1863a4741f2736b6d13df021f857a07dddc1007f5ff4c99ccc5c87024de5a1d7
MD5 13fcf539b77fd70f9e009c3c7ea16565
BLAKE2b-256 22edb03fa77b44fa596512e5e808c082c31ea63f951a7d5138dc9c9249f3b799

See more details on using hashes here.

File details

Details for the file purpletrader-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: purpletrader-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 5.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.3

File hashes

Hashes for purpletrader-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 f45a651b10e0df7909b66e7ee8a5967145daf2a146e71b48069659bd6aa2c051
MD5 7925507439a6ed257b6440b23407a03b
BLAKE2b-256 5840b52a9d4ffa1d8b9d8d3fb9cc201b7e39c99cfcd9998d66c03b515dd9d733

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