Skip to main content

PyAlgoEngine

gitlab

GitHub Actions: ⛔ temporarily disabled — kept disabled until the GitHub Actions issue is resolved. See .github/workflows/README.md. CI runs on the GitLab mirror pipeline while disabled.

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

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.5-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

pyalgoengine-0.12.5-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.8 MB view details)

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

pyalgoengine-0.12.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.9 MB view details)

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

pyalgoengine-0.12.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.8 MB view details)

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

pyalgoengine-0.12.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.8 MB view details)

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

pyalgoengine-0.12.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (9.8 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.5-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.5-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ce13576904a8156cba74e389fd400290b85d859d2fd5e55fb3e69b5777f1cdfb
MD5 4a12d7787fc1a49c5f7cd49eaac0c821
BLAKE2b-256 d217bbed6439d78e3eec0e700717e01092518262ec5a2010087db1016701c9d5

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.5-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.5-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 42eb97a72afed00524018046b99a2e04cac9454aed47676a9e60384d9ab3ba56
MD5 1d0ca695d34ad32e7a3d4d83fa9cf1b8
BLAKE2b-256 0a9e97aa6ff3eb80207ceabc7ed9de56401e4839585355822a921fc0985d123b

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.5-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.5-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 d6208e07118829f281c32404b8112490f40448a36ff3381abebf51bbb3473dea
MD5 05e3d1e572885e7db8276ffdabdbc263
BLAKE2b-256 3de0fa39d0d2acf409fce74d8aae665674e885d78336ba9098a082b33197d64a

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.5-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.5-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 75c2863c60c00baf68622995bef32624bc57079bfa3d693cd701fd5fc07e8a2d
MD5 43beac95ef93394e4adf3ccaff4aec39
BLAKE2b-256 2441d1b564ad17b3a22d1e606e2f28bef6388359cd124f6d84bbced53094a305

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.5-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.5-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 a06d4d0278727794112792f661797f50d31175c18a1023a7dcf2ef32936a5973
MD5 3233652535e9c573552982a37afe3425
BLAKE2b-256 40624042df398957888d46a733beecc407cdeaf83dba460cc53a79eda7eaad07

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.5-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.5-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2e68c19a53076b27ae16dbc92202c34c8b939923d60de30a8a8f5987161fc26a
MD5 0aee6cb2e01ed0f4879c376a8d3f3072
BLAKE2b-256 dcce120adb7f8e6628e4988c7e21ecb57dafecd5f7dae0a9ed92e4de1dd188a7

See more details on using hashes here.

Release history Release notifications | RSS feed

0.12.6

12 files

This release

0.12.5 This release

6 files

0.12.4

6 files

0.12.3.post1

12 files

0.12.3

12 files

0.12.0.post3

8 files

0.12.0.post2

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