量化回测框架怎么选:九个开源框架对比
选型篇 — 先看你做什么市场、要不要接实盘,再看框架
先说结论:没有“最好的回测框架”。入门学习常用 backtrader,但它的仓库已经很久没更新;做国内期货或想接实盘看 vnpy;想批量试参数看 vectorbt;做机器学习选股看 Qlib。选之前先确认两件事:许可证允不允许你的用途,项目现在还有没有人维护。
本站与下面这些开源项目没有合作关系。表里的 star 数和维护状态来自 GitHub,每天自动更新;其余内容按各项目 README 和许可证写。
01 · 一张表看区别
| 工具 | 它是什么 | 回测方式与范围 | 许可 | GitHub star | 维护状态 |
|---|---|---|---|---|---|
| backtrader | 老牌事件驱动框架,入门教程常用它做示例;仓库已长期没有更新 | 事件驱动;回测与实盘 | GPL-3.0 | 23.5k | 超过半年未更新 |
| vnpy | 基于 Python 的量化交易平台,整合多种交易接口,4.0 起带多因子机器学习模块 | 事件驱动;回测与实盘,含期货 CTA | MIT | 45.8k | 最后提交 7 天前 |
| rqalpha | 米筐开源的回测与模拟交易框架,可用 Mod 机制扩展 | 事件驱动;回测与实盘模拟 | 仅限非商业使用 | 6.8k | 今日有提交 |
| Qlib | 微软开源的 AI 量化投资平台,重点在数据处理和模型训练,回测是其中一环 | 面向机器学习研究流程 | MIT | 49.3k | 最后提交 5 天前 |
| vectorbt | 把大量参数组合打包成数组一起算,适合批量试参数;部分功能在付费 PRO 版 | 向量化;回测与策略研究 | Apache 2.0 附 Commons Clause | 9.4k | 最后提交 4 天前 |
| zipline-reloaded | Quantopian 的 zipline 停更后,由社区继续维护的版本 | 事件驱动;回测 | Apache-2.0 | 2k | 今日有提交 |
| nautilus_trader | Rust 内核、Python 写策略,回测和实盘共用同一套代码 | 事件驱动;回测与实盘 | LGPL-3.0 | 29.9k | 今日有提交 |
| Lean | QuantConnect 的开源引擎,模块化设计,可用 Python 或 C# 写策略 | 事件驱动;回测与实盘 | Apache-2.0 | 22k | 今日有提交 |
| PyBroker | 面向机器学习策略的回测框架 | 规则与模型驱动;回测 | Apache 2.0 附 Commons Clause | 3.6k | 最后提交 8 天前 |
许可证于 2026-10-11 至 10-14 对照各项目仓库核对,之后可能变化。
02 · 先弄懂三个区别
- 事件驱动和向量化:事件驱动是一根 K 线一根 K 线地往前走,像真实交易一样逐笔处理订单,写起来直观,跑得慢。向量化是把整段行情当成表格一次算完,速度快很多,适合一次试几千组参数,但复杂的下单逻辑不好表达。
- 只回测,还是回测加实盘:有的框架只负责验证策略;有的能直接连券商或交易所下单。如果以后要上实盘,选能共用一套代码的,省得重写一遍。
- 本地框架和在线平台:本文讲的都是装在自己电脑上的开源框架,数据要自己准备。在线平台是在网页里写策略,数据和算力由平台提供,上手快,但策略和数据都在别人那里。
03 · backtrader:入门首选,但已经没人维护
backtrader 是事件驱动的老牌框架,数据可以来自 CSV、在线数据源或 pandas,也支持通过 Interactive Brokers 等接口做实盘。它出现得早,很多入门教程拿它做示例,本站的回测入门教程用的也是它。
问题在于它的仓库已经长期没有更新(具体看上表“维护状态”一栏)。Python、pandas 这些它依赖的东西一直在变,出了兼容问题只能自己修。拿来学习回测的基本概念没问题;新项目要长期用,建议选仍在维护的框架。许可是 GPL-3.0。想动手试,看 backtrader 回测入门。
04 · 做国内市场:vnpy 和 RQAlpha
vnpy(VeighNa)自称是基于 Python 的开源量化交易系统开发框架,整合了多种交易接口,README 称用户里有私募、券商和期货公司。期货 CTA 是它的主要场景之一,4.0 版新增了面向多因子机器学习策略的 vnpy.alpha 模块。许可是 MIT,可以商用。它更像一整套交易平台,只想快速验证一个想法会觉得偏重。
RQAlpha 是米筐(Ricequant)开源的框架,覆盖回测和实盘模拟,可以通过 Mod 机制扩展,写好的策略也能放到米筐的在线平台上跑。要特别注意许可:它的 README 写明仅限非商业使用,商用需要联系官方。个人学习研究没问题,用在公司业务里之前要先问清楚。
05 · 做机器学习:Qlib
Qlib 是微软开源的 AI 量化投资平台。它的重点不在“回测”本身,而在前面的环节:数据处理、特征、模型训练,回测是整条流程里的一步。如果你的策略是“用模型给股票打分再选股”,它比通用回测框架顺手;如果只是想测一个均线策略,用它就绕远了。许可是 MIT。
06 · 批量试参数:vectorbt
vectorbt 走向量化路线:不是一个策略一个策略地跑,而是把大量参数组合打包成 NumPy 数组一起算,用 Numba 加速。适合做参数扫描和研究。
用之前要知道两点:许可是 Apache 2.0 附带 Commons Clause,可以免费用,但不能把主要功能就是它的产品拿去卖;另外有一部分功能放在单独收费的 PRO 版里。
07 · 其余四个
- zipline-reloaded:原版 zipline 出自 Quantopian,公司关闭后仓库不再更新;zipline-reloaded 是社区接手维护的版本。写法和 backtrader 接近,定位是回测库,实盘要另想办法。许可 Apache-2.0。
- NautilusTrader:Rust 内核加 Python 策略层,主打回测和实盘跑同一套代码。它的概念更接近生产交易系统,在我们看来是这九个里上手门槛最高的。许可 LGPL-3.0。
- Lean:QuantConnect 的开源引擎,事件驱动、模块化设计,支持多个市场的回测和实盘,可以用 Python 或 C# 写策略。官方提供命令行工具,用 Docker 在本地跑回测、参数优化和实盘。许可 Apache-2.0。
- PyBroker:面向机器学习策略的回测框架。许可和 vectorbt 一样是 Apache 2.0 附 Commons Clause。
08 · 怎么选
- 第一次学回测:backtrader,跟着教程跑通一个策略,理解概念后再换。
- 做国内期货,或者想接实盘:vnpy。
- 个人研究 A 股策略:vnpy 或 RQAlpha(后者仅限非商业使用),数据可以用 AKShare。
- 用机器学习选股:Qlib。
- 想一次试很多组参数:vectorbt。
- 做美股,喜欢经典写法:zipline-reloaded;要回测实盘一体就看 Lean 或 NautilusTrader。
- 要用在公司或商业产品里:先看许可一栏。MIT 和 Apache-2.0 限制最少;GPL、LGPL、带 Commons Clause 的和“仅限非商业”的,都要先弄清楚条款。
不管用哪个,回测结果都只是参考:没算手续费和滑点、用了未来数据、参数调得太贴合历史,都会让回测比实盘好看很多。回测通过后先跑模拟盘,方法见 模拟盘对接。
更多框架见 回测/交易框架分类;整条流程上还需要哪些工具,见 量化工具有哪些。
本文不构成任何投资建议,也不是法律意见。各项目的功能与许可以其官方说明为准;回测结果不代表未来收益。