用Qlib模拟实战中机器学习多因子预测的流程:必须滚动预测

绝大多数同学学习qlib,是从qlib提供的基本案例workflow_by_code.ipynb开始的,从文件名workfow可以看出,它隐含了一个基本的使用机器学习执行多因子预测的基本流(工作流)。

这个流程概括出来包括如下步骤:

  1. 设置股池, 如all或csi300
  2. 加载行情
  3. 生成因子和标签
  4. 因子和标签预处理
  5. 设置时段(训练、验证、测试)
  6. 训练
  7. 预测

但是,这个流程只是最基本的研究流程。如果你觉得学习了这个流程就可进行实战,那就大错特错了。为啥这样说呢?先看看例子文件中的一个时段配置如下:

这里,最终模型绩效评估是要用测试集时段的数据来测试的。按此配置,是在训练和验证集上训练模型,然后用这个训练好的模型去预测测试集中每一天的收益率。这就有一个问题,测试集跨度4年时间,相当于在2020年你还在使用4年前模型来预测,这样的评价方式明显不符合实战流程。在实战中,是滚动训练和预测的,比如执行月度调仓,那么可能每月底都要重新训练和预测,这里滚动步长step就是一个月。因此,在进行模型绩效评价时,也要模拟实战这种滚动的过程,这样的评价结果才更加符合实际。

市面上讲股票机器学习多因子预测的文章,通常都是按照workflow_by_code.ipynb的流程模式讲,没有讲更加符合实际的滚动训练与预测(walkforward或rolling)。这是因为,滚动操作的代码比较复杂,甚至很多作者都不知道滚动训练与预测的方法。

针对这个短板,我们开发了使用qlib进行滚动训练预测与回测的视频课程“扫地僧微软AI量化平台Qlib教程系列二:滚动训练、预测、回测与实战”,期望将机器学习用于实战的同学可以去看看,课程头几节是免费的,详细介绍了qlib中滚动训练预测的原理。

因子研究还有一个重要问题,就是预测回测好后,怎样生成订单供给实盘使用?课程里也提供了代码和方法,后面我们会写文章专门讲解。

课程另一个亮点是,将qlib预测结果喂给backtrader,由backtrader来执行回测,这样更加灵活,课程给出了backtrader实现topkdropout策略的源码。

  • 11
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

扫地僧量化

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值