- 实现平台:BigQuant—人工智能量化投资平台
- 可在文末前往原文一键克隆代码进行进一步研究
滚动训练模块简介
滚动训练模块上线已经有一段时间了,接下来我们会简单介绍如何使用这个模块。
为了尽量避免策略失效,我们可以定期更新训练集数据,也就是通过滚动训练的方式更新预测模型以适应最新市场行情的变化,例如:
我们希望训练一个模型,训练集数据从2016-01-01起到最新数据止,每次模型训练所用数据最少train_data_min_days天,最大不超过train_data_max_days天,每train_update_days天更新一下模型。
我们生成N次滚动训练,对应训练集数据时间范围是:
a. 第一次滚动训练的开始日期为设置的start_date, 第一次滚动训练的结束日期为start_date + train_data_min_days对应的日期;
b. 第二次滚动训练的结束日期为:第一次滚动训练的结束日期+模型更新天数*1, 第二次滚动训练的训练集数据起始日期按下述逻辑确定:
- 如果 第二次滚动训练的结束日期 - 最大数据天数 >= 设置的start_date, 则第二次滚动训练的训练集数据起始日期 = 第二次滚动训练的结束日期-最大数据天数
- 如果 第二次滚动训练的结束日期 - 最大数据天数 < 设置的sta