














核心价值:Rust 内核 + Python 生态,把 A 股回测速度从 Backtrader 的基线拉到 10× 量级
把事件驱动、机器学习、生产级风控塞进同一个量化研究框架。

⚠️ 本文仅作技术交流,不构成投资建议。股市有风险,投资需谨慎。
akquant 是一款专为 量化投研 (Quantitative Research) 打造的高性能混合架构引擎,核心用 Rust 编写,通过 PyO3 暴露给 Python。截至 2026-07-26,已累计 887 commits,GitHub 1,886 Stars、248 Forks,MIT 开源,PyPI 一行安装(pip install akquant)。

它的核心定位是:用 Rust 铸造极速撮合内核,用 Python 链接数据与 AI 生态,让"事件驱动 + 机器学习 + 生产级风控"在同一个框架下完成。
核心定位:把"研究想法 → 回测验证 → 风控拦截 → 绩效分析"塞进一条 Pipeline,全部用 Python 写策略,底层 Rust 跑。
akquant 采用 Rust + Python 混合架构,三层层层分明:

关键设计:RiskManager 在 Rust 层做拦截,而不是 Python 层。这意味着即便 Python 策略代码存在漏洞,违规订单也根本不会进到撮合引擎。

# PyPI 一键安装(无需 Rust 环境)
pip install akquant
# 或从源码编译(推荐,启用所有扩展)
git clone https://github.com/akfamily/akquant.git
cd akquant
uv sync
uv run maturin develop
akquant 推荐两种数据源:
import akshare as ak
# 方式 A:使用 akshare 获取 A 股数据
df = ak.stock_zh_a_daily(
symbol="sh600000", # 浦发银行
start_date="20250101",
end_date="20260701",
)
# 方式 B:自定义因子(任何数值列都会被识别为因子)
df["momentum"] = df["close"] / df["open"] # 动量因子
df["volatility"] = df["high"] - df["low"] # 波动率因子
df["sentiment_score"] = compute_sentiment(df) # 情绪因子
from akquant import Strategy, run_backtest
class MyStrategy(Strategy):
def on_bar(self, bar):
# 通过 bar.extra 访问所有自定义因子
mom = bar.extra.get("momentum", 0.0)
vol = bar.extra.get("volatility", 0.0)
score = bar.extra.get("sentiment_score", 0.0)
position = self.get_position(bar.symbol)
# 综合三因子决策
if position == 0 and mom > 1.02 and score > 0.8:
self.buy(bar.symbol, 100)
elif position > 0 and (vol > 0.05 or score < 0.3):
self.sell(bar.symbol, 100)
注意:bar.extra 是一个 dict,可以传任意数量的数值字段,akquant 会自动识别并在 Rust 侧打包。
result = run_backtest(
strategy=MyStrategy,
data=df,
symbols="sh600000",
initial_cash=500_000.0,
commission_rate=0.0003, # 万三佣金
)
# 查看绩效
print(f"Total Return: {result.metrics.total_return_pct:.2f}%")
print(f"Sharpe Ratio: {result.metrics.sharpe_ratio:.2f}")
print(f"Max Drawdown: {result.metrics.max_drawdown_pct:.2f}%")
# 一行生成交互式 HTML 报告
result.viz.report(
show=True, # 自动在浏览器中打开
compact_currency=True, # 金额按 K/M/B 紧凑显示
)

这就是 akquant 真实仪表盘:资金曲线、回撤分析、月度热力图、归因分解、年度收益,一张图全说清楚。

对比 1:核心架构
对比 2:原生 ML 支持
对比 3:A 股适配
对比 4:文档质量
akquant 的 Polars Alpha101 因子引擎是核心卖点。你可以直接写表达式:
from akquant import polars_factor as pf
# Alpha101 风格因子(一行搞定)
alpha_001 = pf.rank(pf.ts_mean(pf.close, 5)) # 5 日均价的横截面排名
alpha_005 = pf.ts_rank(pf.volume, 10) # 10 日成交量的时间序列排名
# 组合成综合选股信号
score = alpha_001 * 0.6 + alpha_005 * 0.4

整个流程走 5 步:数据准备 → 因子表达式 → 回测引擎 → 风控拦截 → 绩效分析,全部在同一个 Python 脚本里完成。
akquant 把"训练-预测"完全嵌入事件循环。无需手写 scheduler:
class MLStrategy(Strategy):
def on_init(self):
# 配置滚动窗口:每 60 个 bar 重新训练一次
self.set_rolling_window(
train_window=240, # 用 240 根 bar 训练
retrain_every=60, # 每 60 根 bar 重训
)
self.model = None
def on_train_signal(self, history):
# 引擎会在合适时机回调这里
X = history[["momentum", "volatility", "sentiment_score"]]
y = history["future_return"]
self.model = SklearnAdapter(RandomForestRegressor())
self.model.fit(X, y)
def on_bar(self, bar):
if self.model is None:
return
pred = self.model.predict(bar.extra)
if pred > 0.02:
self.buy(bar.symbol, 100)
优势:训练和回测是同一个事件循环,避免了"线下训练 → 线上部署"的一致性问题。
akquant 内置多进程网格搜索框架,支持策略参数的高效并行优化:
from akquant.optim import GridSearch
gs = GridSearch(
strategy=MyStrategy,
data=df,
param_grid={
"fast_window": [5, 10, 20],
"slow_window": [30, 60, 120],
"threshold": [0.01, 0.02, 0.05],
},
metric="sharpe_ratio",
n_jobs=-1, # 用满所有 CPU
)
results = gs.run()
print(results.best_params_)

数据来源:akquant 官方 benchmark(基于 50 标的 × 5000 根 bar 回测,CPU i7-12700H)
PyPI 一键安装(无需 Rust 环境):
pip install akquant
可选依赖:
版本历史:
开源协议: MIT
akquant 不是又一个"Backtrader 替代品",它的差异化在于:
对量化研究员的实际价值:把"研究想法 → 代码 → 回测 → 风控 → 分析"五个环节合并到同一个 Python 脚本里,不需要再拼装 Backtrader + 自写 T+1 + jupyter 写报告。
推荐指数: ⭐⭐⭐⭐⭐(满分 5 星)
适合人群: A 股量化研究员、私募/资管 IT、量化教学、AI 量化 PhD 学生
立即体验: akquant 官方文档
GitHub 仓库: akfamily/akquant
数据截至 2026-07-29,最新信息请以官网为准。
此内容由惯性聚合(RSS阅读器)自动聚合整理,仅供阅读参考。 原文来自 — 版权归原作者所有。