Reamer is a C++ backtesting engine with a Python strategy API, a tick-level GUI replay, and an execution model verified against a formal specification. Local, deterministic, and built to get the numbers right.
Most platforms help you write a strategy. Almost none help you build the engine around it. REAMER ships that engine — so you spend your months finding edges, not wiring systems together.
You can describe an edge in an afternoon. Proving it takes a stack most teams rebuild from scratch — every time.
Your slippage model isn't your edge. But a wrong one will destroy it. REAMER ships fill prices, brackets, partial closes, and spread microstructure — correct by default.
When results are deterministic and verified, you trust them. When you trust your results, you move faster.
Six stages, one engine. What you backtest is exactly what you replay — no drift between research and reality.
CSV ingestion. Multi-asset datasets. Local storage.
Write your strategy in Python with reamer_py.
import reamer_py
C++ hot loop with synthetic tick generation. Brackets, partial closes, and scale-in included. Execution matches a formal spec.
Performance metrics. Risk statistics. Trade breakdowns.
Stress-test robustness. Understand tail risk.
Step through every synthetic tick — see exactly which tick triggered a fill, where the spread was, and why a bracket fired.
Every number below comes from actually running reamer_py against Backtrader on the same machine, the same data, and functionally equivalent strategies with real order flow — not an empty callback.
Single-threaded, on an 8th-gen ultrabook CPU — not a workstation or server part. Zero commission, zero slippage, zero spread: pure throughput, not cost-adjusted P&L.
Read the full benchmarkSix capabilities, one engine. No services to provision, no pipelines to babysit, no cloud bill at the end of the month.
Built for mid-frequency OHLCV strategies — intraday to multi-day holds — across forex/CFD, crypto, futures, and equities. No order-book data, no options, no HFT. See the docs for what that means for long-horizon futures/equities backtests.
The hot loop runs in C++ with memory-mapped data access. No Python in the critical path. Backtests that would take minutes elsewhere complete in seconds.
Fill prices, slippage cost, bracket resolution, and spread behavior are defined in a formal spec. A 243-check behavioral test suite verifies conformance. Audit exactly what the engine does and why.
Synthetic ticks are generated deterministically per bar using a seeded RNG. Spread widens at bar open to model price discovery and normalizes by close. TP/SL brackets resolve at the tick they're first touched.
Write strategies in Python. One callback, on_bar, per aligned step, with zero-copy numpy array views into every ticker's OHLCV history. Limit, stop, IOC, GTC, GTD. Partial closes, scale-in, and netting supported.
Run strategies across multiple assets simultaneously with union or intersection bar alignment. Each asset has independent fills; the portfolio shares equity and margin. Same execution model across every ticker.
The GUI replay steps through individual synthetic ticks. The equity chart, position list, order list, and console log update in sync at each tick. Diagnose exactly which condition triggered a fill or bracket exit.
Reamer ships with a formal execution specification that defines fill prices, slippage cost, spread behavior, and bracket resolution. The engine is tested against 243 behavioral checks — end-to-end invariants, not unit tests of internal functions.
Every backtest is seeded. Run it again tomorrow, get the same fills. Change the seed, get statistically equivalent aggregate behavior. Your results are auditable.
Bracket collision, IOC cancellation timing, partial close accounting, scale-in weighted entry price — each is specified and tested. No surprises when you move from research to production.
243 behavioral checks across execution scenarios, property fuzzing, broker validation, golden regression, and on-tick callbacks. The suite is the contract between the engine and your research.
reamer_py runs unlicensed with no signup — up to 10,000 bars per machine (~35 days of continuous 5-minute data), no expiry. A license removes that cap. No per-seat metering beyond that, no cloud bill.
pip install --find-links https://reamerlabs.github.io/Reamer/index.html reamer-py
No signup, no card — this command is the whole install. Full install guide.
Reamer GUI is a free download — no account, no license key, no activation. It opens .reamer result files and replays them tick by tick. Results come from reamer_py — see Pricing to get it running.
Backtest Results, Monte Carlo, and tick-by-tick Replay in one window. A signed standalone installer; fully local, no account required.
reamer_py works with no activation at all up to 10,000 bars per machine. Once you need more, activate — either path below works from any terminal where reamer_py is installed.
REAMER_LICENSE_KEY=<key>
Set before importing reamer_py — activates automatically on first import.
python -m reamer_py activate <key>
activate <key> to license this machine, deactivate to release the seat before moving to a new one, license_status to check what's currently active.
A real engineer replies, not a sales bot.
Evaluating Reamer for a desk, not sure it fits your data, or want team licensing options.
Send emailLicense activation, device transfers, refunds, technical questions, or lost keys.
Send email