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.0.post3-cp314-cp314t-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14tWindows x86-64

pyalgoengine-0.12.0.post3-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.post3-cp314-cp314-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.14Windows x86-64

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

Uploaded CPython 3.13Windows x86-64

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

Uploaded CPython 3.12Windows x86-64

pyalgoengine-0.12.0.post3-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.post3-cp314-cp314t-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post3-cp314-cp314t-win_amd64.whl
Algorithm Hash digest
SHA256 ce654ba36b280d4567948ad8bf655d173022bac004b6509920c0421d10c5b962
MD5 f9e84f1375c2e313d8d9356a62dd426e
BLAKE2b-256 2a73107a753d88e47c08956dc2c80c8387fbaf94d0e25b75acb106465acb21b2

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-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.post3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2d8734af754e3a047607cce56deb25d5769f20896d30750e8be9acca62cf61aa
MD5 d4ba0fb090edfcac8a2532e18ce69075
BLAKE2b-256 3fb6f2ccea51d52bcb5a66cb2d24c4a5e5092d740a18b1a93e834b328d3f94fe

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-cp314-cp314-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post3-cp314-cp314-win_amd64.whl
Algorithm Hash digest
SHA256 892ee0d64ef9499f70fcfad5dc122cad844291fe792624d772675049881487b9
MD5 694155d83fc9843cfc9e1eba4a7d4b8a
BLAKE2b-256 e9b0d9d3bb4835f48bb3e68e0ccdc2e1038dea029d76271cbd46dc496df243d1

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-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.post3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 386d0b3215c6de0ecdb1be800c8b2f959d976eb543bcbabaa16d7670cea2de75
MD5 30d9f24deae5807b41e94f1e30b91ae2
BLAKE2b-256 db626c92356dd83c42ce110f6cfeb03d489741f4f892cad6d0ebdb93a2c87474

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-cp313-cp313-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post3-cp313-cp313-win_amd64.whl
Algorithm Hash digest
SHA256 489dc46ce66187c1cff1a8b6ebbf0b54333f488508ad35e5a991631cfe73d487
MD5 a8ab317d6fb0ac11660ecfcb19f62d40
BLAKE2b-256 e561f50940002bad02a0c8e7f018094c98ab537fda870fadab889150f4b50aa3

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-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.post3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 9e5bd2070cf4ff4f4473cb92cdb6de03a2ff474b866e45b5b2be546a728c9f8e
MD5 bb6bbbf9b0a25d75b90bff7501ee1a76
BLAKE2b-256 cdff5f0d0ace03ffea4fe8d2528a37b86e89398f8d7c86a1c8112c6734876d67

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-cp312-cp312-win_amd64.whl.

File metadata

File hashes

Hashes for pyalgoengine-0.12.0.post3-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 67864a3648338b5ac54c45779e483850cb753db81c0823cc48b4ae43b92b5464
MD5 f8225e4d61f9be0091d5620550b1ef8b
BLAKE2b-256 114b34c1b1fca24a65592d6a669465f8687d46bf6c4a384eaa920ae008ad751c

See more details on using hashes here.

File details

Details for the file pyalgoengine-0.12.0.post3-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.post3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 726905866506758b9ea91c26c0a6a1f11221974375f9e04013d756aa09ef5b5e
MD5 d7ae6b1bb02aeda012e5d54c990d9f34
BLAKE2b-256 99ee3118f57c594b9e7067f731a0098cff682218a76a84f0c4126a2754513960

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

This release

0.12.0.post3 This release

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