Skip to main content

PyAlgoEngine

docs pypi-linux pypi-windows

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.3-cp315-cp315t-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.15tWindows x86-64

pyalgoengine-0.12.3-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

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

pyalgoengine-0.12.3-cp315-cp315-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.15Windows x86-64

pyalgoengine-0.12.3-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.5 MB view details)

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

pyalgoengine-0.12.3-cp314-cp314t-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14tWindows x86-64

pyalgoengine-0.12.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.6 MB view details)

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

pyalgoengine-0.12.3-cp314-cp314-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14Windows x86-64

pyalgoengine-0.12.3-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.3-cp313-cp313-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.13Windows x86-64

pyalgoengine-0.12.3-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.3-cp312-cp312-win_amd64.whl (4.4 MB view details)

Uploaded CPython 3.12Windows x86-64

pyalgoengine-0.12.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl (8.5 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.3-cp315-cp315t-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp315-cp315t-win_amd64.whl
Algorithm Hash digest
SHA256 d368869abfa10c85f992de3e2b987fda353e16ade3c5d5e7c62bf90acb0c9ac2
MD5 12f0da77e153ffe1e5b81f861e5b40ed
BLAKE2b-256 91a74341580157af9d7ef1aa8567b4d9143b8d4a094af4841039d170c34c641f

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp315-cp315t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6e883f1bdfcbb965338bec50c4773f8aa25a0c1301eea95fff85316dc17f9b28
MD5 407075a5c620fa858b5327709319579f
BLAKE2b-256 f5fd9546c8f5d46154eb08582ac5c833102b4e0e643dbc3eab5eade3ac58e20a

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-cp315-cp315-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp315-cp315-win_amd64.whl
Algorithm Hash digest
SHA256 0e73d62a6dfb7aa18c57dda824b525fbc1cc0fe1ffb53f9e1ad8354b0877a2ee
MD5 8d860c0e7ae7e65a9fbf98c97cadde01
BLAKE2b-256 323a33e03355522a4793b93b403b35b0aba6ed044d78fbba1d2cc9a088395a81

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp315-cp315-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b6420257e6c9f4cb600fcb5c846c72fe0c3788ebf1adb24868a8b6861eed49c0
MD5 7817a890052cf21a0975f1419bc68b75
BLAKE2b-256 ff5975b9d3a57742dbbe89980a09b1384d392193f63af054cdb43106ea940fa2

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 f2b7652bd0ac6308b9a00c3d2f89f59277f1d4641654253cea3ac7b18502b914
MD5 e25e57750a036f2cc413fe33fb806a05
BLAKE2b-256 285687b1a528b539a1febf170e6f7e2e3e6aff2a8d02a2335b8d5c33423dd26a

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ed54a94bca0926f0b8a44f5b2efdb499261f4391ff8f39f9ac7f5d179dbfc08
MD5 bc61a249f8610d3bbceb52341af1ff57
BLAKE2b-256 4158009c6ea3109d4110134fe3249a287a1159618868f2091e43ac46185e8f1b

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 d3c93707f3e9b94001d4418c492ea14bb9b8e998621b23e9bc72dcb2be48bbb4
MD5 808659676e9002be98c53373587b288a
BLAKE2b-256 cb99aea89cd32d0b2b557df2068290a6d1476993f2bb968bfa8e4062a44abf51

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 07b488c5f5047a8fdd75738bdf6d43d8fd07f9fe6fc85db544b763b662fcba81
MD5 9807965d5ddc2c7f6032457d51363400
BLAKE2b-256 f495e53abbb3bb3735fb4f0e005839ae15b9f38cd41f2d0c25c6b163a5f7f3b6

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 1f64a09d92b986fc2a4138ea6c2fcf23a86b573f5b70030d63dc7662c1953829
MD5 2f32cb522a7f2ae89d5bb055d91b6951
BLAKE2b-256 4e282ba166ebdc6c3854c9ee92c6f02b45dcdd29ed834873e06a3bbbdba5cb8e

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 aac4d784d2644f2149ea1d6735581587c29551b48d0259cd5d54782ca6e1fc55
MD5 c771017c42730fb88e1475cf71f18575
BLAKE2b-256 4dcec0bd58b8c96dfe036ce705cc4dd581d2e23b3550cb371d2689b731e8a574

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8d45ef5b2213db0d6c04fe47079766f7d0b6840145a1cfac16cea6f56afcaf52
MD5 5d0ba96255002b66ad57f12d5ef1ffc5
BLAKE2b-256 237939970d713e30fc88d4560717799b259f41fd72b90e51d1b9eb3f329b4900

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.3-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.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 4fbd3f45bb2edc6a58e81c43cd9a2de019027ab563bad618398406bcd6229458
MD5 2273d565acccf0a5037d51df60cb9273
BLAKE2b-256 1b731d0e544f4e3d0fcfb8c8b947ceb90fc790658ae1f47a80efa434238b9f11

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

This release

0.12.3 This release

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