Qlib 是微软开源的 AI 导向量化投资平台(AI-oriented quantitative investment platform),旨在用 AI 技术赋能量化研究,从探索想法到生产落地全流程支持。目前最新活跃版本基于 GitHub microsoft/qlib 主仓库,它不是一个简单的回测框架,而是试图把机器学习(尤其是监督学习、市场动态建模、强化学习)无缝融入量化全链路。
一句话总结: Qlib = Quant + ML 的“一站式”工具箱,让你可以用 Python 快速实验 Alpha 挖掘、特征工程、模型训练、回测、组合优化、风险建模,甚至现在还集成了 RD-Agent 来自动化部分 R&D 过程。
核心定位与设计理念
Qlib 的目标是“让 AI 真正为量化投资创造价值”,所以它不像传统回测框架(如 Backtrader、Zipline)那样只关注执行层,而是把重点放在 AI 模型与量化策略的深度融合 上。
主要特点(基于官方文档与社区反馈):
- 数据层高度抽象:内置数据处理器,支持日频/分钟频/ tick 级数据,自动处理复权、停牌、涨跌停等常见问题。
- 模型层灵活:支持 LightGBM/XGBoost/LSTM/Transformer 等经典模型,也容易插入自定义 PyTorch/TensorFlow 模型。
- 回测层真实:考虑滑点、冲击成本、交易延迟,支持高频/低频多种模式。
- 工作流自动化:通过 YAML 配置 + qrun 命令,一键跑完整实验(数据 → 特征 → 模型 → 回测 → 评估)。
- 开源生态:与 RD-Agent 结合后,支持 AI 自动生成/优化策略代码(实验性功能)。
#mermaid-svg-ZFxUHgejmW4KG0nd{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;fill:#333;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#mermaid-svg-ZFxUHgejmW4KG0nd .error-icon{fill:#552222;}#mermaid-svg-ZFxUHgejmW4KG0nd .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-thickness-normal{stroke-width:1px;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-thickness-invisible{stroke-width:0;fill:none;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-ZFxUHgejmW4KG0nd .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-ZFxUHgejmW4KG0nd .marker{fill:#333333;stroke:#333333;}#mermaid-svg-ZFxUHgejmW4KG0nd .marker.cross{stroke:#333333;}#mermaid-svg-ZFxUHgejmW4KG0nd svg{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-ZFxUHgejmW4KG0nd p{margin:0;}#mermaid-svg-ZFxUHgejmW4KG0nd .label{font-family:\”trebuchet ms\”,verdana,arial,sans-serif;color:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster-label text{fill:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster-label span{color:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster-label span p{background-color:transparent;}#mermaid-svg-ZFxUHgejmW4KG0nd .label text,#mermaid-svg-ZFxUHgejmW4KG0nd span{fill:#333;color:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd .node rect,#mermaid-svg-ZFxUHgejmW4KG0nd .node circle,#mermaid-svg-ZFxUHgejmW4KG0nd .node ellipse,#mermaid-svg-ZFxUHgejmW4KG0nd .node polygon,#mermaid-svg-ZFxUHgejmW4KG0nd .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-ZFxUHgejmW4KG0nd .rough-node .label text,#mermaid-svg-ZFxUHgejmW4KG0nd .node .label text,#mermaid-svg-ZFxUHgejmW4KG0nd .image-shape .label,#mermaid-svg-ZFxUHgejmW4KG0nd .icon-shape .label{text-anchor:middle;}#mermaid-svg-ZFxUHgejmW4KG0nd .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#mermaid-svg-ZFxUHgejmW4KG0nd .rough-node .label,#mermaid-svg-ZFxUHgejmW4KG0nd .node .label,#mermaid-svg-ZFxUHgejmW4KG0nd .image-shape .label,#mermaid-svg-ZFxUHgejmW4KG0nd .icon-shape .label{text-align:center;}#mermaid-svg-ZFxUHgejmW4KG0nd .node.clickable{cursor:pointer;}#mermaid-svg-ZFxUHgejmW4KG0nd .root .anchor path{fill:#333333!important;stroke-width:0;stroke:#333333;}#mermaid-svg-ZFxUHgejmW4KG0nd .arrowheadPath{fill:#333333;}#mermaid-svg-ZFxUHgejmW4KG0nd .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-ZFxUHgejmW4KG0nd .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-ZFxUHgejmW4KG0nd .edgeLabel{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ZFxUHgejmW4KG0nd .edgeLabel p{background-color:rgba(232,232,232, 0.8);}#mermaid-svg-ZFxUHgejmW4KG0nd .edgeLabel rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ZFxUHgejmW4KG0nd .labelBkg{background-color:rgba(232, 232, 232, 0.5);}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster text{fill:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd .cluster span{color:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:\”trebuchet ms\”,verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-ZFxUHgejmW4KG0nd .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#333;}#mermaid-svg-ZFxUHgejmW4KG0nd rect.text{fill:none;stroke-width:0;}#mermaid-svg-ZFxUHgejmW4KG0nd .icon-shape,#mermaid-svg-ZFxUHgejmW4KG0nd .image-shape{background-color:rgba(232,232,232, 0.8);text-align:center;}#mermaid-svg-ZFxUHgejmW4KG0nd .icon-shape p,#mermaid-svg-ZFxUHgejmW4KG0nd .image-shape p{background-color:rgba(232,232,232, 0.8);padding:2px;}#mermaid-svg-ZFxUHgejmW4KG0nd .icon-shape rect,#mermaid-svg-ZFxUHgejmW4KG0nd .image-shape rect{opacity:0.5;background-color:rgba(232,232,232, 0.8);fill:rgba(232,232,232, 0.8);}#mermaid-svg-ZFxUHgejmW4KG0nd .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#mermaid-svg-ZFxUHgejmW4KG0nd .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#mermaid-svg-ZFxUHgejmW4KG0nd :root{–mermaid-font-family:\”trebuchet ms\”,verdana,arial,sans-serif;}
原始数据(CSV/数据库)
Data Handler(自动处理/缓存)
Feature Engineering(Alpha158/Alpha360 等)
Model Training(LightGBM / LSTM / RL 等)
Prediction Scores
Portfolio Strategy(TopK / EnhancedIndexing 等)
Backtest Executor(模拟交易/滑点/费用)
Performance Analysis(年化/夏普/最大回撤)
RD-Agent 自动化优化(可选)
谁适合用 Qlib?
| 量化研究新人/学生 | ★★★★★ | 文档完善,qrun 一键跑示例,快速上手完整流程 |
| 小型量化团队/个人玩家 | ★★★★☆ | 开源免费,模型实验效率高 |
| 机构专业量化团队 | ★★★☆☆ | 核心逻辑可定制,但很多生产级需求(如风控、订单执行)仍需二次开发 |
| 高频交易玩家 | ★★☆☆☆ | 更适合日频/低频,tick 级支持有限 |
社区反馈(Reddit / GitHub Issues):小基金和学术圈使用较多,部分中国公募(如华夏基金)有基于 Qlib 的合作案例,但专业机构往往只用其数据层或模型层,执行层会替换成自研系统。
快速上手(2026 年最新流程)
前提:Python 3.8+,建议用 conda 环境。
# 推荐方式:源码安装(支持最新功能)
git clone https://github.com/microsoft/qlib.git
cd qlib
pip install -e .[dev]
# 或者直接 pip(可能稍滞后)
pip install pyqlib
# 下载示例数据(中国 A 股日频,~几百 MB)
python scripts/get_data.py qlib_data_cn –target_dir ~/.qlib/qlib_data/cn_data
# 或者自己转换 CSV → Qlib 格式
python scripts/dump_bin.py dump_all –csv_path your_data.csv –qlib_dir ~/.qlib/qlib_data/custom
# 使用内置工作流,一键跑 LightGBM + Topk 策略回测
qrun examples/benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml
运行后会在当前目录生成 mlruns 文件夹(MLflow 格式),包含预测、回测报告、收益曲线图等。
from qlib.workflow import R
recorder = R.get_recorder() # 默认取最新一次实验
print(recorder.load_object("portfolio_analysis")) # 组合分析报告
你通常会看到类似输出:
Excess Return without cost 0.4523
Sharpe 0.87
Max Drawdown -0.214
…
真实项目中的使用经验分享
我见过几种典型用法:
常见坑与避坑指南
- 数据没准备好:80% 的新手问题出在这里。一定要先跑 get_data.py。
- 内存爆炸:处理分钟级数据时,建议分 instrument 分批处理。
- 回测过于乐观:默认滑点/费用模型较简单,生产前一定要自定义 exchange.py 中的 impact model。
- 模型过拟合:Qlib 的回测报告有 train/test/valid 区分,但很多人只看 overall 指标。
学习建议
如果你是量化新人,建议路径:
官方资源(2026 年最新):
- GitHub 主仓库
- 文档
- Quick Start
- 示例 Notebook
Qlib 不是“开箱即用”的生产系统,但它是目前开源量化框架里 AI 集成度最高、文档最友好 的一个。如果你对“AI for Quant”感兴趣,强烈建议 clone 下来尝试一下。
有问题欢迎评论留言:你现在是刚入门量化?还是已经在用其他框架,想对比看看?或者卡在数据/安装哪个环节了?



