基于LSTM的上证指数预测
一、为什么使用LSTM
循环神经网络与传统神经网络模型最大不同之处是加入了对时序数据的处理,将某支股票的长期因子数据作为时间序列,取过去一段时间内的数据作为输入值。这样做最大的好处便是保持了信息的持久化,这和我们的直观感受也是相符的。另外LSTM通过三个门的控制很好解决了循环神经网络的梯度爆炸或梯度消失问题。
二、预测前提条件
- 历史会重演
上证指数从定性上来说,是一种非线性、非平稳的序列,这种特性要求模型学习它的非线性特性和非平稳带来的周期、趋势等特性。
三、预测目标
上证指数下一个交易日的指数预测
四、样本数据
沪深300指数数据,数据时间:2005-1~2018-8,其中3000+训练集,300+测试集。
- 为什么使用沪深300?
沪深300指数与大盘相关性很大,成分分别来自深市和沪市具有优势的上市公司,最主要的是有相应的沪深300ETF可以交易,方便后续回测。
五、数据预处理
- 数据标注
- 数据清洗
剔除样本里的异常数据,本实验未进行此操作。
- 数据标准化
将特征值减去均值、除以标准差。(均值和标准差来自训练集,千万不要使用未来数据哦)
数据一定要进行标准化,不标准化由于输入特征的差异很大,影响模型调整权重,模型会很难收敛。
六、模型
- 输入
开盘、最高、最低、总手(万)、涨跌、收盘、振幅 共7个指标,序列长度使用历史10天
- 输出
下一个交易日的收盘价
- batch size
128 (太小loss曲线波动会比较大,太大模型拟合很慢)
- 隐藏神经元个数
64
- 学习率
0.001
- 损失函数
mse = tf.reduce_sum(tf.square(y_ -y))
数据应该有个验证集,用来评价模型的,此次试验没有划分出来,所以用测试集评价模型的好坏很可能拟合了测试的数据。
七、测试结果
测试效果直观上感觉很好,但是这种情况更好好好分析。毕竟输入里带了上一个交易日的收盘价,预测下一个交易日收盘价,模型再差输出也会在上一个收盘价附近。
首先分析一下测试集每日的指数波动情况
再使用模型预测一下测试集每日指数,并绘制波动情况
从纵轴就可以看出测试集真实的波动相比预测值要小,虽然模型最终loss很小但是相比真实的波动误差还是比较大的。
八、回测结果
从回测上来看,模型未带来alpha,比基准收益差,也验证了上面的分析。
总结:实验是去年做的,也有些时间了,也有部分内容缺失,从价格预测价格上来看本身就不太靠谱,实验的出发点是历史会重现,首先这个问题就很难证明,另外模型要学习周期和趋势的特性,但是也存在很多很难确定的参数,例如使用历史的多久的数据作为输入,预测未来多久的收盘价等。
基于LSTM的上证指数预测相关推荐
- 基于LSTM的序列预测: 飞机月流量预测
基于LSTM的序列预测: 飞机月流量预测 循环神经网络,如RNN,LSTM等模型,比较适合用于序列预测,下面以一个比较经典的飞机月流量数据集,介绍LSTM的使用方法和训练过程. 完整的项目代码下载:h ...
- 手把手教你:基于LSTM的股票预测系统
系列文章 第七章.手把手教你:基于深度残差网络(ResNet)的水果分类识别系统 第六章.手把手教你:人脸识别的视频打码 第五章.手把手教你:基于深度学习的滚动轴承故障诊断 目录 系列文章 一.项目简 ...
- 交通状态预测 | Python实现基于LSTM的客流量预测方法
交通状态预测 | Python实现基于LSTM的客流量预测方法 目录 交通状态预测 | Python实现基于LSTM的客流量预测方法 基本介绍 研究回顾 模型结构 程序设计 参考资料 基本介绍 Pyt ...
- 基于LSTM时间序列分析预测拉尼娜年天气
基于LSTM时间序列分析预测拉尼娜年天气 天气预测 Import all necessary libraries Replace all column names by overwritting on ...
- 【ML】基于LSTM的心脏病预测研究(附代码和数据集,系列1)
写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大努力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌. 之前创作过心脏病预测研究文章如下: [ML]基于机器学 ...
- 基于LSTM的剩余寿命预测(PyTorch实现)
首先,我们需要准备数据.对于剩余寿命预测问题,我们需要有一些历史数据来训练我们的模型,并且需要一些测试数据来验证模型的性能.假设我们有一个包含多个传感器读数的数据集,我们可以将其转化为一个序列预测问题 ...
- 建立一个lstm_基于LSTM的双色球预测(一)
前言 人工智能目前是越来越火了,而我们本次的主题就是通过人工智能技术来预测彩票,来提高我们的中奖概率: 大家知道,彩票数据是按照每期一组数的顺序排列的,从第一期到最新的一期,实际上是时间序列的数据.跟 ...
- 基于LSTM实现股票预测
LSTM原理 前面的博客中使用传统的循环神经网络RNN,可以通过记忆体实现短期记忆进行连续数据的预测,但是当连续数据的序列变长时,会使展开时间步过长,在反向传播更新参数时,梯度要按照时间步连续相乘,会 ...
- 基于LSTM的股票价格预测
前言 本文通过LSTM来对股票未来价格进行预测,并介绍一下数据获取.处理,pytorch的模型搭建和训练等等. 数据获取 这里我使用tushare的接口来获取平安银行(000001.SZ)股票的历史1 ...
最新文章
- Mule web service调用中的复杂类型传递
- 面试题之发散思维能力:如何用非常规方法求1+2+···+n
- 关于JavaScript的编译原理
- 隐藏esp_汽车一键启车主必须知道的几个“隐藏”技巧
- 大学毕业后5年决定命运(强烈推荐一看)
- Hashtable combox绑定数据
- sudo rosdep init 出现 ERROR: cannot download default sources list from:
- CAD 绘图如何有效的控制精度?
- 输入法 箭头符号大全
- 苹果服务器国内维护,苹果中国iCloud服务器数据开始转移,这些问题你要注意!...
- AI绘画日赚千元?百度、谷歌已入局,流水线画师要被抢单了
- 初中英语语法(013)-动词
- HDU 5238 Calculator(中国剩余定理+线段树)
- 2022年的第一篇程序人生。。。
- 个人——网页设计之设计步骤及思考
- gdut-与蓝神一起戳气球 hnust-硬币翻转 - 博弈论
- 百度地图BMap is not defined(Bmap未定义)
- 简单项目-图书借阅系统
- 计算机程序的各个段【数据段、代码段等】
- pixi 平铺精灵 demo (二)