Skip to main content

PyAlgoEngine

High-Performance Algorithmic Trading Engine in Python, Cython, and C

PyAlgoEngine is a low-latency trading engine for HFT (High-Frequency Trading) systems. It provides C-level market data structures, shared-memory buffers, an event-driven engine architecture, backtesting with simulated order matching, exchange calendar profiles, and web-based visualization — all with Cython acceleration for latency-critical paths.

Features

Category Capabilities
Market Data TickData, TickDataLite, BarData, DailyBar, OrderBook, TransactionData, OrderData, TradeData — all C-backed via Cython
Buffers MarketDataBuffer, MarketDataRingBuffer, MarketDataConcurrentBuffer, MarketDataBufferCache
Engines EVENT_ENGINE (pub/sub), MDS (Market Data Service), ALGO_ENGINE (algo lifecycle), trade engine (DMA, positions, risk)
Exchange Profiles CN (A-share) and default global calendars, session phases, holidays via PROFILE, PROFILE_CN, PROFILE_DEFAULT
Backtesting SimpleReplay, ProgressReplay, SimMatch (simulated matching), TradeMetrics
Strategy Framework StrategyEngine, AlgoTemplate, global singletons (BALANCE, DMA, STRATEGY_ENGINE)
Web Apps Flask + Bokeh dashboards, candlestick charts, strategy tester UI
Compile-Time Config BOOK_SIZE, ID_SIZE, LONG_ID_SIZE, MD_BUF_PTR_DEFAULT_CAP, MD_BUF_DATA_DEFAULT_CAP via env vars

Quick Install

git clone https://github.com/BolunHan/PyAlgoEngine.git
cd PyAlgoEngine
./build.sh -i

Requires Python 3.12+ and a C compiler (GCC, Clang, or MSVC). See the Setup Guide for detailed instructions, compile-time configuration, and optional dependencies.

Quick Verify

import algo_engine
print(algo_engine.__version__)

from algo_engine.base import CONFIG
print(CONFIG)  # compile-time and runtime configuration

Documentation

Build locally:

cd docs && ./update_docs.sh
# open build/html/index.html

Deploy to Read the Docs

  1. Sign up at readthedocs.org and import this repo
  2. The included .readthedocs.yaml handles the build — it compiles Cython extensions, installs the package, and builds with Sphinx + Furo
  3. RTD auto-builds on every push to main; enable the GitHub webhook in Admin → Integrations on your RTD project dashboard

Architecture

┌──────────────────────────────────────────────────────┐
│  apps/          Web visualization (Flask, Bokeh)     │
├──────────────────────────────────────────────────────┤
│  strategy/      Strategy framework, global singletons│
├──────────────────────────────────────────────────────┤
│  engine/        Event, Market, Algo, Trade engines   │
├──────────────────────────────────────────────────────┤
│  backtest/      Replay, SimMatch, Metrics            │
├──────────────────────────────────────────────────────┤
│  base/          Market data types, buffers (Cython/C)│
├──────────────────────────────────────────────────────┤
│  exchange_profile/  Calendars, sessions (CN + global)│
├──────────────────────────────────────────────────────┤
│  monitor/       Synthetic order book, bar monitor    │
├──────────────────────────────────────────────────────┤
│  utils/         Time-series indices, fake data       │
└──────────────────────────────────────────────────────┘

Build System

Command Description
./build.sh -i Clean, build Cython extensions in-place, install
make build Clean and build extensions in-place
make install Build + pip install
./build.sh -l List all compile-time macros and defaults
make list-args Same as above

Override compile-time constants:

BOOK_SIZE=20 ./build.sh -i

Dependencies

  • Runtime: numpy, pandas, exchange_calendars, PyCyBase, PyEventEngine, Cython
  • Web (optional): flask, waitress, bokeh
  • Docs (optional): sphinx, sphinx-rtd-theme

License

MIT — Han Bolun

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

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

pyalgoengine-0.12.0.post2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.5 MB view details)

Uploaded CPython 3.14tmanylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyalgoengine-0.12.0.post2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.14manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyalgoengine-0.12.0.post2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.13manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

pyalgoengine-0.12.0.post2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.17+ x86-64manylinux: glibc 2.28+ x86-64

File details

Details for the file pyalgoengine-0.12.0.post2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post2-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e532143c466885fae0d5b70713a93ccf5873d041040dabec7a4d0faf5b17868
MD5 93d331efa512eebeb0003a7e5ad5d178
BLAKE2b-256 fe1c469bb021840c150468ccd961678d6421cc1d8800c5c4c32e2cfeab1b2903

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post2-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9c9e8e4004b9f15e2a4a5557aa4b2efa956ba1e10ef4187ac9e7eee408553468
MD5 a0e6f61847668126c3118e486fa9aabb
BLAKE2b-256 c0eb5b37037ec98d77787508c0ab65b4d4b89bc71e0a772874597e04172d8f50

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post2-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 93cbfcd8f2ab498f32c47307183159dd5ef686904c63cd86256842e6fc2a2e1c
MD5 ba9a5c3de2e00ced613911051df0b9ec
BLAKE2b-256 9c6e4853b59f470d4373277e4a79e9c28e8df1f31fff155812af477138b53641

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post2-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 406ef3428e89d3b03c65f4936e5c6416088cec9285f879410534995a27cbb3f9
MD5 b82f2e649a279f76b1b72f6a03fef8b6
BLAKE2b-256 b23e110b6d3e215b753aca64f756589ca49a3f25315e167f1b972f2c723a00a7

See more details on using hashes here.

Release history Release notifications | RSS feed

0.12.6

12 files

0.12.5

6 files

0.12.4

6 files

0.12.3.post1

12 files

0.12.3

12 files

0.12.0.post3

8 files

This release

0.12.0.post2 This release

4 files

0.12.0.post1

4 files

0.11.2.post4

4 files

0.11.2.post3

4 files

0.11.2.post1

4 files

0.11.1.post2

4 files

0.10.8

4 files

0.10.6

4 files

0.10.5

4 files

0.10.0

4 files

0.9.4.post6

4 files

0.9.4.post1

4 files

0.9.1

4 files

0.9.0

4 files

0.8.6

2 files

0.8.5

2 files

0.8.4.post1

2 files

0.8.3

2 files

0.8.0.post5

4 files

0.8.0.post4

2 files

0.8.0.post3

2 files

0.8.0.post2

2 files

0.8.0

2 files

0.7.7.post1

2 files

0.7.7

2 files

0.7.6.post8

2 files

0.7.6.post7

2 files

0.7.6.post6

2 files

0.7.6.post5

2 files

0.7.6.post4

2 files

0.7.6.post3

2 files

0.7.6.post2

2 files

0.7.6.post1

2 files

0.7.6

2 files

0.7.5.post2

2 files

0.7.5.post1

2 files

0.7.5

2 files

0.7.4.post1

2 files

0.7.4

2 files

0.5.4.post11

1 file

0.5.4.post10

1 file

0.5.4.post8

1 file

0.5.4.post7

1 file

0.5.4.post6

1 file

0.5.4.post4

1 file

0.5.4

1 file

0.5.2

1 file

0.4.3

1 file

0.4.2

1 file

0.4.1

1 file

0.4.0.post2

1 file

0.4.0.post1

1 file

0.4.0

1 file

0.3.13.post1

1 file

0.3.13

1 file

0.3.12.post4

1 file

0.3.12.post3

1 file

0.3.11.post1

1 file

0.3.10

1 file

0.3.9.post4

1 file

0.3.9.post2

1 file

0.3.9.post1

1 file

0.3.8.post1

1 file

0.3.8

1 file

0.3.6

1 file

0.3.5

1 file

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