本项目是我在课程中的一个实践,选取了贵州茅台(消费板块)、大众运输(交通板块)、工商银行(金融板块)和中石化(能源板块)四只 A 股代表性股票,利用深度学习中的长短期记忆网络(LSTM)对“月度涨跌趋势”进行预测,最终模型在四只股票上的趋势预测准确率均超过 90%(调参还是缺少经验,欢迎批评指正)
我首先从Tushare Pro平台批量获取了2010年以来的日线数据,涵盖开盘价、最高价、最低价、收盘价、成交量等关键信息,并对日期格式统一、缺失值进行线性插值、剔除异常值,确保时间序列的完整与连续。
为了增强模型对市场波动和情绪的捕捉,我在原始价格数据基础上构造了10日、20日和50日移动平均线(MA10、MA20、MA50)相对强弱指数(RSI)
以及指数平滑异同移动平均线(MACD)
等技术指标,这些特征有效反映了短期与中期的趋势信号。
最后,对每只股票的日收益进行了统计分析和可视化处理,结果显示其分布近似正态分布,尽管均值接近于零,这表明短期内的价格变动具有很强的随机性。
在模型设计阶段,我首先尝试了单层全连接神经网络,但实验结果显示训练损失远低于测试损失,预测误差较大,难以提取价格序列中的长短期依赖,实用价值有限。为此,我引入了深度学习中专门处理序列数据的长短期记忆网络(LSTM)。最终采用双层 LSTM 架构,每层输出后依次添加 BatchNormalization 和 Dropout(丢弃率0.2),并在线性全连接层中加入 L2 正则化,以显著抑制过拟合现象。超参数方面,我将学习率从0.001调低至0.0003,将时间窗口设为60天、批量大小设为16,并启用了早停(EarlyStopping)与动态学习率衰减(ReduceLROnPlateau)机制,使模型能够在验证集性能不再提升时及时停止训练,同时自动调整学习率以获得更佳收敛效果。
训练完成后,我认为模型不足以准确实时捕捉每一天的价格变化,我在测试集上对四只股票的月度涨跌趋势进行了评估。结果显示,模型对大众运输的预测最为精准,趋势预测准确率达到约92%;对工商银行和贵州茅台的预测准确率分别约为91%和90%;即使是受外部因素影响较大的中石化,模型也实现了90%左右的趋势预测准确度。这一表现证明,基于双层 LSTM 的深度序列模型能够稳健地捕捉不同板块股票的月度走势特征。通过绘制真实收盘价与预测收盘价的趋势对比图,可以直观地看到预测曲线与真实曲线的高度重合;残差分布近似正态且均值接近零,说明误差无明显系统性偏差。
作为一名学生亲手完成的端到端项目,我深刻体会到从数据获取与特征工程到模型构建与超参数调优的完整流程,也意识到仅依靠历史价格和常规技术指标在市场剧烈波动时仍存在局限。相较于实时趋势,月度趋势预测更符合长期投资策略的要求,同时也为未来针对更复杂市场预测任务的研究奠定了坚实基础。后续工作可以考虑引入宏观经济变量、舆情情绪数据,或将 Transformer、Attention 机制应用于序列预测;同时,可进一步探索多资产联合预测与强化学习调仓策略,以提升模型在实盘投资中的综合价值。