Qlib 量化投资平台实战:5分钟跑通一个 LightGBM 选股策略回测

📅 发布时间:2026/8/31 20:08:09
Qlib 量化投资平台实战:5分钟跑通一个 LightGBM 选股策略回测 Qlib 量化投资平台实战5分钟跑通一个 LightGBM 选股策略回测【免费下载链接】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 RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib假设你想验证一个想法用 5 日动量这类因子给沪深300成分股打分再用树模型做排序过去三年跑出来的回测收益能不能跑赢指数从零搭这套东西通常要自己写因子计算、训练管线和撮合回测三块代码。Qlib 把这三块拆成了独立模块用表达式引擎算因子用配置文件串起建模→预测→回测工作流回测内置涨跌停、交易成本等 A 股约束。这篇文章按数据→因子→模型→回测→结果的顺序带你完整跑一遍。先看整体架构数据到报告的链路Qlib 的核心链路行情数据经数据层含因子表达式引擎变成特征矩阵喂给机器学习模型监督学习、强化学习均可预测信号进入回测引擎按真实交易约束撮合最后产出绩效报告。数据层同时支持离线 bin 文件和在线服务模式。环节对应模块最小可运行调用数据准备数据层python scripts/get_data.py qlib_data --region cn因子定义因子计算模块D.features(instruments, [Mean($close, 5)])模型训练LightGBM模型qrun workflow_config_lightgbm_Alpha158.yaml回测执行回测与策略模块配置文件里的port_analysis_config段结果分析实验记录模块mlruns/目录下的指标与图形报告5分钟跑通第一个回测先安装并拉取数据。注意官方预置数据源目前暂停服务拉不到时用 Yahoo 数据采集脚本 自己生成一份git clone https://gitcode.com/GitHub_Trending/qli/qlib cd qlib pip install . # 开发建议 pip install -e .[dev] python scripts/get_data.py qlib_data --target_dir ~/.qlib/qlib_data/cn_data --region cn然后跑 LightGBM 基准配置。qrun 会自动完成建数据集、训练、预测、回测四步cd examples # 注意不要在与源码同级的目录下运行会遮蔽 qlib 包 qrun benchmarks/LightGBM/workflow_config_lightgbm_Alpha158.yaml跑完终端会直接打印带成本/不带成本的超额收益、信息比率、最大回撤每个 recorder 的明细存在mlruns/下。注意运行该示例建议至少 16G 内存、5G 磁盘。读懂配置文件改哪些参数换成你自己的策略上面那条命令的全部行为都由一份 yaml 决定。四段配置各管一事改参数就是编辑这段文本在可替换处替换为你自己的参数data_handler_config: data_handler_config start_time: 2008-01-01 # 此处替换为你的数据起点 instruments: *market # 此处替换为 csi300 / csi500 / all port_analysis_config: port_analysis_config strategy: {class: TopkDropoutStrategy, kwargs: {topk: 50, n_drop: 5}} backtest: account: 100000000 # 初始资金 exchange_kwargs: {open_cost: 0.0005, close_cost: 0.0015, deal_price: close}要点topk: 50, n_drop: 5表示每天持预测分数最高的 50 只每天换出最差的 5 只exchange_kwargs里才是决定回测结果真实性的部分——开盘/收盘费率、涨跌停阈值limit_threshold: 0.095、按收盘价成交。完整文件可对照 LightGBM 示例配置。因子层表达式引擎比手写循环直观不想用现成的 Alpha158158 个因子时可以自己拼因子。D.features()接收字符串表达式内置Ref取 N 日前、Mean、Std、Sum等算子多只股票并行计算不需要为每只股票写循环from qlib.data import D # 5日动量近5日均价相对昨日收盘的涨幅 fields [($close - Ref($close, 1)) / Ref($close, 1)] data D.features([SH600000], fields, start_time2020-01-01)表达式算子的实现都在 表达式算子模块 里想加自定义算子就在这个模块里扩展后注册。看结果IC、分组收益与最大回撤回测报告回答两个问题模型打分有没有预测力IC 系列以及组合层面赚不赚钱收益/回撤系列。跑通上面的示例后装.[analysis]依赖并执行examples/workflow_by_code.py即可生成图形报告。预测信号按分数分组的累积收益——最理想形态是各组呈扇形展开、高分组持续在上预测分数与实际收益的 IC 序列观察它是否稳定为正组合层面的最大回撤注意区分带成本与不带成本两条曲线差值就是交易成本的代价踩坑与调优现象原因一句话解法KeyError: $xxx读不到某字段bin 数据里没这个字段社区数据与官方数据字段集不同先跑python scripts/check_data_health.py check_data --qlib_dir ~/.qlib/qlib_data/cn_data体检测试期收益高得反常train/valid/test 三段区间重叠或fit_end_time晚于测试起点用了未来信息检查 yaml 里segments与fit_start_time/fit_end_time保证严格先后回测收益虚高没计成本或deal_price: close按当日收盘价成交实际次日才能成交对照port_analysis_config的exchange_kwargs确认费率与成交价假设跑起来内存爆掉最小要求 16G 内存Alpha360 特征量比 Alpha158 大一倍多内存不足先缩时间段或换 LightGBM Alpha158 验证流程import qlib导入的不是装好的包在与源码同级的目录如仓库根目录下运行进examples/或其他目录再执行qrun什么场景选 Qlib如果你的需求是用机器学习挖因子、建预测模型并在带 A 股交易约束的回测里验证Qlib 的因子表达式、模型库和回测引擎正好覆盖全链路如果你要的是事件驱动逐笔撮合回测或者要对接实盘柜台下单它不是合适的工具——Qlib 的回测面向组合级别的信号验证不提供实盘交易接口。收尾Qlib 的价值在于把因子→模型→回测→报告固化成一条可复现的流水线你只需要改配置而不是重写框架。下一步克隆仓库、拉一份 A 股日线数据、用上面的 qrun 命令把 LightGBM 基准跑通然后从改topk和成本参数开始做你自己的实验。【免费下载链接】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 RD process.项目地址: https://gitcode.com/GitHub_Trending/qli/qlib创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考