训练与回测的大致流程如下(以日频 A 股数据为例):
1. 初始化 Qlib
import qlib qlib.init(provider_uri="~/.qlib/qlib_data/cn_day")
把 provider_uri 指到你刚生成的数据。
2. 准备任务配置 Qlib 的一体化任务(训练+验证+回测)通过配置字典或 YAML 控制。参考 examples/benchmarks/LightGBM/workflow_config_lightgbm.yaml:
- dataset:数据集切分(训练/验证/测试时间段)、factor 列表等。 - model:模型及超参(如 LGBModel、MLPModel)。 - port_analysis_config: 回测参数(交易成本、持仓数量)。 你可以复制该 YAML 到工作目录,修改 start_time/end_time 等时间段以匹配你数据覆盖范围,也可以调整 segments 中的 train/valid/test 时间。
3. 运行任务脚本
python examples/benchmarks/LightGBM/workflow.py examples/benchmarks/LightGBM/workflow_config_lightgbm.yaml
或改成自己的配置路径。脚本会执行:
- 因子构建与数据集准备; - 模型训练与验证; - 回测并输出指标(如 IC、累计收益、夏普等)。
4. 查看结果 输出会保存到 mlruns/(默认启用 MLflow 记录):
- metrics: 训练/验证 IC、回测收益等; - artifacts: 包含回测净值曲线 report_normal.pdf、指标表 port_analysis_stats 等。
可选增强
- 换模型:配置里把 model 改成 DoubleEnsemble, GBDT, XGBoost 等; - 调参:调整 dataset.handlers 中的归一化、数据增强策略; - 多任务:运行 qlib/run_all.sh 或自定义 Python 脚本批量调用 workflow.run_task(task_config)。
执行前确认训练/验证/测试时间段落在你生成的交易日范围内;若需要自定义因子,可实现新的 handler 或在数据预处理阶段扩展列。