Features
Performance
Scale computation with chunking, caching, JIT compilation, and parallel execution
Run quantitative workloads efficiently, from compiled array operations to portfolio simulation. VBT PRO combines Numba, optional Rust kernels, and custom NumPy implementations with chunking, caching, and parallel execution. You can speed up calculations in a Python research workflow, spread independent backtests across workers, or build a native Rust strategy.
See VBT process millions of backtests, run stateful strategies in Rust, and spread research across CPU cores. The examples and interactive benchmarks show the speed and memory use directly.
Find the right starting point
| What you need | Explore |
|---|---|
| Faster indicators, return metrics, or simulations from Python | Compute backends compares Numba, Rust, parallel kernels, and custom implementations. |
| Precompiled calculations or strategies written directly in Rust | Rust engine covers Python acceleration, native callbacks, and streaming simulation. |
| Larger parameter searches with control over memory and completed work | Parallel execution and caching covers chunks, threads, processes, Ray, and reusable results. |
| Measured speed across simulators and workloads | Benchmarks compares simulators and shows how to measure your own code. |
Performance pages
Compute backends
Run kernels with Numba, parallel Numba, Rust, or NumPy and choose the backend per call
Rust engine
Run simulations on the native Rust engine and write strategy callbacks in Rust
Parallel execution and caching
Chunk work across threads, processes, or Ray, cache results, and keep memory bounded
Benchmarks
Compare simulators on the same orders and measure each backend on your own machine
Keep your Python workflow
You can use the high-level pandas and portfolio APIs while supported numerical calculations run in compiled code. Numba handles custom numerical callbacks, and the optional Rust extension can accelerate supported built-in calls without requiring you to write Rust. Backend selection and parallel workers give you separate controls over how a calculation runs and how independent work is distributed.
For a large strategy search, combine the two: run the calculations through a suitable backend, process combinations in manageable chunks, and keep the metrics you need. If you want to write the strategy in Rust, the native simulators also support stateful callbacks and processing new bars as they arrive.
Start here
Start with the benchmark comparisons to see measured examples, or follow From Python to Rust to explore the same strategy at different execution levels.
See the Rust documentation for the native backend and the Benchmarks for measured performance examples.
Copyright © 2021–2026 Oleg Polakow. All rights reserved.
Site content and documentation are provided for using and evaluating VectorBT PRO and for educational purposes. Any other use, including building or supporting competing products or services, requires prior written consent.