Blog

Reamer vs vectorbt PRO

2026-07-18

vectorbt PRO is not a slow tool pretending to be fast. Built on NumPy, pandas, and Numba, it vectorizes backtests in a way that genuinely outruns anything looping bar-by-bar in Python — sweeping thousands of parameter combinations in the time a naive loop would take to run one. If the question is "which of these 500 moving-average lengths works best on this dataset," vectorbt PRO answers it about as fast as that question can be answered.

The question worth asking is what happens before that sweep, and after it.

What a parameter sweep assumes

Sweeping 500 parameter combinations assumes the strategy's shape is already fixed — you know it's a moving-average crossover, you know roughly what you're optimizing, and the open question is which specific numbers to plug in. That's a real and common need. It's also a late-stage one. Most of a trading idea's actual risk lives earlier — in whether the strategy shape itself survives realistic costs at all, whether the fills underneath it reflect how orders actually get filled, whether the resulting edge is real or an artifact of tuning against the same data being evaluated on.

A fast sweep over a shape that was never validated just finds the best-fitting version of an idea that might not have been real to begin with — speed doesn't fix that, it just gets you to the wrong answer faster.

A loop, not a single fast stage

Reamer isn't optimized to be the fastest tool at any one stage. It's built around the full loop — idea, implementation, execution, inspection, validation, iteration, decision, knowledge — with every stage held to the same standard: deterministic, seeded execution, fills modeled to a published specification, tick-level replay to see exactly what happened, and Monte Carlo robustness testing before anything is trusted. Parameter optimization is one stage in that loop, not the reason the loop exists.

This isn't a claim that Reamer's C++ execution core is slow — it's 11.4×–16.2× faster than Backtrader on identical realistic-strategy workloads. It's a claim that raw throughput on a fixed-shape sweep was never the bottleneck this product was built to remove. The bottleneck it targets is earlier: whether an idea deserves to reach the sweep stage at all.

Cross-sectional access and side-channel data

Reamer's on_bar fires once per aligned timestep with every ticker's data available inside that same call, as zero-copy numpy views — a genuinely different shape than vectorbt PRO's whole-history array operations, not a faster or slower version of the same thing. Reamer also supports attaching arbitrary, schema-free exogenous data — earnings surprises, macro prints, anything JSON-serializable — to any ticker, auto-resolved to the latest-known-as-of-this-bar value inside on_bar. This isn't a speed comparison; it's a different capability aimed at a different stage of the loop — expressing and inspecting a strategy's logic, not sweeping a fixed shape across a parameter grid.

Where vectorbt PRO is genuinely the better tool

If a strategy's shape is already validated and the actual task is exploring a large parameter space fast, vectorbt PRO is the right tool for that stage, full stop — that's a complementary use, not a competing one. Some researchers reasonably use both: validate a shape's realism and robustness in one tool, then hand a confirmed shape to a vectorized sweep for fine-tuning. Reamer doesn't try to be the fastest possible parameter-sweep engine; it tries to make sure the thing being swept was worth sweeping in the first place.


Full reference: docs · Benchmarks: reamerlabs.com/benchmark · Free tier: 10,000 processed bars per machine, permanently, no signup.