阅读材料:Bao 等发表于 Information Fusion 的 Data-driven stock forecasting models based on neural networks: A review(2025,102616)。
我读完以后,先改掉了一个问题
以前我会问:“股票预测里哪种网络最好?”读完这篇综述后,我觉得这个问题问得太早。先要问的其实是:我到底在预测什么,模型在什么时候能拿到哪些信息,结果最后是拿误差表看,还是拿真实交易看。
一篇股票预测论文至少有这几层东西:
预测目标:价格、收益率、涨跌、排名,还是组合?
输入信息:行情、文本、关系图、事件,还是多模态?
模型假设:它更擅长记忆、找局部模式、建长依赖,还是传播关系?
评估方式:是不是严格按时间外测试?
交易约束:成本、滑点、换手和风险加进去后还剩什么?
网络结构只是其中一层。这个认识对我很有用,因为很多看起来“更先进”的模型,最后可能只是在一个宽松的数据切分里赢了几位小数。
这篇综述到底覆盖了什么
作者回顾了 2015–2023 年间 63 篇期刊和会议工作,把数据驱动的神经网络股票预测分成六类:RNN、CNN、Transformer、GNN、GAN 和 LLM。论文还整理了常用市场数据和指标,并把问题落在四个地方:数据表示、长期依赖、泛化与解释、基准与评价不统一。
我觉得这套分类适合用来选研究方向,但不适合直接排名模型。六类网络学到的东西不一样:
| 模型路线 | 我会用它解决什么 | 我最担心什么 |
|---|---|---|
| RNN / LSTM / GRU | 历史状态如何一步步影响现在 | 长序列记不住,训练难并行 |
| CNN / TCN | 局部形态、短期冲击、多尺度波动 | 感受野是人为设定的,未必看得到全局 |
| Transformer | 远距离时点和多模态信息之间的关系 | 成本高,长窗口不保证更准 |
| GNN | 股票、行业、事件和知识图谱之间的关联 | 图从哪里来,会不会把未来关系带进来 |
| GAN | 数据增强、极端情景和分布模拟 | 生成得像,不等于保留了可交易信号 |
| LLM | 新闻、公告、财报、社交文本的语义 | 时间戳、数据许可、幻觉与黑箱解释 |
股票预测不是一件事
综述里混合出现了价格预测、趋势判断、横截面排名和交易策略。它们的输出不同,指标也不该混着用:
| 任务 | 常见输出 | 适合先看什么 |
|---|---|---|
| 回归 | 下一期价格、收益率、波动率 | MAE、RMSE、MAPE / SMAPE |
| 分类 | 涨跌、买卖持有 | Precision、Recall、F1,不只看 Accuracy |
| 排名 | 一篮子股票的预期收益排序 | MRR、NDCG、IC、RankIC |
| 策略 | 持仓或组合收益 | 年化收益、Sharpe、最大回撤、换手和成本 |
我现在会很警惕一种跳跃:RMSE 低一点,就直接说策略更赚钱。价格误差和投资收益之间隔着选股阈值、仓位、手续费、滑点、冲击成本、做空约束和风险管理。一个回归器误差不小,也可能把方向抓得不错;反过来,一个误差很漂亮的模型,扣掉成本后可能没有任何价值。
RNN:我会把它看成时间记忆的基线
RNN 按时间顺序更新隐藏状态,LSTM 用遗忘门、输入门、输出门缓解梯度消失,GRU 用较少的门做近似,BiLSTM 在训练样本里从双向编码上下文。综述里还列了 RNN 与 ARMA、指数平滑、PCA、EMD / CEEMDAN 等方法结合的工作。
我认为 RNN 路线的价值不在“它老”,而在于它逼我先把最基本的时序依赖做好。单资产、规则频率、样本量不大的任务,LSTM 或 GRU 依然是很难绕开的基线。
但我不会因为 BiLSTM 在离线实验里表现好就直接用它做实时预测。双向编码如果在特征构造时碰到了未来方向,部署时就站不住。RNN 的提升也常常来自分解和特征工程,所以论文应把“分解带来的收益”和“网络带来的收益”拆开报。
CNN 和 TCN:局部形态到底有没有信息
一维 CNN 擅长扫过局部窗口,找成交量突变、价格形态和多尺度波动。ResNet 让网络能做得更深;TCN 用因果卷积和扩张卷积扩展感受野,同时保持并行。综述还提到把时序转成 GAF 图像,再让视觉模型学习图案,以及 CNN-LSTM 这种“先抽局部特征、再记时间演化”的组合。
我会先问:这些局部形态真的跨时期稳定吗?技术图形可以被编码得很漂亮,但编码本身不会凭空增加预测信息。使用图像化、深卷积或多尺度模块时,至少应和原始序列模型、简单卷积、线性模型比较,并控制参数量。
Transformer:我不再把它当默认答案
自注意力能让模型在不同时间位置之间直接建立联系,因此 Transformer 很适合长依赖和多模态融合。综述里提到层次化 Transformer、多 Transformer 加 Bagging、Stockformer,以及针对长序列的 Reformer、Informer、Autoformer 和动态集成版本。
不过这篇综述有一个我很认同的提醒:回看窗口变长,不代表预测就会更好。已有工作甚至发现简单线性模型在一些长时序基准上超过复杂 Transformer。金融数据里噪声大、状态切换快、有效样本又不一定多,注意力层很容易学到漂亮但不稳定的权重。
如果我用 Transformer,会先让它和 TCN、LSTM、线性基线在同一滚动窗口、同一特征、同一调参预算下比。只有它在多个市场状态里都能保持优势,我才会相信注意力确实学到了有用关系。
GNN:真正难的不是网络,是那张图
股票不是孤立序列。行业、供应链、共同持股、新闻实体、收益相关和宏观冲击都会让它们互相影响。GNN 把股票或事件看成节点,把这些关系看成边;GCN 聚合邻居信息,GAT 学习邻居权重,超图可连接多个实体,动态图试图跟着关系变化更新。
这条路线特别适合横截面排名和多资产预测。综述里有知识图谱、多模态图、时序图卷积、关系图注意力和动态关系路由等例子。它们让我看到一个方向:比起盯着单只股票的一条曲线,市场里“谁和谁一起动、为什么一起动”也许更值得学。
但 GNN 最容易被忽略的地方是图的可得性。行业标签什么时候更新?供应链关系是不是事后整理的?相关系数是不是用全样本算出来的?新闻实体关系有没有使用未来报道?这些问题如果不说清,模型性能很可能来自一张带未来信息的图。
GAN:我更愿意把它放在情景和数据问题上
GAN 由生成器和判别器对抗训练。综述中的工作把它用于价格 / 趋势预测、新闻和金融数据的联合学习、交易行为建模,以及策略校准。它最吸引我的地方,是有机会补足稀少的极端状态,而不是只是再做一个价格回归器。
可问题也在这里。生成样本看起来像真实行情,不表示它保留了厚尾、波动聚集、跨资产联动和风险暴露。GAN 训练本身也不稳定,会有模式坍塌。要用它增强数据,我会检查下游策略表现、极端情景覆盖、收益分布和尾部风险,而不是只看生成曲线像不像。
LLM:文本信息有价值,但时间戳比模型名字更重要
综述把 LLM 路线分成三种:直接利用大模型做判断,在金融数据上微调,把预训练模型当成文本或时序特征提取器。BERT、FinBERT 主要处理新闻、公告和财报语义;TimeGPT、Time-LLM 等则尝试把基础模型能力带到数值时序上。
我对这条路线最感兴趣,也最谨慎。新闻、电话会议和公告里确实有价格序列没有的信息,可是金融文本的时间问题非常麻烦:发布时间是在开盘前还是盘后?公告后有没有修订?数据是原文还是聚合后的?不同来源会不会重复?只要有一步没有对齐,模型就可能在无意中读到了未来。
LLM 给出的解释也不能直接当证据。它可以帮我检索、抽取事件、整理情绪和生成候选因子,但最终的预测和回测仍应由可追溯的数据管线完成。
数据和指标,我会从一开始就写清楚
综述列出的输入不仅有 OHLCV、技术指标和宏观变量,还包括新闻、财报、社交媒体、音频、图像和知识图谱。我的经验是,数据越多,首先要补的不是模型层,而是数据说明:
这条数据何时公开?
是否做过复权?
成分股名单是不是有幸存者偏差?
归一化参数是不是只用训练期算?
缺失、停牌、退市、换股和时区怎么处理?
指标也必须按任务配套。除了回归和分类指标,我会把排名指标、年化收益、波动、夏普、最大回撤、换手率和净成本后收益放在一起报告。这样结果才更像一个能被别人复核的金融实验,而不是一张孤立的机器学习成绩单。
这篇综述提到的四个问题,我会这样理解
数据表示不够。 一维价格和成交量很单薄,自监督学习、时序转图像和多模态融合可以扩展信息,但要做逐模态消融,别把复杂输入当成收益保证。
长期依赖不够。 LSTM、Transformer、Informer、SSM、Mamba 都在处理更长序列,但市场里的老信息会过期。对我来说,概念漂移、滚动再训练、状态切分和持续学习比无限拉长窗口更实际。
泛化和解释不够。 模型在一个指数、一个频率、一个牛熊周期上有效,不代表换到别处还有效。LIME、SHAP、注意力图只是线索;我更关心它们换市场、换窗口、换成本假设后是否还稳定。
数据集和指标不统一。 这是最朴素也最棘手的问题。不同论文用不同市场、不同预测期、不同调仓频率和不同成本假设,横向排名其实很难成立。统一的时间切分、数据版本、交易假设和报告模板,比再加一个网络模块更需要投入。
我怎样用它指导后续研究
如果我从零开始做一篇股票时序文章,我会先把流程固定下来:
明确任务和可得信息集
↓
建立买入持有、线性、树模型、LSTM 等朴素基线
↓
按时间滚动验证,所有选择只在训练 / 验证期完成
↓
按任务报告预测、排名和金融结果
↓
加入成本、滑点、换手和风险约束
↓
跨市场、跨阶段、跨随机种子复查
↓
最后才判断复杂模型是否值得保留
多股票选股时,我会优先考虑动态关系图加排名目标;事件驱动短期预测时,我会把新闻时间戳和实体关系做好;跨周期研究时,我会把漂移检测和持续学习放到模型核心,而不是写在未来工作里。
读完后的判断
这篇综述没有给我一个“终极模型”,反而让我更清楚地看到,股票预测的难处根本不只在网络。时序、文本、关系和交易约束都在变化,模型只要有一个环节偷看了未来,或者忽略了成本,结果就会很快失去意义。
以后我读到一篇股票预测论文,会先问三句话:信息在当时真的可得吗?优势在未来窗口还能复现吗?收益在成本和风险之后还成立吗?这三句没回答清楚,模型名字再新,也很难让我真正信服。