主要原理
CNN-LSTM 混合模型首先使用 CNN 来提取时间序列数据的特征,然
后将特征输入进 LSTM 模型中来进行下一交易日股票收盘价的预测。
数据处理
- 使用数据
作者发现加入volume,pctChg后效果变差,可能原因是加入了相关性较低的特征后造成了数据冗余,使得模型的稳定性降低,导致最终预测的结果不理想。故本文不使用和收盘价相关性较低的股票每日交易数量和每日股票涨跌幅,最终所用到的沪深 300 指数交易日交易数据为每日的开盘价(Open)、收盘价(Close)、最高价(High)和最低价(Low)。 - 数据预处理
使用 python 中 sklearn 库提供的 MinMaxScaler 函数对数据进行归一化处理,
使输入数据的值落在[0,1]区间当中。
训练参数
batch_size 128,epochs 300。
训练结果
batch_size 设置为 128 时,平均 loss 大小,
即平均 MSE 大小为 0.00039,通过使用 python 对数据测试集的涨跌预测准确率进行计
算,发现 CNN-LSTM 模型的未来 30 天涨跌预测准确率为 62%,而未来 10 天的涨跌
预测准确率可以达到 67%。
参考文献《基于 CNN-LSTM 混合模型的股价预测及量化投资设计》