Anyone can prompt an AI into a working backtester over a weekend. Building one you can actually trust is a different problem.
A backtest should do more than produce an equity curve. It should explain how signals became positions, when information became tradable, which execution and cost assumptions were applied, and whether the results survive out-of-sample validation. Otherwise, it is little more than a chart.
Today we are open-sourcing QuantJourney Backtester - a fast, Python-native research engine built to turn investment ideas into reproducible portfolio research, released under Apache 2.0.
Get it via PIP or from GitHub:
pip install quantjourney-btgit clone https://github.com/QuantJourneyOrg/quantjourney-bt.git
Two research paths
Vectorized weight mode is built for fast portfolio research: factor models, ranking strategies, rotation, long/short portfolios, volatility targeting, risk overlays and parameter exploration.
Order mode is built for execution-sensitive strategies. Orders become fills, fills update positions and cash, slippage and transaction costs are applied explicitly, and portfolio NAV is reconstructed from the resulting state. You inspect implementation behaviour, not just theoretical signal returns.
50 runnable examples
The repository ships with 25 weight-based strategies, 20 order-based strategies and 5 walk-forward and optimization workflows - covering momentum, mean reversion, long/short, risk parity, volatility targeting, intraday, FX, futures, order types and out-of-sample validation. Each one can be run, inspected, modified and used to generate plots, dashboards and research reports.
What’s inside
Portfolio and order-based backtesting, portfolio accounting and ledger logic, slippage and transaction-cost models, pre-trade risk controls, 80+ research metrics, walk-forward validation and optimization, automated tests, and plots, artifacts and static reports.
Data
Everything runs locally - your strategies, calculations and research outputs never leave your machine. No account or API key is needed to install the package, use your own data or run the bundled examples.
QuantJourney additionally provides an optional managed-data layer through the QJ API. It currently serves prepared Yahoo Finance data; support for your own FMP and EOD keys is coming next, followed by point-in-time universes and fundamentals.
↪ We are initially opening managed-data access to 20 beta users only. Once the workflows are stable, we will expand access - if you want to be among the first, request access below.
A note on beta
This is an active beta project, not a claim that every backtesting problem has been solved. There may still be bugs, incomplete documentation and unsupported edge cases - some things will break, and some workflows are still being hardened.
Please tell us when something breaks. Every report helps us improve the engine.
Our long-term objective is an institutional-grade research engine covering the full path from investment hypothesis, through validation and portfolio construction, to live execution. This release is the first public step.
↪ Backtester: https://backtester.quantjourney.cloud
↪ Request QJ data access: https://backtester.quantjourney.cloud/join-beta
Cheers,
Jakub


will definitely give it a go
The equity-curve trap is real, but so is a data-quality one that bites systematic folks: point-in-time integrity. If your backtest silently uses data that wasn't knowable at the decision moment, the curve lies confidently. Curious whether your framework enforces as-of joins or leaves that to the user's discipline.
John