MTDNN:多尺度股票趋势预测

原文:Multi-scale Two-way Deep Neural Network for Stock Trend Prediction

对于股票趋势预测任务而言,一个非常重要的难题就是如何去除其历史数据中的噪声,挖掘出真正有用的规律。其中最常见的一种操作是使用一定时间窗口内的移动平均值。随着深度学习的进行,也有越来越多的研究者试图将深度模型引入这一任务,如SFM利用傅里叶变换改造LSTM使其能够捕捉历史数据中的多个频率成分(multi-frequency components),Lahmiri利用离散小波转换(Discrete Wavelet Transform (DWT))来将股价时间序列分解成多个尺度上的信息。

下面一张图解释了为什么股价的多尺度信息是有价值的。图的上半部分是原始的股票走势数据,下半部分则是按照不同的时间尺度绘制的股价趋势。可以看出在不同的时间尺度上,股价的走势是有很大不同的。

为了有效挖掘股价历史数据在不同尺度上的模式,文章提出了一种称为MTDNN(Multi-scale Two-way Deep Neural Network)的模型,分为Wavlet-based way和Downsampling-based way两部分,如下图所示。

  • Wavlet-based way模块使用离散小波转换(具体过程见离散小波变换-维基百科)获取各个特征不同频率尺度上的信息。具体的过程是,将股价历史数据中的第i个特征x(i)分解为一系列的高频成分和低频成分\mathbf{v}_{i}=\left[\mathbf{d}^{m}(i), \mathbf{d}^{m-1}(i), \ldots, \mathbf{d}^{1}(i), \mathbf{a}^{1}(i)\right],之后将v_i输入一个XGBoost获得一个预测结果\hat{s}_{\text {wavelet }}

  • Downsampling-based way模块利用降采样的方法获取股价历史数据不同时间尺度上的信息。具体的过程是,对数据在不同的时间尺度上进行降采样(每s天采样一天),将将采样后的数据输入CNNpred(这一模型在股价预测问题上超越了其他CNN结构,提出于:Cnnpred: Cnnbased stock market prediction using a diverse set of variables)获得时间尺度\dot{L}^{s}上的表示u_{i}^{s} \in \mathbb{R}^{32},之后这些表示按照图上的方式拼接起来输入GRU中获得一个股价趋势预测\hat{S}_{\text {sample }}

  • 最终两个结果拼接一下获得最终的预测结果\hat{y}=f_{\text {logit }}\left(\hat{s}_{\text {sample }}, \hat{s}_{\text {wavelet }}\right)

文章在 FI-2010 和 CSI-2016 的数据集上进行实验获得了SOTA的结果。文章所使用的数据公开在GitHub上:https://github.com/marscrazy/MTDNN,但作者还没有公开代码。


对于AI+Finance方向感兴趣的童鞋,欢迎扫描下面的二维码学习交流:

0 0 投票数
Article Rating
订阅评论
提醒
0 评论
内联反馈
查看所有评论