作者:chen_h
微信号 & QQ:862251340
微信公众号:coderpai
论文链接:Deep learning networks for stock market analysis and prediction
摘要
作者考虑了两个主要问题:
- 仅使用日内市场数据预测日内股票回报;
- 使用预测的股票收益预测协方差矩阵;
数据集
数据集由来自韩国 KOSPI 的38种股票组成,每5分钟取样一次。数据收集的日期范围是 2010-01-04 至 2014-12-30 。首先将 80% 的样本(2010-01-04 至 2013-12-24)用于训练。在每个时间戳,该算法访问每个数据的最后 10 个对数收益。对数收益计算公式为 r t = l n ( S t / S t − Δ t ) r_{t} = ln(S_{t} / S_{t - \Delta t}) rt=ln(St/St−Δt) ,其中 S t S_{t} St 是股票在 t 时刻的价格, Δ t \Delta t Δt 表示 5 分钟。该样本包含每个股票的总共 1239 个交易日和 73041 个五分钟的回报。
数据预处理
作者探索了各种预处理技术。预处理数据在预测阶段被输入到神经网络。
- RawData:没有预处理,38*10 大小的矢量数据;
- PC200:输出维度为 200 的 PCA;
- PC380:输出维度为 380 的PCA;
- AE400:输出维度为 400 的稀疏自动编码器;
- AE800:输出维度为 800 的稀疏自动编码器;
日内股票收益预测方法
将具有 2 个隐藏层的神经网络与具有 10 个滞后变量的单变量自回归模型进行比较。隐藏层的大小分别为 200 和 100。由于这是一个回归模型,最终输出是一个标量。
h 1 = R e L U ( W 1 u t + b 1 ) h_{1} = ReLU(W_{1}u_t+b_1) h1=ReLU(W1ut+b1)
h 2 = R e L U ( W 2 h 1 + b 2 ) h_2=ReLU(W_2h_1+b_2) h2=ReLU(W2h1+b2)
r ^ i , t + 1 = W 3 h 2 + b 3 \hat r_{i,t+1} = W_{3}h_2+b_3 r^i,t+1=W3h2+b3
股票回报结果
Method | NMSE |
---|---|
AR(10) | 0.9655 |
ANN (RawData) | 0.9937 |
DNN (RawData) | 0.9629 |
DNN (PCA380) | 0.9660 |
DNN (RBM400) | 0.9702 |
DNN (AE400) | 0.9638 |
NMSE 是归一化的均方误差,定义为:
N M S E = 1 N ∑ n = 1 N ( r t + 1 n − r ^ t + 1 n ) 2 v a r ( r t + 1 n ) NMSE = \frac{1}{N} \frac{\sum^{N}_{n=1}(r^{n}_{t+1}-\hat r^{n}_{t+1})^2}{var(r^{n}_{t+1})} NMSE=N1var(rt+1n)∑n=1N(rt+1n−r^t+1n)2
其中,var 表示方差。
总结
结果肯定有点令人沮丧,但是,这也并不奇怪。我自己对A股日内数据做实验的时候,也有类似结果。较高频率的日内数据的根本问题是数据中内置的大量噪声。通过使用神经网络简单的增加模型容量并不能解决这个问题。