金融时间序列预测,基于LSTM神经网络的股票价格预测,MATLAB代码



MATLAB代码实现了一套基于LSTM神经网络的股票收盘价预测与可视化分析。其研究背景源于金融时间序列预测中传统统计模型对非线性关系捕捉不足的问题,利用深度学习挖掘股价与成交量、开盘价、最高价、最低价及技术指标间的复杂依赖关系,以提升预测精度并辅助投资决策。

主要功能

  • 单步预测模型评估:使用基础OHLCV数据,构建延时输入窗口,训练LSTM网络预测下一交易日收盘价,并输出R²、RMSE、MAE、MAPE等评估指标及拟合对比图。
  • 多输出未来趋势预测:引入移动平均线、RSI、MACD、波动率等增强特征,训练双向LSTM网络一次性预测未来连续5个交易日的收盘价序列。
  • 可视化与K线增强:绘制历史与预测趋势曲线,并生成含成交量、移动平均线的彩色K线图,直观展示市场结构。

算法步骤与技术路线

  1. 数据导入与预处理
    PriceData.xlsx读取日期、成交量及OHLC价格,构建初始特征矩阵。
  2. 单步预测模型构建
    • 设定延时步长(15天)与预测步长(1天),通过滑动窗口生成监督学习样本。
    • 划分训练/测试集(70%/30%),对输入特征和输出收盘价进行归一化至0,1
    • 构建单层LSTM网络(10个隐藏单元),采用Adam优化器训练,输出下一日收盘价。
    • 反归一化预测值,计算回归评估指标并绘制拟合曲线。
  3. 多输出预测模型构建
    • 计算5日/10日均线、14日RSI、MACD线及5日波动率,将原始数据扩展为10维增强特征。
    • 以15天历史窗口预测未来5天收盘价,构造多输出监督样本。
    • 设计双向LSTM网络(64单元)配合Dropout正则化与全连接层,训练时加入验证集监控。
    • 利用末段窗口预测未来5个交易日收盘价,并跳过周末生成连续交易日日期。
  4. 可视化增强
    • 绘制历史与预测收盘价对比曲线(含局部放大视图)。
    • 生成最近60日K线图(红涨绿跌)并叠加MA5/MA10均线,下方附成交量柱状图。

公式原理

  • 监督样本构造
    输入序列 Xi=vi:i+k−1,...,ci:i+k−1X_i = \\mathbf{v}_{i:i+k-1}, \\dots, \\mathbf{c}_{i:i+k-1}Xi=vi:i+k−1,...,ci:i+k−1 (k=15k=15k=15 天),目标 Yi=ci+k−1+ZY_i = c_{i+k-1+Z}Yi=ci+k−1+Z (单步时 Z=1Z=1Z=1,多输出时 Z=1...5Z=1\dots5Z=1...5)。
  • 归一化
    Min-Max线性映射:x′=x−xmin⁡xmax⁡−xmin⁡x' = \frac{x - x_{\min}}{x_{\max} - x_{\min}}x′=xmax−xminx−xmin,反归一化恢复实际量纲。
  • 评估指标
    • R2=1−∑(yi−y^i)2∑(yi−yˉ)2R^2 = 1 - \frac{\sum (y_i - \hat{y}_i)^2}{\sum (y_i - \bar{y})^2}R2=1−∑(yi−yˉ)2∑(yi−y^i)2
    • RMSE =1n∑(yi−y^i)2= \sqrt{\frac{1}{n}\sum (y_i - \hat{y}_i)^2}=n1∑(yi−y^i)2
    • MAE =1n∑∣yi−y^i∣= \frac{1}{n}\sum |y_i - \hat{y}_i|=n1∑∣yi−y^i∣
    • MAPE =1n∑∣yi−y^iyi∣= \frac{1}{n}\sum \left|\frac{y_i - \hat{y}_i}{y_i}\right|=n1∑ yiyi−y^i
  • 技术指标
    • RSI(14):RSI=100−1001+AvgGainAvgLossRSI = 100 - \frac{100}{1 + \frac{\text{AvgGain}}{\text{AvgLoss}}}RSI=100−1+AvgLossAvgGain100
    • MACD线:快线EMA(12)与慢线EMA(26)之差。

参数设定

参数名 单步模型值 多输出模型值
延时窗口(kim) 15 15
预测步长 1 5
LSTM单元数 10 64(双向)
Dropout比例 --- 0.2
最大训练轮数 500 400
初始学习率 1e-3 0.001
学习率下降因子/周期 0.1 / 400 0.5 / 200
批大小 128 64
训练集比例 0.7 0.7

运行环境

  • 软件要求:MATLAB R2020b。
  • 数据文件 :同目录下需存在PriceData.xlsx,包含Dates, Volume, Open, High, Low, Close列。

应用场景

  • 量化投资研究:为策略开发提供价格趋势预测参考,辅助制定买卖时机。
  • 风险预警:通过预测序列的波动性评估潜在回撤风险。
  • 教学演示:展示LSTM在金融时序预测中的完整流程,包括特征工程、网络构建与可视化。
  • 技术分析增强:将预测结果与传统K线形态结合,提升图表分析的客观性。

完整代码私信回复金融时间序列预测,基于LSTM神经网络的股票价格预测,MATLAB代码

相关推荐
HZZD_HZZD2 天前
非侵入式负荷监测选`Seq2Point`还是`LSTM`?合众致达实测:洗衣机分解F1达0.87、`NDE`误差降27%,附PyTorch完整实现
人工智能·pytorch·lstm
技术小黑3 天前
RNN算法实战系列06 | LSTM 实现糖尿病探索与预测
rnn·算法·lstm
机器学习之心3 天前
分而治之:K-means 聚类 + LSTM 的多输出回归实战
lstm·kmeans·聚类·多输出回归
Tasiorh4 天前
《基于LSTM-RNN-CBAM模型和动态规划模型的交易策略》
rnn·lstm·动态规划
焱童鞋6 天前
基于DJL的LSTM水文预报模型训练完整指南
人工智能·rnn·lstm
阿图灵8 天前
基于 LSTM 的中文电商评论情感分类:从数据处理到 91% 准确率实战
人工智能·深度学习·分类·nlp·lstm·情感分类
在学了加油10 天前
LSTM-糖尿病预测模型优化探索
人工智能·rnn·lstm
Lee_jerome14 天前
python神经网络编程入门(二十)——RNN LSTM 数学原理与结构拆解
深度学习·numpy·lstm·参数量·sigmoid·tanh·门控机制
在学了加油17 天前
LSTM-糖尿病探索与预测
人工智能·rnn·lstm
遥感知识服务19 天前
RNN、LSTM、GRU小白入门:Windows一键运行时间序列预测
rnn·gru·lstm