AlgoQuant
Studio + Engine
AQS Cloud
面向算法交易的模块化 Rust 框架。源码可用 · Rust

AlgoQuant Engine

构建可复用的交易组件,用于回测与实盘执行,同时掌控自己的数据、经纪商接入和基础设施。

归 AlgoQuantStudio 所有。采用 PolyForm Shield License 1.0.0 ,可用于不与本产品竞争的用途,包括你自己的研究、回测和实时交易。使用 AQE 提供竞争产品,须另行获得书面许可。

模块化设计复用模型、处理流水线、生命周期逻辑、经纪商适配器和数据源。
本地运行,代码私有在你掌控的基础设施上运行,不强制依赖云端。
独立运行或连接使用直接使用 AQE,或配合 AQS 进行可视化控制和监控。
执行与编排层

支撑完整量化交易系统的运行时。

AQE 负责从接收市场事件到产生可复核交易结果的整个流程。策略代码专注于决策,由引擎协调状态、执行、持久化及相关集成。

01

协调策略状态

按可预测的顺序执行生命周期钩子、标的池选择、市场事件、Alpha 模型、信号处理流水线和收尾逻辑。

02

处理交易决策

用带状态的交易信号表达交易意图,并支持仓位计算、验证、转换、提交、成交、拒绝、管理和平仓。

03

让集成保持可替换

通过引擎 trait 隔离交易执行和市场数据接口,更换经纪商或数据提供商时,无需重写策略。

04

管理长时间运行的会话

持久化存储账户、净值、事件、指标和交易信号状态,以便在终端监控,或按需同步到 AQS。

交互式架构

了解市场数据如何驱动决策执行,并让全过程可观测。

探索各个模块,跟随动画了解执行路径,选择节点查看它在运行时中的职责。

交互式 AQ Engine 架构

选择模块或交易信号状态,了解其作用。可平移或缩放图表进行探索。

所选模块策略

协调生命周期钩子、市场事件、状态、模型及已配置的运行时组件。

引擎基准测试

用数据衡量性能。

Rust 将策略逻辑编译为原生代码,并提供显式资源管理和严格的编译期检查。AQE 在此基础上结合 Polars 的数据分析能力,为交易决策提供统一框架。

AQE 0.2.2 · Apple M5 Max · 5 组配对运行

2026年11月2日
吞吐量:越高越快
优化前优化后
指标+4.7%
优化前26.97 M 根 K 线/秒
优化后28.24 M 根 K 线/秒
信号处理器+18%
优化前8.33 M 处理阶段/秒
优化后9.83 M 处理阶段/秒
PaperBroker+315.2%
优化前168.9 k 笔订单/秒
优化后701.2 k 笔订单/秒

每组对比分别使用从零开始的独立刻度。

相对于优化前候选版本的吞吐量提升。仅为本地合成工作负载,并非端到端交易性能。

这些带日期的测量结果仅反映所记录的源码快照,不代表对后续发布版本的验证,也不衡量实盘交易中的经纪商延迟。

测试方法与详细结果

在同一台 Apple M5 Max 上进行五组配对原生运行,交替执行优化前后的二进制文件。每项工作负载每次运行预热 3 次并采样 15 次;公布各版本最慢的中位数及同次运行的 p95。

发布构建:AQE 使用 opt-level=3、LTO 和一个代码生成单元。使用确定性的内存工作负载,计时不包含初始化、数据生成、网络、数据库、界面或 MT5 I/O。吞吐量为操作次数除以耗时中位数。这不代表真实经纪商延迟,也不是完整回测的测量结果。

与优化前的 0.2.2 候选版本进行受控比较,而非与已发布版本比较。工作负载、计时区域、编译器和依赖版本均未改变。

验证:1,081 项测试通过;完整生命周期检查保持了完全相同的经济结果。

指标

250,000 根 K 线:SMA、EMA、RSI 和 ATR

中位数 / p95
毫秒
优化前
9.27 / 11.22
优化后
8.85 / 9.63
吞吐量
28,236,754 根 K 线/秒

信号处理器

20,000 个交易信号:入场、有效期与收益风险比

中位数 / p95
毫秒
优化前
7.2 / 8.86
优化后
6.11 / 6.33
吞吐量
9,828,010 处理阶段/秒

PaperBroker

在同一根合成 K 线上完成 5,000 次提交与成交

中位数 / p95
毫秒
优化前
29.6 / 30.89
优化后
7.13 / 10.05
吞吐量
701,213 笔订单/秒
主机
Apple M5 Max · Mac17,6 · 18 CPU · 48 GiB
基准
优化前的 0.2.2 候选版本 · 相同主机和工具链
实测快照
AQE 0.2.2 @ 8382531 · rustc 1.98.1 (48a229cea 2026-09-01) · cargo 1.98.1 (797e8a9bc 2026-08-05)
源码状态
包含本地更改;源码哈希值已记录在 JSON 报告中。
峰值内存
完整测试套件,RSS:116.8 MiB → 120.8 MiB

峰值内存未改善:受控比较中,整套测试的最大 RSS 高出 3.5%。离线实时生命周期的中位数基本不变。

历史参考:9 月的 0.2.0 记录为每秒 400,981 个 PaperBroker 订单;此候选版本为 701,213 个。

复现已记录的源码快照cargo run --release -p aq-engine --example engine_performance --features runtime --locked

基准 JSON实测 JSON 报告受控比较 JSON验证报告9 月历史 JSON运行 1: 优化前 / 优化后运行 2: 优化前 / 优化后运行 3: 优化前 / 优化后运行 4: 优化前 / 优化后运行 5: 优化前 / 优化后

aq-engine/src/core/pipeline/mod.rs当前 trait
pub trait InsightPipe {
    fn version(&self) -> &str;

    fn run(
        &mut self,
        ctx: &mut dyn StrategyContext,
        insight: &mut Insight,
    ) -> InsightPipeResult;
}
可复用组件

交易逻辑只需实现一次,即可在多个策略中组合复用。

信号处理器围绕每次交易决策,按当前状态执行处理。你可以组合职责明确的组件,而不必把仓位计算、时间筛选、止损、提交和持仓管理全部写进同一个策略方法体。

复用仓位计算、市价入场、止损、止盈和交易时段处理器。
围绕新建、已提交、已成交、已取消、已拒绝和已平仓的交易信号,组合按状态运行的逻辑。
通过共用的 trait,切换 PaperBroker、MT5、Yahoo Finance 或未来的集成。
examples/hyperparameter.rs确定性参数扫描
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?;
超参数扫描

在代码中定义取值域,由 AQE 按需运行参数组合。

在策略代码旁注册指定类型的离散值或数值范围,再在 Alpha 模型、信号处理器或策略变量中使用同一套带回退值的参数。AQE 只在扫描运行时按需展开组合,为每个种子创建全新状态,并分别持久保存结果。

--hyper-sweep 依次运行每个参数组合。
--hyper-seed <prefix> 运行一个可复现的参数组合。
不传入标志时,仍按常规方式使用硬编码回退值。
回测与实时运行的一致性

执行环境变化时,保持面向策略的工作流程稳定。

AQE 在历史研究和实时会话中使用相同的策略生命周期与组件模型。只需调整经纪商适配器和数据源的组合,无需重新实现策略。

01历史数据Yahoo Finance 或 MT5 K 线
→
02AQ Engine策略、模型、处理器与风险
→
03模拟执行订单、成交与账户状态
→
04实时执行MT5 与会话监控
共享

策略生命周期

启动、标的池选择、初始化、K 线、交易信号、处理流水线和收尾,始终遵循相同的运行时顺序。

可替换

执行与数据

UnifiedBroker 根据所选环境,组合执行适配器和数据源。

可复核

状态与结果

回测结果持久化为 SQLite 文件;实时会话向终端界面或 AQS 提供限定范围内的状态。

不受平台锁定的运行方式

本地运行、接入自有基础设施,并保持策略代码私有。

AQE 是独立运行时,无需依赖 AQS 或远程节点。经纪商和数据提供商通过可扩展的集成接口接入。

策略执行不强制依赖云端。
无需 AQS,也能查看 SQLite 回测结果文件。
终端监控涵盖指标、变量、活跃交易信号、日志和同步状态。
通过实现引擎 trait,可以扩展经纪商、数据源、数据库和内部系统的集成。
AQ Engine 终端界面,展示运行时指标、交易信号、变量、监视项和日志
AQ Engine 终端界面直接在运行中的进程里管理回测和实时会话。
当前技术接口与功能

查看当前已实现的功能。

通过文档和源代码,可以了解当前运行时的接口约定、生命周期、经纪商集成、数据源、交易信号模型和运行状态。

市场数据

Yahoo Finance · MT5

通过可替换的数据源 trait,提供历史 K 线、报价和实时数据。

阅读数据源文档 →
决策模型

交易信号 · 处理流水线

以带状态的结构表达交易意图,提供仓位计算、验证、提交和管理的处理流程。

阅读信号处理流水线文档 →
可视化层

可选连接 AQS

将引擎状态同步到 Studio,以便直观查看并监控实盘运行。

阅读 AQS 文档 →
AlgoQuant Studio 展示一笔盈利且已平仓的 AQ Engine 交易信号AlgoQuant Studio 展示一笔盈利且已平仓的 AQ Engine 交易信号
AQS 中的 AQE 状态Studio 将运行时中的交易信号状态整理为可检查的运行记录。
选择操作界面

直接使用引擎;需要可视化操作环境时,再配合 Studio。

对于构建自定义系统的开发者,AQE 本身即可独立使用。AQS 则围绕运行时,提供节点式策略构建、回测评估、部署控制、实时仪表板和 Insight Flow。

实用信息

开始使用前。

了解目前可用的工作区、运行时和集成功能。

AQS、AQE 和 AQI 分别是什么?

AlgoQuant Studio(AQS)是桌面工作区,AlgoQuant Engine(AQE)负责运行策略,AlgoQuant Insights(AQI)则将已发表的研究与回测及参考资料关联起来。

了解工作流程
不使用 Studio,也能使用 AQE 吗?

可以。AQE 可独立构建,并能运行你自己 Rust 项目中的策略。Studio 和云端同步都是可选的操作方式,并非独立运行所必需。

开始使用引擎
AQE 可以使用 Python 吗?

Python 绑定计划在未来的 AQE 版本中提供,目前尚不可用。AQE 现阶段使用 Rust;后续支持情况及 API 详情将另行公布。

构建 Rust 策略
回测和实盘交易可以复用同一套策略逻辑吗?

AQE 在回测和实盘交易中使用相同的策略生命周期与组件模型。切换环境时,调整经纪商适配器和数据源的组合,无需另行维护一套策略实现。实际成交与执行条件仍取决于经纪商和市场。

了解如何从回测转入实盘运行
可以使用哪些经纪商和数据源?

使用 PaperBroker 进行模拟交易,通过 MetaTrader 5 接入经纪商执行交易,并从 Yahoo Finance 或 MetaTrader 5 获取市场数据。自定义集成需实现经纪商和数据源 trait。具体要求与限制请参阅集成指南。

阅读集成指南
AQE 采用什么许可协议?

AQE 按 PolyForm Shield License 1.0.0 提供源代码,可用于不与本产品竞争的用途,包括你自己的研究、回测和实盘交易。提供竞争产品须另行获得书面许可。

阅读许可协议
掌控运行时

基于可查看、可扩展的系统化交易引擎构建你的系统。

先阅读生命周期文档,运行空白策略,再接入工作流程所需的经纪商适配器、数据源和操作界面。