Built for researchers who ship

Manifold-BT started from a simple frustration: existing backtesting tools force you to choose between speed and correctness. That's a false trade-off, so we wrote the engine in Rust and wrapped it in Python.

Why this exists

Most backtesting frameworks were designed when a year of daily bars was a "large" dataset. They work fine for prototyping, until you need realistic execution modeling, sub-minute resolution, or parameter sweeps across thousands of combinations.

At that point, Python-native frameworks hit a wall. You start cutting corners: skip the walk-forward, assume zero slippage, test fewer parameters. Research quality suffers.

Manifold-BT takes a different approach. The core engine is Rust, operating on Apache Arrow columnar arrays with zero-copy semantics. Indicators, simulation, and metrics run with sub-second single-shot backtests and 552K-combo sweeps in seconds.

But speed alone isn't the point. The real value is what speed enables: running a full walk-forward on every idea, testing execution assumptions properly, and never skipping the robustness checks because they "take too long."

Design principles

Correctness first

execution realism

Every fill, every fee, every funding payment is modeled explicitly. We'd rather surface an uncomfortable result than hide it behind optimistic assumptions.

Speed enables rigor

552K combos in seconds

When a full walk-forward takes seconds instead of hours, you actually run it. Performance isn't a feature, it's what makes good research habits practical.

Reproducibility by default

deterministic replay

Manifests pin data versions, parameters, and engine builds. Every result can be replayed exactly, months or years later.

Python where it matters

zero friction

Signal logic, analysis, and visualization stay in Python. The heavy lifting happens in Rust, invisible to the researcher. No context-switching required.

Stack

The engine is structured as a Rust workspace exposed to Python via PyO3. Key dependencies are chosen for correctness and performance, not novelty.

Engine
RustApache ArrowRayonPyO3
Python interface
maturinNumPyPolarsmatplotlib
Data providers
BinanceHyperliquiddYdXBitstampMassiveDataBento

Open source at the core

The engine, indicators, and simulation logic are open source. Pro features add convenience, the core research capability is free.