RQAlpha 项目研究站 · 许可与数据边界

RQAlpha 能不能商用、数据覆盖到哪:先把边界看清

这两条决定了 RQAlpha 适不适合你的场景,比功能清单更重要。许可上 RQAlpha 不是标准的 Apache 2.0 开源:非商业用途(个人非商业目的,或高校/研究所等非营利机构用于教育科研)按 Apache 2.0 使用;商业用途需经米筐科技授权。数据上,官方免费提供日级别数据包,分钟级回测需要自备数据源。

许可:非商业 Apache 2.0 / 商用需授权数据:免费 A 股日线,月更依据仓库 LICENSE 与官方文档(2026-09 核验)
个人研究
Apache 2.0 可用
高校/科研
教育科研可用
商业使用
需米筐授权
分钟级数据
需自备数据源

依据仓库 LICENSE 与官方文档整理的边界示意;非法律意见,具体条款与授权以官方原文为准。

Version check

本页依据的版本、来源与实测状态

  • 依据版本release/6.3.0(2026-07-23 发布);仓库默认分支为 master
  • Python 要求requires-python >=3.8(分类器覆盖 3.8–3.14)
  • 本页官方来源仓库 LICENSE 正文、pyproject.toml、docs/source/development/data_source.rst
  • 证据等级官方文档与仓库文件(①②级)+ 本机实测(③级,限安装与运行链路)
  • 实测状态安装链路已实测;许可与数据边界按仓库正文核验,未做法律意见
  • 旧版本写法许可条款以仓库 LICENSE 正文为准,别只按元数据字段判断能否商用
License

Apache 2.0 就能商用吗?许可条款的两条主线

以下是 RQAlpha 仓库 LICENSE 原文要点的中文归纳(版权方:深圳米筐科技有限公司,2019)。

情形许可要点(原文归纳)对你的影响
非商业用途指个人出于非商业目的使用,或高校、研究所等非营利机构出于教育、科研目的使用遵守 Apache License 2.0 即可
商业用途指个人出于任何商业目的使用,或法人/其他组织出于任何目的使用;未经授权不得用于商业目的(含向第三方提供、销售、出租、出借、转让本软件及其衍生产品等)公司内部使用也属商业用途,需先取得授权
条款冲突处理商业使用同样需遵守 Apache 2.0,但两者冲突时以仓库 LICENSE 为准不能只按 Apache 2.0 理解 RQAlpha
授权联系LICENSE 与 README 均给出联系邮箱 public@ricequant.com商用前先走授权流程,不要先上线再补
澄清一句常见误解:「Apache 2.0」出现在 RQAlpha 的 pyproject.toml(license = {text = "Apache-2.0"})与 LICENSE 正文里,但 LICENSE 同时写明了商业用途的额外限制——只看到元数据里的 Apache-2.0 就认为可以随意商用是不准确的。
Data

免费数据覆盖到哪、分钟级数据从哪来?

RQAlpha 的能力边界由数据决定;下表的每条都来自官方文档原文。

维度官方免费提供缺口与替代
频率日级别数据分钟级 1m 官方明确不提供数据源:需自备数据源、用 RQData,或在米筐平台进行
品种股票、常用指数、场内基金、期货其它品种需自接数据层
市场A 股为主配置支持 CN 与 HK,但开 HK 后无法交易 A 股任何标的(互斥)
更新节奏免费数据包每月月初更新需要每日盘后更新,需 RQData 权限 + update-bundle
财务与因子等基础行情与合约信息随数据包提供财报、因子、宏观、舆情等属 RQData 数据服务范围(官方列出 A 股财务、基金、期货期权、可转债、风格因子、宏观、电商、舆情等)
模拟/实盘框架支持 b 回测 / p 模拟 / r 实盘三种运行类型实盘接入需要券商/通道方案,官方仓库本身不提供交易通道
Scenarios

三种常见场景怎么用

按身份对号入座,先把 RQAlpha 的合规前提走完再谈技术。

个人研究 / 学习

非商业目的使用,按 Apache 2.0 走;用免费日线数据包即可完成大部分日频策略练习。注意:把研究成果用于对外收费服务或商业产品,就跨过了边界。

高校 / 科研机构

用于教育、科研等非营利目的可在 Apache 2.0 下使用;论文与教学中引用请注明项目来源与版本,涉及数据使用也要遵守数据源条款。

公司 / 商业产品

无论对外销售还是内部业务系统,都属商业用途,需联系米筐科技取得授权;同时评估是否需要 RQData 的商业数据授权,避免数据合规风险。

本站立场:以上仅为公开文档的归纳整理,不构成法律意见;实际使用请以仓库 LICENSE 原文与米筐科技的书面授权为准。
Myths

五个常见误解

这些说法在中文社区里流传很广,逐条对着原文核一遍。

常见说法实际情况
「MIT/Apache 开源,随便商用」LICENSE 明确商业用途需授权,且冲突时以该 LICENSE 为准
「装了就能做分钟级高频回测」框架支持 1m 频率,但开源版不提供分钟级数据源,得先解决数据
「数据一直免费且每天更新」免费数据包按官方说明每月月初更新;每日更新走 RQData
「开源版可以一键实盘」运行类型支持实盘(-rt r),但交易通道与账户实现需自行接入或使用生态方案
「和米筐在线平台是同一个东西」RQAlpha 是本地框架;米筐平台是在线回测/模拟环境,官方说策略可同时用于两者,但账号与数据体系是分开的
Checklist

开工前四问

四个问题回答完,基本能判断这条路适不适合你。

问题是否
使用是否属商业目的?先联系授权,再开工按 Apache 2.0 使用即可
策略需要分钟级或更低频数据吗?需自备数据源或 RQData / 平台方案免费日线数据包够用
需要港股/美股吗?注意 HK 与 A 股互斥,且免费数据不覆盖美股A 股日线场景直接可用
是否需要财务/因子等深度数据?评估 RQData 或自建数据管道行情+合约信息即可满足
Data access

免费数据包和米筐数据服务,分别能拿到什么?

官方免费数据与扩展 API(RQDatac)是两套东西:前者是回测的基础数据,后者是策略里额外查数据的入口。下表按官方 install / overview / 扩展 API 文档逐项对照。

维度免费数据包(download-bundle)米筐数据服务(RQDatac 扩展 API)适用场景注意点
覆盖市场A 股市场数据(官方原文:目前只免费开放 A 股市场日线数据)Ricequant 从多个数据源整理归纳维护的查询接口,覆盖股票、指数、期货、宏观等只做 A 股日线研究时,免费数据包就够了免费数据不含美股;港股要改 market 配置,且开 HK 后不能同时交易 A 股
频率日级别按其文档提供更细的数据查询日频策略的常规回测官方对分钟级回测给出的建议仍是「在米筐平台进行」或「实现数据层接口接自有数据」
品种股票、常用指数、场内基金、期货股票、指数、期货、宏观等多类查询A 股与商品期货策略研究财务、因子、可转债、舆情等属扩展 API 范围,免费数据包不含
更新节奏数据每个月月初更新配套 rqalpha update-bundle 可在每日盘后即时更新数据对时效要求不高的历史研究用免费包即可每日更新的前置条件是 RQDatac 权限与 license 已配置,否则命令会失败
获取方式一条命令下载,默认落在 ~/.rqalpha免费申请试用并获取文档 → 安装 RQDatac → 配置 license先用免费数据跑通流程,再按需要申请在米筐在线量化平台运行策略时可免费调用扩展 API,本地调用则要自己配 license
是否要改代码不用改:数据包直接供回测读取不用改:安装授权后与框架内 API 一样直接调用两者的调用方式是统一的RQAlpha 的策略代码不需要为数据来源做分支
扩展 API 分组代表接口能拿到什么注意点
行情get_price、get_price_change_rate合约历史数据、历史涨跌幅与框架内 history_bars 的职责不同:前者是数据查询,后者是回测取 bar
股票·基础信息get_shares、get_turnover_rate、get_split、get_securities_margin、get_margin_stocks、get_stock_connect、concept流通股、历史换手率、拆分数据、融资融券信息与标的列表、沪深港通持股、概念股列表多为横截面或历史数据查询,使用前先确认权限是否覆盖该接口
股票·财务与因子get_factor、get_pit_financials_ex、current_performance、get_industry、get_instrument_industry因子、季度财务信息、财务快报、行业股票列表与个股行业分类官方文档只列接口不列字段明细,字段口径要以 RQData 文档为准
指数index_components、index_weights指数成分股、成分股权重做指数成分股类策略时用来构造股票池,注意成分股会随时间调整
期货futures.get_dominant、futures.get_dominant_price、futures.get_member_rank、futures.get_warehouse_stocks主力合约、主力连续合约行情、会员持仓排名、仓单数据免费数据包里只有期货行情,这些属于额外查询
宏观经济econ.get_reserve_ratio、econ.get_money_supply存款准备金率、货币供应量宏观择时类研究用得到,注意数据发布频率与滞后
权限与调用阶段—(由 RQDatac 与 ExecutionContext 控制)授权后才可调用;自定义注入的接口可限制生效阶段未授权时接口会直接报错;用 ExecutionContext.enforce_phase 可限定只在指定阶段可用

启用扩展 API 的三步

1. 访问 Ricequant 官网免费申请试用 RQDatac 并获取其文档 —— 预期输出:拿到安装文档与用来配置 license 的脚本;
2. 按文档安装 RQDatac —— 预期输出:安装完成、在 Python 里 import 不报错;
3. 执行脚本把 license 配置到环境变量,或在执行策略时传入 --rqdatac license:xxx —— 预期输出:策略里调用 get_price、get_factor 这类接口不再报权限错误。

两者不是二选一:回测的基础数据(合约信息、交易日历、行情)来自数据包,扩展 API 是在策略里额外查询数据的入口。只跑日线策略时不需要申请 RQData;一旦要看财务、因子、主力合约、宏观这类数据,才需要走扩展 API,并接受它的权限前提。具体下载与更新命令见安装与数据页。
Bring your own data

自备数据源要写什么:三条路线与接口清单

官方把对接数据源分成「增加自有数据源」与「替换已有数据源」两类;下表的写法与参数都来自 docs 的扩展数据源、扩展事件源与基本概念章节,写法背后的 Mod 加载机制见Mod 扩展页。

路线官方示例要写什么适合场景注意点
策略里直接读自有数据read_csv_as_df.py在 init 里用 pandas 读 CSV 或数据库,把结果挂到 context 上供后续使用少量补充数据、临时研究取数必须写在 init / before_trading / handle_bar / handle_tick / after_trading 里,写在函数外可能异常
策略里 import 自定义模块get_csv_module.py、import_get_csv_module.py把模块所在目录写入 sys.path,再正常 import 使用自有数据已封装成模块、多个策略复用建议在 init 阶段加路径;模块基于策略相对路径时,用 context.config.base.strategy_file 定位
用 Mod 注入扩展 APIrqalpha_mod_extend_api_demo继承 AbstractMod,用 export_as_api 装饰器把自有函数注册成策略可调用的 API希望自有数据用起来像框架自带接口注入要在初始化阶段完成;可用 ExecutionContext.enforce_phase 限定只在 ON_INIT / BEFORE_TRADING / ON_BAR / AFTER_TRADING / SCHEDULED 生效
替换行情数据源官方 Tushare 接入示例继承 BaseDataSource,只重写需要替换的方法,再在 Mod 的 start_up 里替换数据源接第三方行情,或让 RQAlpha 读自己的行情库不处理的情况要 return super().xxx(...) 交回父类;官方示例因数据源只有日线,因此只能日回测
替换基础数据—(bundle 文件替换)按相同格式生成数据包文件替换,或实现 AbstractDataSource 接口并继承 BaseDataSource 覆写停牌、ST、交易日历等口径要换成自己的一套官方说明合约信息、ST、停牌、交易日历属全量数据且每日更新,没有对应的显式替换接口
扩展事件源ProgressMod(官方进度条 Mod)用 env.event_bus.add_listener(EVENT.XXX, handler) 订阅事件,用 publish_event 发布自己的事件想在回测流程里插入自己的动作或统计事件分系统事件、市场事件、交易事件三类;发布时要自己构造 Event 对象
要碰的方法/入口签名要点是否必须注意点
get_bar(instrument, dt, frequency)替换行情时必需返回单根 bar;取不到数据时的回退逻辑要自己写清楚
history_bars(instrument, bar_count, frequency, fields, dt, skip_suspended=True)替换行情时必需参数只给截止日与条数,需自己按交易日历推出开始日;返回结构与默认实现不一致时策略行为会变
available_data_range(frequency)替换行情时必需返回该频率可用的日期区间,官方示例给的是「固定起始日到昨天」
current_snapshot(instrument, frequency, dt)日线数据源可不实现官方从 DataProxy 源码得到的结论:提供日级别数据的实现不需要这个函数
env.set_data_source(...)在 Mod 的 start_up 内调用替换行情时必需必须在系统启动阶段完成替换,晚了不生效
env.event_bus.add_listener(EVENT.XXX, handler)按需(扩展事件源时)日线回测的事件顺序示例:BEFORE_TRADING(00:00) → BAR(15:00) → AFTER_TRADING(15:30) → SETTLEMENT(17:00)
先看清数据包里有什么再动手:~/.rqalpha/bundle 下是 funds.h5、futures.h5、indexes.h5、dividends.h5、st_stock_days.h5、stocks.h5、suspended_days.h5、trading_dates.npy、yield_curve.h5。要按自己的口径替换基础数据,先照着这些文件的组织方式生成同格式文件;否则就实现数据源接口,只覆写你真正需要换掉的那几个方法。
Product map

RQAlpha、米筐平台、RQData、RQPro、Alpha Plus 是什么关系?

这五个名字经常被当成同一个产品,搜索引擎里的问题也多来自这个混淆。它们其实属于四类东西:开源框架 / 在线平台 / 数据服务 / 商业产品。下表同时标出本站的证据等级。

名称它是什么与开源框架的关系权限或费用本站证据等级什么时候会用到它
RQAlpha米筐科技开源的 Python 算法交易与回测框架,在本地运行就是本页讨论的框架本体非商业用途按 Apache 2.0;商业用途需授权①官方功能 ②源码已核验 ③安装链路本站实测要自己写策略、自己控制撮合与成本假设
米筐平台(Ricequant)米筐提供的在线研究/回测/模拟交易环境同一批策略可以在平台上回测与模拟;框架本体不依赖平台平台账号与额度由米筐提供,以官方页面为准①官方文档说明不想在本地装环境;或用平台的数据与算力
RQData(rqdatac)米筐的授权数据服务,以 Python 包形式使用不是框架的一部分,是可选数据来源;update-bundle 的每日更新依赖它需要申请权限并把 license 配置到环境变量①官方安装文档、②仓库文件要分钟级数据、每日更新或扩展数据接口
RQPro米筐面向专业/机构用户的商业产品与开源框架是两条产品线商业授权,以米筐官方为准⑤待核验(本站未核验其功能边界与价格)团队需要成品终端与研究平台时,直接问米筐官方
RQ Alpha Plus米筐的商业版框架(与开源版不是同一许可范围)与开源框架同源但不同交付形态商业授权,以米筐官方为准⑤待核验(本站未核验其功能清单与授权条款)需要商业支持或开源版之外的能力时,以官方报价为准
本机技能路线(EasyClaw)第三方 AI 助手 + 技能包,用一句话发起研究任务与上述米筐产品均无已证实集成安装客户端即可使用本机技能目录已核验(SKILL.md)只想先问清研究问题、不想装 Python 环境
四条容易搞混的边界:①框架开源 ≠ 数据免费(数据是独立授权);②框架免费用于商业 ≠ 可以商用(商用要授权);③能在线跑策略 ≠ 本地框架有对应功能;④第三方技能路线不是任何一项米筐产品的替代安装方式。上表里带「待核验」的两行,本站没有核验其条款,选型前请以米筐官方说明为准。
FAQ

常见问题

公司内部自用算商业用途吗?

按 LICENSE 的表述,法人或其他组织「出于任何目的」使用本软件都属于商业用途范畴,内部业务系统也在其中。稳妥做法是先联系米筐科技确认授权范围。

自己写策略能否规避许可限制?

许可约束的是框架本身及其衍生产品的使用方式,与策略由谁写无关。如果整体使用场景属商业用途,仍需授权。

数据可以自己换成免费源吗?

技术上可以(实现数据层接口接入自己的数据源),但要自行确保所用数据的授权合规;框架的许可与数据源的许可相互独立,不能互相替代。

免费数据包能用于发表论文吗?

高校与科研机构的教育科研用途在框架许可范围内,但数据包本身的使用可能还受米筐数据的条款约束。发表前建议同时确认数据使用条款,并注明来源与版本。

许可会变吗?

可能。当前依据是仓库 LICENSE 与 README(2026-09 核验,版权年份 2019)。任何使用前请以官方仓库最新原文为准,不要以第三方转述为依据。

不想碰许可与数据这些前置问题,有别的路吗?

可以看对比页列的本机技能路线(免部署、用自然语言发起研究任务),但 RQAlpha 与 EasyClaw 无已证实集成,本机技能路线也不提供 RQAlpha 这种可改撮合与风控的工程化回测能力。选择取决于你要的是「写策略的工程环境」还是「快速得到研究结论」。

确认边界后,接着把数据与结果这两环补齐

数据怎么拿到、放哪、怎么更新,看安装与数据页;跑完回测后指标怎么读,看回测指标页。