news 2026/8/31 9:29:17

Qlib 快速上手:一条命令跑通量化回测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Qlib 快速上手:一条命令跑通量化回测

Qlib 快速上手:一条命令跑通量化回测

【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate R&D process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib

刚做量化研究时,最耗时间的是数据、模型、回测散落在三个脚本里各写各的。Qlib 量化回测平台把因子构建、模型训练、回测报告串进一份 YAML 配置,一条 qrun 命令跑到底。

为什么选 Qlib 做量化研究

自己搭量化流程,最先碰壁的是两件事:因子和标签的时间对齐容易写错,回测假设也不真实——涨停买不进、手续费不能忽略。Qlib 把这些做成了现成模块:特征表达式在 qlib/data/ops.py 里计算,涨跌停与手续费在 qlib/backtest/exchange.py 里强制执行,examples/benchmarks/ 下有三十多个论文模型的配置可以直接抄来跑,不用从零搭量化回测链路。

用 pip 一条命令安装 Qlib

pip install pyqlib

需要仓库最新代码时,走源码安装:

pip install numpy pip install --upgrade cython git clone https://gitcode.com/GitHub_Trending/qli/qlib && cd qlib python setup.py install

官方离线数据集暂时停用,可用社区维护的 qlib_bin 数据:把压缩包解压到~/.qlib/qlib_data/cn_data即可。数据就位后,直接跑 LightGBM 量化回测:

cd examples qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml

终端会打印年化收益、信息比率、最大回撤,docs 目录里的 report.png 就是这个量化回测流程生成的报告样式:

它是怎么工作的:YAML 驱动的四级流水线

qrun 解析 YAML 后按顺序组装四个模块,像流水线一样:

  • 数据准备data_handler_config指向 qlib/contrib/data/handler.py 里的 Alpha158,把原始行情加工成 158 个因子(量价、波动率、价格位置等);
  • 模型训练task.model是 qlib/contrib/model/gbdt.py 里的 LGBModel,task.dataset是 qlib/data/dataset/ 里的 DatasetH,按 segments 里的时间段切出 train/valid/test 三段;
  • 信号生成:record 段执行 qlib/workflow/record_temp.py 里的 SignalRecord,把模型对每只股票未来涨跌的预测存成信号;
  • 回测执行:PortAnaRecord 用 TopkDropoutStrategy(qlib/contrib/strategy/signal_strategy.py)模拟每日调仓,exchange 层按配置执行涨跌停与费用。

除监督学习外,它还有独立的强化学习框架 qlib/rl/,用来处理订单执行这类更细粒度的连续决策:

配置与调优:workflow_config_lightgbm_Alpha158.yaml 里先看这 6 项

1. 数据路径 provider_uri

qlib_init: provider_uri: "~/.qlib/qlib_data/cn_data"

必须和数据实际下载目录一致,否则 qlib.init 直接报错。

2. 训练集切分 segments

segments: train: [2008-01-01, 2014-12-31] valid: [2015-01-01, 2016-12-31] test: [2017-01-01, 2020-08-01]

按时间顺序切,常见比例约 7:2:1。注意附带数据集只到 2020-08-01,日期别写超。

3. 持仓宽度 topk 与换手 n_drop

kwargs: topk: 50 n_drop: 5

持有预测分数最高的 50 只股票,每天淘汰最差的 5 只换成新晋高的。topk 常用 20~100,n_drop 常用 1~10,n_drop 越大换手越高、手续费越贵。

4. 交易成本 open_cost / close_cost

open_cost: 0.0005 close_cost: 0.0015

对应 A 股佣金加印花税的量级;想更贴近实盘可以调成 0.001 / 0.0013。

5. 涨跌停阈值 limit_threshold

limit_threshold: 0.095

当日涨幅超 9.5% 视为涨停无法成交。沪深主板保持默认即可,别急着改。

6. 模型复杂度

num_leaves: 210 learning_rate: 0.2 num_threads: 20

num_leaves 建议 31~300 之间,越大越容易过拟合;num_threads 按你机器的核数调。

踩过的坑

现象:import qlib 报 ModuleNotFoundError: No module named 'qlib.data._libs.rolling' → 原因:Cython 扩展没在源码里编译,或仓库本地 qlib 目录把已安装的包挡住了 → 解决:在仓库根目录执行python setup.py build_ext --inplace,并确保脚本不在仓库目录下运行。

现象:Windows 上跑报 RuntimeError "start a new process before bootstrapping" → 原因:multiprocessing 在 Windows 不能直接派生新进程 → 解决:把 qlib.init() 和 D.features 放进if __name__ == "__main__":里再运行。

现象:报 QlibCacheException,提示 redis 锁的 key 已存在 → 原因:redis 默认 db 1 里残留了上次任务的锁 → 解决:redis-cli后执行select 1flushdb,或用 qlib.init(redis_task_db=2) 换一个库。

现象:Mac M1 上装 lightgbm 依赖失败 → 原因:缺 OpenMP 运行时 → 解决:先brew install libomp,再pip install .

【免费下载链接】qlibQlib is an AI-oriented Quant investment platform that aims to use AI tech to empower Quant Research, from exploring ideas to implementing productions. Qlib supports diverse ML modeling paradigms, including supervised learning, market dynamics modeling, and RL, and is now equipped with https://github.com/microsoft/RD-Agent to automate R&D process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 9:20:38

LaTeX云端写作环境:开箱即用的学术排版解决方案

如果你正在写学术论文、技术报告或者任何需要专业排版的文档,一定经历过这样的痛苦:Word 里调格式调到崩溃,参考文献对不上号,公式编号混乱不堪,最后交稿前发现整个文档的样式全乱了。这时候,老鸟们总会轻飘…

作者头像 李华
网站建设 2026/8/31 9:18:38

Grok Bot安卓预注册解析:AI助手移动端流式对话工程实践

Grok Bot 安卓版即将上线、开放预注册的消息,最近在应用资讯和开发者社区里都开始出现。单看这条新闻,很容易把它归类为“又一个 AI 聊天应用要上安卓了”。但如果把视角从普通用户切换到开发者,这件事传递的信号要重要得多:一个在…

作者头像 李华
网站建设 2026/8/31 9:17:42

BT下载慢?3步配好Tracker,P2P下载加速实操教程

BT下载慢?3步配好Tracker,P2P下载加速实操教程 【免费下载链接】trackerslist Updated list of public BitTorrent trackers 项目地址: https://gitcode.com/GitHub_Trending/tr/trackerslist BT下载速度上不去,多半不是宽带的锅&…

作者头像 李华
网站建设 2026/8/31 9:16:15

阿里云Wan3.0视频编辑模型实战:从API接入到工程落地

视频编辑这个方向,最近几年一直是大模型厂商竞争的焦点。从文生视频到图生视频,再到如今的 AI 视频编辑,技术迭代速度非常快。阿里云的 Wan3.0 登顶视频编辑竞技场,意味着国内自研视频大模型在指令理解、编辑精度、画面一致性这些…

作者头像 李华