沪深300指数进行择时,看看能否获取超额收益

一 研究问题
尝试对沪深300指数进行择时,看看能否获取超额收益。
当模型预测到指数未来10个交易日的收益率大,则买入,否则持有现金。
二 初步的结论
沪深300指数的未来10个交易日的收益具有一定的预测性性,弱可预测。
上图右边是样本内的预测效果。左边为样本外的预测效果。x轴--实际收益率,y--预测收益率
训练数据为2005到2014年的指数及宏观经济数据,样本外为最近3年的指数10日收益率
上图是交易结果净值走势图
交易胜率统计:
outsample测试天数:895 模型持股天数678 模型持有现金天数217
持股的678次预测中,预测对了434次,预测错了217次。
持有现金的217次预测中,预测对了121,预测错了96次。

三 一些细节的经验
试验中对使用了神经网络+强化学习模型、线性模型、随机森林、GBDT模型对比测试。以下为细节经验:

1 在股市这种充满噪声的数据中,线性模型作为一种简单的模型表现更鲁棒。
神经网络设计更灵活,有强大的学习能力。可惜在历史上学的的经验,在未来的股市操作上没有用。这似乎也印证了股市是一个混沌系统,未来很难预测。

2 刚开始的神经网络为5层深度的网络,模型输出区分度和线性模型差不多,但输出值的重心不稳定。然后尝试减少网络深度,只留下一层隐层。
模型在训练集上的表现反而非常好,比5层网络好。
把5层的神经网络缩减到一个隐层,隐层中有16个节点。神经网络在训练集合上比线性模型有更好的学习能力。但是在测试集合上这些学习到的规律并没有用。

3 继续缩减神经网络的结构,隐层去掉,只剩下输入输出层,等效为一个线性模型。神经网络的表现和线性模型一致。两次训练的神经网络的输出基本一致,也有细微区别(参数随机初始化)。

4 测试了用sum(abs(out-Y))作为损失函数,效果更差。
5 linearReg = linear_model.Lasso(alpha=0.001) #l1惩罚项 Lasso回归 效果不好
6 linearReg = linear_model.Ridge(alpha=0.2=1) #l2惩罚项 0.1的惩罚系数 对效果有轻微提升。

猜你喜欢

转载自blog.csdn.net/zhangqiangbeijing/article/details/79301176