基于多因子模型与LSTM的中证500成分股价格预测 组会汇报笔记

一、研究背景

1.1 现实背景

股票市场受宏观经济、行业周期、企业经营、市场情绪多重因素叠加,具有高噪声、非线性、强时间序列依赖特征,股价预测一直是量化金融领域的难点。
中证500指数成分股代表A股中盘成长企业,覆盖电子、医药、高端制造等新兴行业,流动性较好,是量化研究非常典型的研究样本。

传统的多因子模型擅长挖掘横截面收益,但是以线性建模为主,难以捕捉因子之间复杂的非线性交互关系;而单纯LSTM深度学习模型,如果输入特征质量较差,大量无效噪声因子会造成模型过拟合,预测效果受限。

因此本文研究目标:结合多因子特征筛选与LSTM时序深度学习,构建中证500成分股次日收盘价预测模型,探究因子筛选对时序预测任务的实际增益。

1.2 国内外研究简述

  1. 国外:大量研究证实LSTM在金融时序预测具备优势,同时也发现模型性能高度依赖输入特征;CNN、RNN也被用于股价预测,但长时序建模存在短板。
  2. 国内:国内学者多将小波变换、PCA等方法和LSTM结合做股价预测;但将LightGBM树模型做因子筛选,再对接LSTM时序网络,针对中证500中盘股的实证还有进一步探索空间。

研究意义

理论意义:验证树模型特征筛选与循环神经网络结合在A股中盘股时序预测任务的可行性。
实践意义:为量化投资的特征工程、时序预测建模提供实证参考。

二、研究方法论(完整技术链路)

整体流程:数据获取与预处理 → 因子池构建 → LightGBM时间序列交叉验证因子筛选 → 特征标准化 → LSTM模型构建与滑动窗口采样 → 设置对照组实验对比评估

2.1 数据获取与预处理

  1. 数据来源:Tushare金融接口;时间区间2015‑10‑01至2026‑01‑01;采用2025‑12版本中证500成分股名单。

提前获取2015年末数据,用于计算技术指标,规避初期样本缺失。

  1. 数据清洗规则

经过清洗后得到样本:90只中证500成分股,合计21万+交易日样本。

原始输入分为两类:
①基础行情特征:open、high、low、close、vol、amount;不参与LightGBM筛选,直接送入LSTM
②衍生因子池:动量、RSI、KDJ、ATR、估值、换手率等技术+财务因子,作为LightGBM筛选对象。

2.2 LightGBM因子筛选方法

  1. 预测标签使用对数收益率,改善标签分布,提升模型训练稳定性;
  2. 采用TimeSeriesSplit时间序列5折交叉验证,严格保证训练集时间全部早于验证集,杜绝未来信息泄露;
  3. LightGBM训练设置早停50轮,记录两类特征重要性:
  4. 取5折交叉验证平均重要性得分,选取top20因子作为筛选后的核心特征集。

筛选结果:gain与split指标下排名靠前因子重合度较高;WR_14、CCI_14、波动率、价格位置、短期反转、换手率、总市值等量价、情绪、估值类因子重要性靠前。

2.3 LSTM模型构建

  1. 特征标准化:仅使用训练集统计的均值与标准差做Z‑score标准化,再映射到验证集、测试集,避免数据泄露。
  2. 输入维度:6维原始行情特征 + 20维筛选后因子,合计26维;
  3. 网络结构:双层堆叠LSTM,隐藏层维度均为32,设置Dropout=0.1做正则,输出预测对数收益率,再换算为预测收盘价;
  4. 样本构造:滑动时间窗口,窗口长度20个交易日,利用过去20天序列预测下一日收盘价;
  5. 数据集划分:8:1:1划分训练集/验证集/测试集;验证集连续10轮损失不下降执行早停。

2.4 对照组实验设计(控制变量)

保持优化器、学习率、batch size、数据集划分全部一致,仅修改模型结构或者输入特征:

  1. CNN对照组:一维卷积网络,提取序列局部模式;
  2. RNN对照组:基础两层RNN网络;
  3. 全因子LSTM对照组:网络结构与主模型完全一致,输入不经过LightGBM筛选的全部因子。

2.5 模型评价指标

采用每只股票测试集指标再取算术平均,指标包括:MSE、RMSE、MAE、RMAE、$R^2$。

主模型LSTM(筛选因子) CNN模型 RNN模型 全因子LSTM
平均MSE 0.638932 0.659654 0.628997 0.62478
平均RMSE 0.558475 0.812191 0.793093 0.552783
平均MAE 0.377678 0.386496 0.375309 0.374475
平均RMAE 0.558475 0.567891 0.553960 0.552783
平均价格$R^2$ 0.952146 0.950065 0.952257 0.952485

实验核心结论:

  1. LSTM系列模型RMSE显著低于CNN、RNN,说明门控结构对20步金融时序建模更有优势;
  2. LightGBM筛选后的模型,输入维度大幅下降,但精度与全因子LSTM基本持平,RMSE仅相差0.9%;因子筛选的收益主要体现在降低特征维度、降低训练开销、抑制噪声,而非大幅提升预测精度。
  3. 全部模型$R^2$均大于0.95,高$R^2$来源于股价本身强自相关性,不能等同于具备超额收益预测能力;
  4. 模型能够拟合股价整体趋势,但在拐点、极值点处预测存在滞后。

三、研究缺陷与不足

分为数据与因子层面、模型层面、实验设计层面、应用落地层面

3.1 因子与数据层面

  1. 当前因子池以技术量价指标为主,基本面仅引入少量季度财务指标,缺少宏观经济指标、行业景气度、舆情新闻文本特征,因子体系维度受限。
  2. 样本池仅选取90只中证500成分股,样本股票数量有限,没有做跨股票池泛化验证(中证1000、沪深300等),模型外部泛化能力未得到检验。
  3. 财务数据为季度低频,和日频行情数据简单拼接,没有做更精细的低频‑高频对齐处理,存在时间粒度错配问题。

3.2 模型与超参数层面

  1. LSTM网络超参数(隐藏层维度、dropout、窗口大小、学习率)依靠经验与参考文献设置,未开展系统网格/贝叶斯超参寻优,模型结构不是理论最优。
  2. 对比对照组模型同样没有做超参遍历调优,当前对比结果只能代表该组参数下的表现,不能代表CNN、RNN模型的理论上限。
  3. 模型仅做单步预测(预测未来1天收盘价),没有做多步滚动预测、波动率预测任务。

3.3 实验设计的局限性

  1. 评价指标使用价格层面的MSE、RMSE、$R^2$,属于回归误差指标;没有针对涨跌方向准确率、回测收益、最大回撤这类投资业务指标做评估。高拟合优度不等于可以产生投资收益。
  2. 虽然做了时间序列交叉验证用于因子筛选,但神经网络训练没有采用滚动回测的样本训练范式,和真实量化策略逐期调参的场景仍有差距。
  3. LightGBM筛选只看特征重要性得分,没有做因子的IC、IR、因子衰减检验,缺少对因子有效性的金融层面校验。

3.4 现实落地层面

  1. 只完成价格拟合预测任务,没有基于预测结果构建完整交易回测策略,无法评估模型在实盘模拟下的盈亏表现。
  2. 未考虑滑点、交易手续费、涨跌停、流动性约束等实盘交易约束,距离实际量化投资使用还有很大距离。

四、后续改进方向

  1. 扩充因子库:加入宏观指标、行业因子、舆情特征,完善低频财务因子和日频行情的对齐处理;
  2. 超参数优化:使用贝叶斯优化对LSTM、对照组模型统一寻优,保证对比公平;
  3. 丰富评估体系:增加涨跌方向预测准确率,搭建回测框架,增加收益、回撤、夏普比率等投资类指标;
  4. 扩展任务:开展多步滚动预测;增加中证1000、沪深300样本,验证模型跨池泛化能力;
  5. 因子检验:对筛选出的核心因子补充IC、IR等量化因子有效性检验。