想用 Python 回测 A 股策略,摆在面前的有两类选择:像 vectorbt 这样「秒级跑完数千组参数」的向量化引擎,和像 RQAlpha 这样「一根 K 线一根 K 线模拟真实撮合」的事件驱动框架。前者快,后者真。RQAlpha 是米筐(Ricequant)开源的 A 股/期货事件驱动回测框架,6.7k Star,最大的特点是用一套 Mod 模块系统把回测引擎拆成了可替换的积木。本文带你跑通它,并讲清楚它和向量化框架到底该怎么选。
一、RQAlpha 是什么:米筐开源的「事件驱动」回测框架
RQAlpha 是米筐科技开源的一个 Python 回测与交易框架。它要解决的是 A 股量化从业者的完整工作流:从数据获取、策略开发、回测、模拟交易到实盘和数据分析。
和 vectorbt 那种「把 K 线打包成矩阵一次算完」的向量化思路不同,RQAlpha 是事件驱动的——它模拟真实的交易过程:每天开盘、按时间顺序处理 K 线、撮合成交、计算持仓和手续费。这让它的回测结果更贴近真实交易,代价是速度慢。
一句话定位:米筐开源的 A 股/期货事件驱动回测框架,靠 Mod 模块系统实现无限扩展。
速览表:
| 维度 | 说明 |
|---|---|
| 项目名 | RQAlpha(ricequant/rqalpha) |
| 语言/依赖 | Python,Cython + bcolz + TA-Lib |
| 安装 | pip install rqalpha |
| 定位 | A 股/期货事件驱动回测框架 |
| 核心能力 | 回测、模拟、实盘、Mod 模块扩展 |
| 上手难度 | 中(需 Python + TA-Lib 编译链) |
二、核心能力拆解:Mod 系统,把回测引擎拆成积木
RQAlpha 最独特的设计是 Mod Hook 模块系统。它把整个回测引擎拆成一个个独立的 Mod(模块),每个 Mod 负责一件事,你可以单独启用、禁用、甚至替换它。
# 查看/启用/禁用 Mod
rqalpha mod list
rqalpha mod enable sys_risk
rqalpha mod disable sys_transaction_cost
内置的关键 Mod 有七个:

sys_accounts:股票/期货的下单 API 和持仓模型——你策略里order_shares、order_target_percent这些函数都来自它。sys_simulation:模拟撮合引擎 + 回测事件源,是整个回测的「心脏」——按时间推进、撮合订单。sys_analyser:记录每日订单、交易、组合、持仓,计算收益/回撤/夏普等风险指标,输出 CSV 和图表。sys_risk:下单前的风控校验(如资金不足、涨跌停限制)。sys_transaction_cost:股票/期货的印花税、佣金、滑点计算。sys_scheduler:定时器,在指定时间间隔执行逻辑(如每周调仓)。sys_progress:控制台回测进度条。
这个设计的意义在于:你可以替换任何一个子系统。比如不满意默认的撮合引擎,就自己写一个 Mod 替换 sys_simulation;想做自定义风控,就扩展 sys_risk。这比 backtrader 那种「继承 Strategy 类」的扩展方式更彻底——RQAlpha 连撮合引擎都能换。
一句话记住:RQAlpha 用 Mod 把回测引擎解耦成可替换的积木——撮合、风控、手续费、分析,每个都是独立模块。
三、事件驱动 vs 向量化:RQAlpha 和 vectorbt 怎么选
这是量化新手最容易纠结的对比。两者都是回测框架,但思路完全不同。
| 对比维度 | RQAlpha(事件驱动) | vectorbt(向量化) |
|---|---|---|
| 回测范式 | 事件驱动,逐 K 线模拟撮合 | 向量化,矩阵并行 |
| 回测真实度 | 高,贴近实盘 | 低,信号驱动 |
| 参数扫描速度 | 慢,顺序跑 | 快,秒级数千组 |
| 适用市场 | A 股/期货(本土化强) | 通用(加密货币/美股) |
| 扩展方式 | Mod Hook,可换子系统 | 函数式,灵活 |
| 学习曲线 | 中 | 陡(要懂 NumPy) |
结论:你要「贴近实盘的 A 股回测 + 可替换撮合/风控的框架」,选 RQAlpha;你要「海量扫参数找信号 + 快速验证想法」,选 vectorbt。两者甚至可以配合——用 vectorbt 粗筛参数,再用 RQAlpha 做精细的 A 股事件驱动回测。
RQAlpha 的劣势也明确:事件驱动注定慢(大量参数扫描时尤其明显),且它的核心价值(A 股本土化、Mod 可替换)对只做加密货币或美股的人吸引力有限。
四、部署方案:两条路都能跑通
4.1 准备工作
- Python 3.x(强烈建议 conda 虚拟环境)。
- 依赖:Cython、bcolz、TA-Lib(Mac 需先
brew install ta-lib)。
4.2 方式一:pip 安装(快速上手)
# 建议 conda 虚拟环境
conda create -n rqalpha python=3.8
conda activate rqalpha
# 装依赖(TA-Lib 编译链)
conda install cython bcolz
# Mac 用户先:brew install ta-lib
pip install TA-Lib
# 装 RQAlpha
pip install rqalpha
# 验证
rqalpha version
4.3 方式二:获取回测数据 + 跑通示例
# 下载免费 A 股/期货日线数据
rqalpha update-bundle
# 生成示例策略
rqalpha examples -d ./
# 跑一个双均线回测
rqalpha run -f your_strategy.py -s 2016-01-01 -e 2016-12-31 \
--account stock 100000 --benchmark 000300.XSHG -o result.pkl
4.4 方式三:EasyClaw 一键部署
如果你不想折腾 TA-Lib 编译链(Mac 上 brew install ta-lib、Windows 上找预编译包,都挺烦),可以用 EasyClaw 直接搞定。先下载桌面端,然后在对话框输入:
帮我部署 RQAlpha,一个 A 股量化回测框架,需要 Python 环境和 TA-Lib、bcolz、Cython 依赖
EasyClaw 会自动完成环境配置、依赖安装和项目初始化。这种「自然语言说需求、自动装环境」的方式,正是 EasyClaw 的核心价值——把「装 TA-Lib + bcolz + 配环境」的数小时,压缩成一句话。
4.5 验证 + Bing 三问
部署成功后,用户最常搜的三个问题: 1. RQAlpha 怎么装:pip install rqalpha,需先装 TA-Lib/bcolz/Cython。 2. RQAlpha 和 vectorbt 哪个好:A 股事件驱动选 RQAlpha,海量扫参数选 vectorbt。 3. RQAlpha 数据从哪来:rqalpha update-bundle 下载免费日线,或用 RQData 本地化服务。
五、常见问题与踩坑地图
5.1 TA-Lib 编译链:最劝退的一步
RQAlpha 依赖 TA-Lib,而 TA-Lib 是个 C 库,安装是最大的坑:
- Mac:先
brew install ta-lib,再pip install TA-Lib,否则编译报错。 - Windows:没有官方 wheel 时,需要找预编译的
.whl(对应 Python 版本和位数),直接pip install ta-lib大概率失败。 - bcolz:老牌列式存储库,部分新 Python 版本可能有兼容问题,建议 conda 装。
5.2 数据:update-bundle 或 RQData
回测需要历史数据,两条路:
- 免费日线:
rqalpha update-bundle下载股票/期货日线数据包,存在~/.rqalpha。 - RQData 本地化服务:
import rqdatac提供更全的本地数据(基本面、财务报表、行业分类、资金流、风格因子等),但需要米筐授权。
5.3 许可证:仅限非商业使用
RQAlpha 的许可证明确写「仅限非商业使用,商用需联系 public@ricequant.com」。这对个人学习、研究完全够用,但如果你想做商用产品(比如打包成付费的量化 SaaS),必须先和米筐谈授权。
一句话:RQAlpha 是「本土化强、Mod 可扩展」的 A 股回测框架,但要为 TA-Lib 编译链、数据下载、非商业许可证这三个前提做好准备。
六、总结:谁该用 RQAlpha
RQAlpha 的价值在于用事件驱动贴近实盘 + 用 Mod 系统实现深度扩展——它的 A 股本土化(涨跌停、T+1、印花税都是内置的)、可替换的撮合/风控模块,是 vectorbt 这类通用向量化框架给不了的。它适合做 A 股/期货策略回测、需要自定义撮合/风控的量化研究者。
但也要认清边界:事件驱动注定慢,大量参数扫描不如向量化;TA-Lib 编译链劝退新手;非商业许可证限制了商用;数据需要额外下载。
如果你也想不折腾环境就上手 A 股回测,可以用 EasyClaw 把 RQAlpha 一键部署起来,把时间花在写策略上,而不是花在装 TA-Lib 上。
延伸阅读: - RQAlpha 官方文档:https://www.ricequant.com/doc/rqalpha/ - RQAlpha GitHub:https://github.com/ricequant/rqalpha - vectorbt 官方:https://vectorbt.dev
你用过 RQAlpha 的 Mod 系统自己扩展过撮合或风控吗?和 vectorbt 的向量化回测相比,你更倾向哪种?欢迎在评论区聊聊。
风险声明:本文及 RQAlpha 均为研究与学习用途,不构成任何投资建议。回测结果基于历史数据,不代表未来表现。商用请务必遵守 RQAlpha 的许可证约定并联系米筐。
AI 辅助创作声明:本文由 AI 辅助整理撰写,涉及项目事实已对照官方 README 与文档核验。
2

被折叠的 条评论
为什么被折叠?



