“DFT: A Dual-branch Framework of Fluctuation and Trend for Stock Price Prediction”
股票价格预测在量化投资中至关重要,但现有方法存在两个主要问题:未能捕捉短期波动和不足以探索股票间的时间关系。传统机器学习方法需手动构建大量金融指标特征,且难以建模股票间复杂的动态关联。现有深度学习方法忽视了个股波动信息的重要性,未能有效区分趋势与波动,导致信息干扰。
本文提出双分支波动与趋势框架(DFT),分别提取波动和趋势特征,避免信息干扰,提升预测能力。DFT通过设计的分解模块有效提取短期波动和趋势信息,并建模时间变化和因果关系。实验表明,DFT在多个指标上优于现有方法,排名指标提升300%,投资组合指标提升400%。
论文地址:https://arxiv.org/pdf/2411.06065
Github地址:https://github.com/cq-dong/DFT_25
摘要
股票价格预测在量化投资中至关重要,但现有方法存在两个主要问题:未能捕捉短期波动和不足以探索股票间的时间关系。高波动性和复杂市场相关性对准确预测股票价格至关重要。本文提出双分支波动与趋势框架(DFT),将股票分解为趋势和波动成分。DFT通过设计的分解模块有效提取短期波动和趋势信息,并建模时间变化和因果关系。实验表明,DFT在多个指标上优于现有方法,排名指标提升300%,投资组合指标提升400%。通过实验提供趋势和波动在股票价格预测中不同角色的深入见解。
简介
股票价格预测是量化投资中的基本任务,但因市场高波动性和混乱性而极具挑战性。投资者的买卖行为驱动股票价格波动,市场受经济指标、财报、政治事件和投资者情绪等多种因素影响。提高预测准确性仍然是一个持续的挑战。
传统机器学习方法(如决策树和支持向量机)在建模股票收益变化方面取得了一定成果,但需手动构建大量金融指标特征,且难以建模股票间复杂的动态关联。深度学习在股票回报预测中主要有两种研究思路:时间相关性和股票相关性。现有方法忽视了个股波动信息的重要性,未能有效区分趋势与波动,导致信息干扰。股票相关性是动态变化的,现有方法简化了时间序列特征,未能充分考虑时间顺序的因果关系。
本文提出双分支波动与趋势框架(DFT),分别提取波动和趋势特征,避免信息干扰,提升预测能力。结合RWKV时间序列表示与自注意力机制,保持时间步属性,挖掘复杂的跨时间因果关系。首次同时捕捉长期趋势与短期波动,充分挖掘时间依赖性,实验验证方法优越性。
相关工作
股票趋势预测。多因素模型用于预测股票趋势,考虑交易量、价格动态及公司基本面数据。深度学习方法如RNN和CNN被应用于短期趋势预测,研究者还探索对抗训练和门控因果卷积以增强对细微信号的敏感性。
股票相关性预测。研究重点在于建模股票相关性,考虑历史趋势和相关股票的影响。当前研究从时间序列和股票相关性两方面入手,构建基于行业或概念的静态图,并使用超图和注意力机制等技术进行动态建模。
方法
概述
模型步骤:
-
股票分解:获取整体趋势和日常波动信息。
-
相关性建模:独立分支处理波动和趋势信息。
-
输出预测:聚合信息并进行预测。
问题定义
本文关注股票价格预测,特别是预测股票回报率,以便在不同股票间进行价格变化的标准化比较。回报率定义为:
其中 c u,t为股票 u 在第 t 天的收盘价。
采用 Z-score 标准化处理回报率,得到标签
股票预测问题被形式化为:给定特征 ,共同预测未来的标准化回报率 r u。
股票分解
输入嵌入层通过全连接层将每只股票的表示转换为嵌入表示 X。
信息分解模块强调趋势和波动的重要性,特别是波动信息对最终收益预测 r u 的影响。趋势成分 X t 通过 AvgPool 提取,平滑局部不规则性,结合时间相关模块 TC 进行动态学习。
终趋势表示为 X t = α * Avg(x u,t) + β * TC(x u,t),其中 α 和 β 为可学习参数。波动成分 X f 通过从原始输入中减去趋势成分获得。
相关性建模
波动分支。为了充分利用波动信息进行收益预测,我们对同一只股票的时间维度u和同一时间的股票维度t进行了相关建模。
时间相关性建模(TC)。利用RWKV模型进行时间相关性建模(TC),保持时间序列信息并满足因果关系。TC包括时间混合和通道混合模块,确保时间步t只能获取t之前的股票信息。
股票相关性建模(SC)。在时间维度建模后,使用自注意力机制建模同一时间步的股票间相关性,生成注意力矩阵以观察不同股票间的相互影响。
趋势分支。与波动分支类似,首先建模同一时间步的股票相关性,利用RWKV模型处理时间相关性,整合不同股票的趋势信息以捕捉整体市场趋势。
预测输出
引入市场指导信息,通过卷积操作处理市场特征,得到相同维度的信息嵌入 Z_m。最终股票表示通过聚合 T 时间步的嵌入,使用最后时间步的嵌入 z_u,T 作为查询向量。使用线性层作为预测器,评估结果采用均方误差(MSE)损失函数。
实验
数据集。评估框架使用CSI300、CSI800和S&P500股票数据,时间范围为2008年1月1日至2023年12月31日,采用Alpha158指标构建样本特征,设置回溯窗口T为8,预测区间d为5。
基线模型。比较DFT与多种股票价格预测基线,包括LSTM、Informer、DLinear、iTransformer、TimeMixer、DTML、StockMixer和MASTER等,涵盖不同类别的预测模型。
实现细节。模型使用PyTorch实现,训练采用CosineAnnealingLR和Adam优化器,学习率范围为2×10??至3×10?3,热身阶段10个epoch,每次重启间隔15个epoch,总共训练75个epoch,测试结果取最后一个epoch。在RTX 3090的服务器上进行,训练和测试程序运行5次,报告平均值和标准差。
评估指标。包括IC、RankIC、ICIR、RankICIR(基于Pearson和Spearman系数),以及投资指标AR和IR,分别衡量股票选择能力和风险调整后的投资表现。
整体表现
DFT在三组股票数据集上表现优异,相较于经典时间序列预测模型和最新的股票价格预测模型,排名指标提升250%至500%,投资组合指标提升400%至1000%。DFT模型通过趋势和波动双分支框架有效建模不同信息之间的强相关性,超越了其他模型(如MASTER、DTML、StockMixer)。尽管DLinear和TimeMixer使用了分解模块,但表现不佳。进行的回测实验显示,采用“Top30-Drop30”策略时,DFT模型在整体市场下跌时仍能保持高正收益,优于其他模型。
消融分析
进行消融实验,逐个去除框架组件,验证设计选择的有效性。
-
去除分解模块导致性能显著下降,表明双分支结构的重要性。
-
去除趋势或波动分支的相关性建模均降低模型性能,波动信息更需深入分析。
-
去除时间相关性(TC)或股票相关性(SC)模块均影响模型表现,二者均为重要因素。
-
使用TC-maskSA模型和本模型均因屏蔽未来信息而提升效果,验证了时间因果机制的有效性。
-
修改MASTER结构,加入可插拔分解块和双分支结构,性能提升超过两倍,增强了通用性和有效性。
-
调整相关性建模顺序后,模型指标下降,波动分支顺序调整影响更大,证明波动信息需优先考虑股票维度。
超参数敏感性
Avgpool核。较大的池化核k_a能更好地聚合长期趋势信息,提升模型表现。
市场卷积核。小卷积核k_c关注短期变化,易受市场剧烈波动影响;大卷积核则可能导致信息模糊。
RWKV头。适当数量的头能有效利用表示嵌入,过多或过少都会降低信息利用率。
回溯窗口。较长的回溯窗口T有助于捕捉更多历史信息,通常能提高预测效果。
预测区间。较短的预测长度难以学习随机标签,适当增加预测长度可提升模型表现。
讨论
不同国家的股票交易机制和市场规则多样,需对各市场的独特交易特征进行更细致建模。本研究集中于中国和美国股市。极端样本对指标影响显著,保留极端收益的股票数据会严重影响模型评估结果。
总结
本文提出了DFT框架,用于股票价格预测,重审股票信息的组成和重要性。将信息分解为趋势和波动组件,采用独立的相关性建模分支处理。波动组件作为独立属性,趋势通过市场共同反映,设置相反的相关性建模过程。创新性地考虑时间序列数据的因果关系。在三大主流数据集上,DFT在四个指标上显著超越了之前的SOTA模型。未来目标是研究更细粒度的股票价格预测,探索高频交易的更多可能性。
我们致力于提供优质的AI服务,涵盖人工智能、数据分析、深度学习、机器学习、计算机视觉、自然语言处理、语音处理等领域。如有相关需求,请私信与我们联系。
请加微信“LingDuTech163”,或公众号后台私信“联系方式”。
关注【灵度智能】公众号,获取更多AI资讯。