最近看《DIVE INTO DEEP LEARNING》,根据其中的RNN章节,找个项目进行实践一下。首先说效果,很不理想,这也是意料之中的,毕竟股市、债市各种不可控、不可量化的因素太多了,权当做练习RNN就行。
目的:根据前N(5,10,15)天的行情,使用GRU,LSTM,BiLSTM对可转债次日开盘价进行预测。
数据:把每只转债的当日行情,按分钟处理,这样每天就有242组数据,每组数据包含(当时价格、昨日收盘价、今日开盘价,当时均价,当时交易量)五个特征。时间步设置为N,所以输入 数据的维度为[N,242,5]。
数据来源:新浪和中泰近一年的每日分时数据。
模型:GRU,LSTM,BiLSTM
激活函数:ReLU,Tanh
损失函数:MSELoss,LiLoss
优化函数:Adam,SGD
学习率:0.001
硬件:使用RTX 2060进行加速
瓶颈:因为所有数据都存储在mysql表中,每次加载处理数据占用时间最多。使用GRU/LSTM,GPU DUDA占用率40%,使用BiLSTM是占用率99%。
训练结果:对训练后的参数应用于新数据上,只能说大部分预测数据接近于开盘价,但是无法预测大幅度变化的开盘价。
总结:好像对起伏不大的数据有点作用,但是对真正的股市、债市意义不大。