把数据准备好这件事交出去
自建回测最先要解决的环节是数据:清洗、复权、停牌、交易日历。RQAlpha 用 download-bundle 直接给出可用的 A 股日线数据包(含股票、常用指数、场内基金、期货),每月月初更新。
RQAlpha · 米筐科技开源的 Python 算法交易与回测框架
RQAlpha 把「数据获取、策略编写、回测撮合、模拟与实盘接入、结果分析」串成一条命令行工作流:pip install rqalpha 装框架,rqalpha download-bundle 取免费 A 股日线数据,rqalpha run -f 策略.py 出结果。RQAlpha 的扩展性是另一个重点——7 个系统 Mod 加上 Mod Hook 接口,撮合、风控、税费、分析输出都能换。
仓库页面显示约 6.8k Star、1.8k Fork、3,761 次提交;数字随社区变化,采集日期为 2026-09-11。
查看源码
RQAlpha 不是「又一个指标库」,而是把策略研究流程里最耗时的几件事标准化。
自建回测最先要解决的环节是数据:清洗、复权、停牌、交易日历。RQAlpha 用 download-bundle 直接给出可用的 A 股日线数据包(含股票、常用指数、场内基金、期货),每月月初更新。
撮合引擎(当前 Bar 收盘价 / 下一 Bar 开盘价)、滑点、手续费乘数、税费模型、事前风控、基准与风险指标都在框架里,同一份策略换参数就能换运行方式。
Mod 体系把股票/期货账户、模拟撮合、调度器、分析输出、税费等做成可启停模块;你还可以在 Mod 里加命令行参数、换数据源与事件源,而不是 fork 一份源码自己维护。
下面的命令全部来自官方文档,替换策略文件与日期即可。
pip install rqalpha(官方建议用虚拟环境),rqalpha version 验证。
rqalpha download-bundle 下载免费 A 股日线数据包,默认落在 ~/.rqalpha。
实现 init / handle_bar 等约定函数,用 history_bars 取数、用下单接口交易。
rqalpha run -f 策略.py -s 起 -e 止 --account stock 10万,加 -o 存结果、--plot 出图。
输出 pickle 里有年化、回撤、Sharpe 等摘要;用 --extra-vars 批量换参数扫参。
按官方文档与仓库结构整理;每一项都指向本页之外的具体页面。
| 能力面 | 内容 | 细节入口 |
|---|---|---|
| 安装与数据 | pip 安装、虚拟环境、bundle 下载与更新、bundle 路径、RQData 每日更新 | 安装与数据 |
| 运行方式 | 命令行、config.yml、策略内 __config__、run_file/run_code/run_func,参数优先级明确 | 运行策略 |
| 策略 API | 约定函数、数据查询、股票/期货下单接口、context 与 portfolio | 策略 API |
| Mod 扩展 | 7 个系统 Mod(账户/撮合/风控/税费/分析/调度/进度)、mod 命令、自定义命令行 | Mod 扩展 |
| 结果与指标 | pickle 输出结构、summary 风险指标、plot 曲线、report 与 Excel 模板 | 回测指标 |
| 参数调优 | context_vars 与 --extra-vars、多进程批量回测、结果排序分析 | 参数调优 |
| 许可与数据边界 | 非商业 Apache 2.0、商用需授权、免费数据只到日线、分钟级需自备 | 许可边界 |
两条路线的准备成本差别很大,先看你怎么用。
换来的是完整可控的回测工程:撮合、风控、税费都能改,结果文件可编程分析;代价是要维护 Python 环境与数据更新。
本机已核验的 quant-analyst 技能覆盖回测与风险指标建模方向、akshare-finance 覆盖 A 股行情数据,但与本框架没有已证实集成,不能视为 RQAlpha 的替代安装方式。
以下为免部署路线的真实对话截图(点击左右箭头翻页),用于对照「自建框架:装环境 + 下载数据 + 写策略」的准备成本。截图演示的是本机技能路线,不是 RQAlpha 自身的运行结果。这条路线与 RQAlpha 无已证实集成,仅供研究。
RQAlpha 的边界比功能更需要先确认。
你会写 Python、想做日线级别的 A 股或期货策略研究,需要自己控制撮合与风控细节,并且能接受「数据要自己下载更新、结果要自己分析」的工作方式。
你只想快速查某个策略的历史表现,或者需要分钟级/多市场(港美股)数据。开源版不提供分钟数据源,港美股也不在免费数据范围内。
如果你所在机构要把它用在商业产品或内部业务系统里,需要先取得米筐科技授权(README 给出联系邮箱 public@ricequant.com),不能直接按 Apache 2.0 商用。
RQAlpha 的官方文档以 docs/source 下的 rst 源码形式随仓库维护(本站整理时的采集版本:2026-09-11)。下表「官方小节」一列按原文标题拼写,便于你在官方仓库里直接检索。
| 文档文件 | 讲了什么(官方小节) | 对应本站页面 | 适用场景与注意点 |
|---|---|---|---|
intro/overview.rst | 介绍、特点、安装、数据获取、生成样例策略、运行回测、绘制回测结果、分析结果 | 本页(概览) | 想先看全流程时读它;内容是概览,参数细节不在这里 |
intro/install.rst | 安装前、安装、获取回测数据、回测数据的更新、获取配置文件、FAQ(line-profiler、Matplotlib、Mac 获取回测数据、Mac 中文字体、策略样例路径) | 安装与数据 | 装之前用它对齐版本与环境;FAQ 五条是排错建议先看的地方 |
intro/detail_install.rst | Anaconda 虚拟环境搭建(For GNU/Linux、conda 虚拟环境) | 安装与数据 | 只用 pip 加 venv 的人可以不看;conda 用户按它搭环境 |
intro/tutorial.rst | 10 分钟教程:策略运行流程、策略编写流程 | 策略 API | 首次写策略前读;给的是最小可运行流程,不是接口全集 |
intro/run_algorithm.rst | 多种方式运行策略:命令行运行(命令行参数、系统内置 Mod Option 扩展、传递 Mod 参数、通过 Mod 自定义扩展命令行参数)、使用配置文件运行策略、策略内配置参数信息、通过引用 RQAlpha 库在代码中运行策略(run_file / run_code / run_func) | 运行策略 | 参数不生效时对照优先级看它;Mod 参数的写法只在这份文档里 |
intro/optimizing_parameters.rst | 参数调优:通过函数调用传递参数、通过命令行传递参数、分析批量回测结果 | 参数调优 | 要做参数扫描时读;它讲怎么传参与汇总,不给推荐参数 |
intro/examples.rst | 策略示例:第一个策略-买入&持有、Golden Cross 算法示例、单股票 MACD 算法示例、多股票 RSI 算法示例、海龟交易系统、股指期货 MACD 日回测、商品期货跨品种配对交易 | 策略 API、运行策略 | 不知从何下手时先抄示例;示例是用法演示,不代表策略有效性 |
intro/under_ide.rst | 通过 PyCharm 运行/调试:下载并搭建 PyCharm 环境、配置解释器、配置命令行位置、运行测试 | 运行策略 | 习惯用 IDE 断点调试的人用;纯命令行流程可跳过 |
api/base_api.rst | 基础 API:约定函数(init、handle_bar、handle_tick、open_auction、before_trading、after_trading)、交易接口、持仓查询接口、数据查询接口、其他接口、scheduler 定时器、对象模型与枚举常量 | 策略 API | 查函数签名与参数以它为准;枚举常量名(如 SIDE、ORDER_STATUS)只在这里有 |
api/extend_api.rst | 扩展 API:行情(get_price、get_price_change_rate)、股票(get_split、get_factor、get_industry 等)、指数(index_components、index_weights)、期货(futures.get_dominant 等)、宏观经济(econ.get_reserve_ratio、get_money_supply) | 许可与数据边界、策略 API | 这些接口依赖数据服务权限,免费数据包不一定覆盖;先确认数据来源再写 |
development/mod.rst | 创建您的第一个 Mod(开发环境搭建、创建 Mod 项目、自定义 Portfolio 初始化、PyPI 方式安装、激活以及使用)、扩展 RQAlpha API、发布独立 PyPI 包作为 Mod | Mod 扩展 | 要改账户、撮合或分析行为时读;它给的是从本地开发到发布 PyPI 包的完整路径 |
development/data_source.rst | 扩展数据源:增加自有数据源(策略中直接读取自有数据、在策略中 import 自定义模块、扩展 API 实现自有数据的读取)、替换已有数据源(基础数据、行情数据——五十行代码接入 tushare 行情数据) | 许可与数据边界 | 想接分钟级或自有数据时读;它示范了替换行情数据的做法 |
development/event_source.rst | 扩展事件源:事件源分类、事件源的订阅及使用、事件源的扩展 | 运行策略、Mod 扩展 | 要接实盘或自定义事件流时读;它决定「什么时候触发策略」 |
development/basic_concept.rst | 基本概念:接口清单(Mod、Position、StrategyLoader、EventSource、DataSource、Broker、PriceBoarder、PersistProvider、AbstractFrontendValidator、AbstractTransactionCostDecider) | Mod 扩展 | 读源码前先看它,能对上「哪个部件负责哪件事」 |
base_api.rst;想确认某个数据接口能不能用,去 extend_api.rst,但要先确认你的数据权限覆盖到它。②安装与数据报错先看 install.rst 的 FAQ 五条,覆盖了 line-profiler、Matplotlib 后端、macOS 取数与字体、策略样例路径这些高频问题。③文档源码在仓库 docs/source 下随版本走,本站页码与官方小节逐一对应,版本升级后若小节名变化,以官方仓库最新原文为准。下表的每一项都能指到官方仓库文件或 GitHub 公开 API 的返回值,采集时间为 2026-09-11;数字会随项目进展变化,引用时请注明采集日期。
| 项目 | 事实 | 来源 | 注意点 |
|---|---|---|---|
| 仓库 | ricequant/rqalpha,创建于 2016-07-20,默认分支 master,最近一次提交 2026-09-08 | GitHub 公开 API(采集 2026-09-11) | 维护十余年的项目;主仓有提交不等于 PyPI 已同步,以版本号为准 |
| 社区热度 | 6,759 Star、1,793 Fork、412 订阅、32 个开放 issue | GitHub 公开 API(采集 2026-09-11) | 只代表采集时刻,随社区活动变化 |
| 最新版本 | release/6.3.0,2026-07-23 发布;前一版 6.2.1 发布于 2026-07-10 | GitHub Releases(采集 2026-09-11) | 节奏大致每月一版,升级前看官方 release 说明 |
| 版本号怎么来 | 由 setuptools_scm 从 tag 推导,tag 规则 ^release/(?P<version>.*)$,写入 rqalpha/_version.py | pyproject.toml | 装到手的版本号来自发布 tag,不是仓库任意提交 |
| Python 支持 | requires-python >=3.8,分类器覆盖 3.8 到 3.14 | pyproject.toml | 不同 Python 大版本对应不同 numpy 区间,见下行 |
| 依赖区间(关键三处) | numpy <2.0.0(Python ≤3.11)与 numpy >=2.0.0(Python ≥3.12);pandas >=1.0.5, <3.0.0 | pyproject.toml | 手写 requirements 时别把 numpy 钉错区间,容易装完导入失败 |
| 数据层依赖 | h5py、hdf5plugin | pyproject.toml | 数据包是 HDF5 格式,缺这两个读 bundle 会失败 |
| 指标与出图 | rqrisk >=1.0.10、matplotlib >=3.1.0、tabulate、openpyxl | pyproject.toml | 风险指标、收益曲线、Excel 报告分别依赖它们 |
| 命令行入口 | rqalpha = rqalpha.__main__:entry_point | pyproject.toml | 装完直接敲 rqalpha,不需要 python -m |
| 可选性能分析 | pip install rqalpha[profiler],对应依赖 line_profiler | pyproject.toml | 默认安装不含它;Windows 下还需要编译工具链 |
| 系统 Mod | 默认启用 7 个:sys_accounts、sys_simulation、sys_progress、sys_risk、sys_analyser、sys_scheduler、sys_transaction_cost | rqalpha/mod_config.yml | 该文件首行标注不要直接编辑,改配置走配置项而不是改它 |
| 许可双轨 | pyproject.toml 写 Apache-2.0,LICENSE 正文区分非商业与商业用途;GitHub API 的 license 字段是 Other(NOASSERTION) | pyproject.toml、LICENSE、GitHub 公开 API | 只看元数据会误判成可随意商用,商用前务必走授权流程 |
| 免费数据范围 | 日级别:股票、常用指数、场内基金、期货;每月月初更新一次 | 官方 install 文档 | 分钟级不提供,需要 RQData 或自备数据源 |
| 官方主页 | rqalpha.io(仓库 homepage 字段) | GitHub 公开 API(采集 2026-09-11) | 文档站与仓库 docs/source 同源,细节以仓库那版为准 |
搜「RQAlpha 收费吗」「RQAlpha 和 RQData 区别」的人,卡住的往往不是功能,而是把这几个名字当成了同一个东西。下表只做定位,细节与证据等级在许可边界页。
| 名称 | 一句话定位 | 细节在哪 |
|---|---|---|
| RQAlpha | 开源 Python 回测框架,跑在你自己的机器上 | 安装与数据 |
| 米筐平台 | 米筐的在线研究/回测/模拟环境,同一批策略可用 | 许可与数据边界 |
RQData(rqdatac) | 米筐的授权数据服务,负责分钟级与每日更新 | 许可与数据边界 |
| 商业版产品(RQPro / Alpha Plus) | 与开源版同源但不同许可范围的商业交付 | 许可与数据边界(本站标为待核验) |
| 本机技能路线 | 第三方 AI 助手的技能路线,与本框架无已证实集成 | 路线对比(见顶部导航「对比」) |
这一站的价值不在「把官方文档翻成中文」,而在于写清每条结论是怎么来的。本站按五级标注证据,并把没跑过的部分说出来。
| 等级 | 内容类型 | 来源 | 本站现状 |
|---|---|---|---|
| ①官方功能 | 框架已有的能力与参数 | 官方 README、docs/source 原文、仓库配置文件 | 全站主结论建立在这一级 |
| ②源码已核验 | 字段、默认值、接口清单、版本变更 | 仓库文件(pyproject.toml、LICENSE、Mod 配置、CHANGELOG) | 关键结论逐条对应到文件 |
| ③本站实测 | 命令是否可用、安装能否复现、环境读数 | 本站虚拟环境实跑,含失败复现与报错原文 | **仅覆盖安装与运行链路**:实测发现当前工具链下直接安装会失败,过程和绕行方向记录在 安装与数据 |
| ④教程扩展 | 本站整理的排查表、决策表、对照表 | 在①②③基础上重组,逐条标注依据 | 用于减少试错,不代替官方文档 |
| ⑤待核验 | 商业产品条款、未跑过的策略层结论 | 暂无本机或官方原文证据 | 页面内明确标注「待核验」,不作为选型依据 |
RQAlpha 是深圳米筐科技开源的 Python 算法交易与回测框架(框架本体在本地运行),米筐平台的在线回测/模拟环境是另一套产品;官方文档说明策略可以同时在米筐平台上回测与模拟。两者的细节以官方 README 与文档为准。
框架本身可自由获取,但许可有边界:非商业用途(个人非商业目的,或高校/研究所等非营利机构用于教育科研)按 Apache License 2.0;商业用途需经米筐科技授权。免费数据方面,官方提供 A 股日线(含常用指数、场内基金、期货)数据包,每月月初更新。
不方便。本项目的使用方式就是写策略脚本 + 命令行运行,需要基本 Python 能力(函数、字典、pandas 常识)。若只想用自然语言做研究,可看对比页列的免部署技能路线。
框架支持 1m 频率配置,但官方文档明确:开源版本不提供对应的分钟级数据源,需要自己对接数据层(docs 的 data_source / event_source 章节),或使用 RQData 数据服务、在米筐平台上进行。
官方账号模型提供 stock(股票)与 future(期货)两类账户,可同时配置(例如股票 10 万 + 期货 2 万),数据包还包含常用指数与场内基金;市场配置支持 CN 与 HK,但开 HK 时无法交易 A 股标的。
没有已证实集成。RQAlpha 是独立的 Python 包(走 PyPI 安装),本机技能目录中也没有对应技能;两者是并列的两条路线,详见对比页。