Coordinate strategy state
Run lifecycle hooks, universe selection, market events, alpha models, insight pipelines, and teardown in a predictable order.
Build reusable trading components and run them across backtesting and live execution, with control over your data, brokers and infrastructure.
Owned by AlgoQuantStudio. Available under the PolyForm Shield License 1.0.0 for non-competing uses, including your own research, backtesting and live trading. Using AQE to provide a competing product requires separate written permission.
AQE owns the path from incoming market events to reviewable trading outcomes. Strategy code stays focused on decisions while the engine coordinates state, execution, persistence, and integrations around it.
Run lifecycle hooks, universe selection, market events, alpha models, insight pipelines, and teardown in a predictable order.
Represent intent as stateful insights that can be sized, validated, transformed, submitted, filled, rejected, managed, and closed.
Put execution and market data behind engine traits so broker or provider changes do not force a strategy rewrite.
Persist account, equity, event, metric and insight state for terminal monitoring or optional synchronisation into AQS.
Explore the modules, follow the animated execution path, and select a node to inspect its responsibility in the runtime.
Coordinate lifecycle hooks, market events, state, models, and configured runtime components.
Rust compiles strategy logic to native code, with explicit resource management and strong compile-time checks. AQE combines that foundation with Polars for data analysis and a consistent framework for trading decisions.
AQE 0.2.2 · Apple M5 Max · 5 paired runs
2 November 2026Independent, zero-based scale for each pair.
Throughput gains versus the pre-optimisation candidate. Synthetic local workloads; not end-to-end trading performance.
These dated measurements describe the recorded source snapshot, not verification of a later release. They do not measure live broker latency.
Five paired native runs on the same Apple M5 Max, alternating the pre-optimisation and optimised binaries. Each workload uses 3 warm-ups and 15 samples per run; we publish each variant's slowest median and the p95 from that same run.
Release build: AQE opt-level=3, LTO and one code generation unit. Deterministic in-memory workloads exclude setup, data generation, network, database, UI and MT5 I/O from timed regions. Throughput is operations divided by median duration. This does not measure real broker latency or a complete backtest.
Controlled comparison against the pre-optimisation 0.2.2 candidate, not a released version. Workloads, timed regions, compiler and dependency versions were unchanged.
Validation: 1,081 tests passed; full lifecycle checks preserved identical economic outcomes.
250,000 bars: SMA, EMA, RSI and ATR
20,000 insights: entry, TTL and reward/risk
5,000 submissions and fills on one synthetic bar
Peak memory did not improve: maximum suite RSS was 3.5% higher in the controlled comparison. Offline live lifecycle median was effectively unchanged.
Historical reference: September 0.2.0 recorded 400,981 PaperBroker orders/s; this candidate recorded 701,213.
cargo run --release -p aq-engine --example engine_performance --features runtime --lockedBaseline JSONMeasured JSON reportControlled comparison JSONValidation reportSeptember historical JSONRun 1: Pre-optimisation / OptimisedRun 2: Pre-optimisation / OptimisedRun 3: Pre-optimisation / OptimisedRun 4: Pre-optimisation / OptimisedRun 5: Pre-optimisation / Optimised
pub trait InsightPipe {
fn version(&self) -> &str;
fn run(
&mut self,
ctx: &mut dyn StrategyContext,
insight: &mut Insight,
) -> InsightPipeResult;
}Insight pipes are state-aware processors around every trading decision. Combine focused components instead of embedding sizing, time filters, stops, submissions, and position management into one strategy body.
let mut hyperparameters = HyperParameterConfig::new();
hyperparameters
.set_sweep_id("ema-crossover-v1")
.add_hyper_parameter(
HyperParameter::new("atr_period", 14).values([10, 14, 20]),
)?
.add_hyper_parameter(
HyperParameter::new("ema_period", 21).range(10.0, 30.0, 5.0),
)?;
let mut state = build_state(timeframe.clone());
state.set_hyper_parameter_config(hyperparameters);
state.run_backtest(start, end, timeframe).await?;Register typed discrete values or numeric ranges beside your strategy, then use the same fallback-backed value in alpha models, insight pipes, or strategy variables. AQE expands combinations only while a sweep runs, creates a fresh state for every seed, and persists each result independently.
--hyper-sweep runs every combination sequentially.--hyper-seed <prefix> runs one reproducible combination.AQE uses the same strategy lifecycle and component model across historical research and live sessions. The broker and datafeed composition changes; the strategy does not need a second implementation.
Startup, universe, initialisation, bars, insights, pipelines and teardown retain the same runtime order.
UnifiedBroker composes the execution provider and datafeed for the selected environment.
Backtests persist SQLite results; live sessions expose scoped state for the TUI or AQS.
AQE is a standalone runtime. AQS is optional, remote nodes are optional, and broker or data providers sit behind integration boundaries you can extend.

The documentation and source expose the current runtime contracts, lifecycle, broker integrations, datafeeds, insight model, and operational state.
Historical simulation and live MetaTrader 5 order routing behind broker traits.
Read broker docs →Historical bars, quotes, and live data through replaceable datafeed traits.
Read datafeed docs →Stateful trading intent with processing paths for sizing, validation, submission, and management.
Read pipeline docs →Synchronise engine state into Studio for visual inspection and live operations.
Read AQS docs →

AQE remains useful on its own for developers building custom systems. AQS adds node-based composition, backtest review, deployment controls, live dashboards, and Insight Flow around the runtime.
The workspace, the runtime and the integrations you can use today.
AlgoQuant Studio (AQS) is the desktop workspace. AlgoQuant Engine (AQE) runs your strategies. AlgoQuant Insights (AQI) connects published research with backtests and references.
Explore the workflowYes. AQE is independently buildable and can run strategies from your own Rust project. Studio and cloud synchronisation are optional operating surfaces, not requirements for standalone execution.
Get started with the enginePython bindings are planned for a future AQE release. AQE currently uses Rust; availability and API details will be announced separately.
Build a Rust strategyAQE uses the same strategy lifecycle and component model in both environments. Change the broker and datafeed composition rather than maintaining a second strategy implementation. Real fills and execution conditions still depend on your broker and market.
Read about backtest-to-live operationUse PaperBroker for simulation, MetaTrader 5 for broker execution, and Yahoo Finance or MetaTrader 5 for market data. Custom integrations implement the broker and datafeed traits. Check the integration guides for requirements and limitations.
Read the integration guidesAQE is source-available under the PolyForm Shield License 1.0.0 for non-competing uses, including your own research, backtesting and live trading. Providing a competing product requires separate written permission.
Read the licenceStart with the lifecycle documentation, run the blank strategy, then connect the broker, datafeed, and operating surface your workflow requires.
We use essential cookies and storage for sign-in, account security, colour theme preferences, this notice, and required PostHog internal usage, session quality, and reliability metrics. We do not use advertising cookies.