第五列 ALL_OLS 中,展示了以所有子模型的预测值为因子,采用 OLS 算法搭建的集成模型的表现。虽然其 R^2 在测试集上表现并非最佳,但由于其避免了模型选择的偶然性,并以此降低了单个模型的失效对整体的影响,因此选择将其作为最终模型。 在第三行中,采用决策树对 ALL_OLS 模型在训练集中的输出值与实际值进行最优分组,得到其切分点。然后将 ALL_OLS 在验证集中做出的预测值以前一步中得到的切分点进行分组。柱形图(上)为验证集每组预测值的均值,柱形图(下)为其对应真实值的均值。据此,可以直观地看出,模型确实具备一定的预测能力。不过,由于算法的复杂性和数据量的限制,模型背后的经济逻辑尚待未来进一步探究。 预测结果离散化出于对模型稳定性的追求,下面采取两步方法。第一步上一节提到过的采用集成模型的方法,这减少了单个模型失效对整体的影响以及模型选择上的偶然性和主观性。第二步则为将预测结果离散化。离散化可以减少过拟合的概率,提升模型泛化能力,从而更加自信地在未知数据上使用模型。 预测结果离散化的大致流程如下: 首先,在训练集中得到了 ALL_OLS 模型输出的对于真实涨跌幅得到拟合值,将拟合值通决策树进行切分得到最优分组,此时便得到了一张映射表: 图 3.2 离散化映射表 当将验证集数据输入训练好的 ALL_OLS 模型后,它会输出一个预测值,然后便可以通过映射表将其转化为离散值。若这个预测值为 0.01,那么便将其根据上述映射表转换为 2,若预测值为 0.05,那么转换后的值则为 4。本研究中采取了左开右闭的处理方式,但改变这一设置不会对策略产生决定性的影响。 模型应用模型基于 BTC 合约多空持仓比数据,因此,这一策略主要的操作标的也是 BTC。根据模型预测结果的分组,我们构造了如下的策略。 模型会预测未来 72 小时的 BTC 走势,但它每天都会产生一个预测结果,即一个 0 到 4 的打分。持仓的范围为 [-1,1],即满仓做空至满仓做多。取过去三日的打分结果均值,作为今日的持仓指标,用于指导持仓。 举例而言,若过去三日的打分结果分别为 2,3,3,则三日的平均分为 2.67 分,将 2.67 在 [0, 4] 区间的位置映射到 [-1, 1] 区间,得到今日持仓比例应为 0.335,即使用 33.5% 的资金做多。 策略构造基于这一思想,可以构造三个策略: 五层策略:即使用-1,-0.5,0,0.5,1 的仓位比例对应 0,1,2,3,4 的打分,这一构造方式相对中性,不包含对市场的先验主观判断,并且仓位相对连续,调仓成本较小; (责任编辑:admin) |