Parameter-grid scaling
Median warm runtime for five correctness-matched APIs as one 2,000-bar simulation expands from 4 to 64 settings.
Tools measured in this benchmark
Open a tool page for its code examples, strengths, and limits. Exact versions are listed in the technical details.
VectorBT
Uses labeled arrays for broad searches and compiled code for portfolio steps
Explore toolVectorBT PRO
Uses labeled arrays for broad searches and compiled code for steps that must run in order
Explore toolBacktesting.py
Precalculated indicators with one strategy call per bar
Explore toolPyBroker
Runs callbacks for each symbol and uses compiled code for heavy calculations
Explore toolBacktrader
Runs strategy and broker logic one bar at a time
Explore toolWarm runtime by parameter count
Median wall-clock time to simulate every setting and extract its result. Lower is faster. Runtime uses a logarithmic scale.
Batch-oriented APIs scale more gently
VectorBT has the lowest median at four settings. VectorBT PRO has the lowest median at 16 and 64 settings. The repeated event-engine calls grow close to linearly in this workload.
See exactly how the result was produced
Exact values
| Parameter settings | Backtesting.py | Backtrader | PyBroker | VectorBT | VectorBT PRO |
|---|---|---|---|---|---|
| 4 | 27.36 ms | 347.30 ms | 86.75 ms | 6.97 ms | 10.57 ms |
| 16 | 103.96 ms | 1,437.69 ms | 344.69 ms | 13.30 ms | 13.13 ms |
| 64 | 450.21 ms | 5,699.69 ms | 1,478.36 ms | 41.35 ms | 23.43 ms |
Environment
- Apple M3, 8 logical cores, 24 GB RAM
- macOS 26.5.2, arm64
- CPython 3.11.8
- Backtesting.py 0.6.6, Backtrader 1.9.78.123
- PyBroker 2.0.1, VectorBT 1.1.0
- VectorBT PRO 2026.9.5
Procedure
- 2,000 synthetic minute bars per setting
- 4, 16, and 64 holding-period settings
- 2 warmups and 5 measured repetitions
- One share, next-open fills, zero fees and slippage
- Every setting checked for matching fills and final equity
Scope
This measures simulation after signals exist. Event-oriented APIs are called once per setting, while vectorized APIs receive the complete signal matrix in one call. Indicator generation, optimizer features, and parallel execution are outside this release.
Peak RSS was not measured consistently, so this release does not include a memory chart. The result describes this precomputed-signal grid, not built-in optimization tools or strategy research speed in general.
Reproduce and inspect
The downloadable files preserve the measured values, available result detail, environment record, and checksums.
See the editorial process for the publication standard.
Download the data
Download the chart values, detailed results, release details, or file checksums separately.