2024-arXiv-一种使用 OHLC-T 图像的基于时间序列分解与多尺度 CNN 的股价预测方法

arXiv | https://arxiv.org/abs/2410.19291

摘要:

近期,深度学习在股票预测领域已成为一个重要分支。基于图像的方法通过捕捉复杂的视觉模式和空间相关性展现出潜力,相较于时间序列模型,在可解释性方面具有优势。然而,基于图像的方法更容易出现过拟合现象,阻碍了稳健的预测性能。为提高预测准确性,本文提出了一种新颖的方法,命名为基于序列的多尺度融合回归卷积神经网络(SMSFR-CNN),用于预测中国A股市场的股价走势。

首先,将股票的历史开盘价、最高价、最低价、收盘价及换手率(OHLCT)转换为图像,并以周末为分隔加入时间信息,以帮助卷积神经网络(CNN)学习不同交易时段的影响。第二,为减少过拟合,将长序列的股票特征分解为多个时间段,并利用不同时间尺度的OHLCT图像作为输入,显著降低了过拟合现象。第三,为了克服分类标签丢失股价变动幅度信息的问题,我们引入了回归标签,以帮助模型捕捉更多股价波动的潜在特征。通过利用CNN学习序列特征并将其与图像特征相结合,我们在A股市场股票数据集上提高了股票趋势预测的准确性。该方法缩小了图像特征的搜索空间,稳定并加速了训练过程。

一、引言

卷积神经网络(CNN)因其高效的特征提取能力,已被应用于股市预测。然而,传统的CNN方法往往未能充分利用时间序列信息,导致在复杂市场条件下表现欠佳。此外,当考虑多只股票时,这些模型通常侧重于个股信息,而忽视了显著影响价格波动的股票间相关性。较长时间的股票特征图序列使得CNN模型难以识别关键特征点,从而导致局部特征过拟合。将序列转换为图像特征可能会丧失利用更多历史数据的优势,而较短的图像特征则可能牺牲重要的历史信息,增加预测的不准确性。

我们首先提出了两种新颖的方法:

  • 第一种方法涉及用股票换手率替代交易量,从而消除了因除权事件引起的交易量影响,使得特征更为稳定。
  • 第二种方法引入了时间分隔符与OHLCT的整合,形成了一种新的图像特征作为输入,命名为TS-OHLCT。具体而言,我们将周末时间信息作为分隔符融入OHLCT图像中,以帮助卷积神经网络捕捉交易时间信息并学习股票交易周期的影响。

此外,提出了两种新的架构:

  • 第一种是多尺度残差卷积神经网络(MSR-CNN),旨在解决长序列图像中的过拟合问题。
  • 第二种是基于序列的多尺度融合回归卷积神经网络(SMSFR-CNN),解决了仅使用图像特征难以学习股价波动信息的问题。具体而言,将股票图像特征的长序列按照不同的时间尺度分解为多个时间段,并根据其重要性分配不同的特征权重(越近的特征权重越高)。

二、数据和方法

2.1 数据

量化交易中常采用多种图像格式作为深度模型的输入,如K线图、折线图、OHLCV图等。一些研究通过将滑动窗口方法应用于时间序列,构建了用于卷积神经网络(CNNs)的图像。

为了增强OHLC图所展示的信息,通常会在OHLCV图中加入移动平均线(MA)和成交量,这种图表格式有助于观察价格波动、市场趋势、成交量及交易活动的强度。我们提出了一种名为**时间分段开盘-最高-最低-收盘-换手率图(TS-OHLCT)**的新型图像数据格式:

image-20250114092630187

换手率:使用换手率替代成交量的主要原因在于消除因调整历史价格和成交量数据以反映公司行为(如分红、送股、配股等)的影响,使得不同时间点或不同股票之间的直接比较变得困难。换手率提供了一个标准化的基准,用于比较发行量不同的股票,使得不同公司或不同规模市场之间的交易活动能够直接进行比较。

**周末效应:**A股市场往往在周五表现较差,而在周一开盘时表现较好,可能归因于投资者倾向于在周末前降低风险敞口,并在周一重新进入市场。此外,通常重要的公司公告、经济数据发布或政治事件会在交易日发生,而周末则相对平静。因此,如果在周末期间发生重大新闻或事件,市场可能会在周一开盘时出现剧烈波动。

在OHLCT图表中将周末作为时间分隔符纳入其中。具体做法是在对应周末的位置添加一列空白像素。为保持一致性,采用三列黑色像素作为休息日的分隔符,使其与每日股票价格显示的三像素对齐。此方法增强了模型更有效地理解和内化交易日重复模式的能力。

2.1 方法

2.1.1 多尺度级联特征

使用较长时间段的股票特征图训练CNN模型可能会导致基于特定特征的局部最优解。然而,使用过短时间段的数据进行股票预测则具有较高的风险,在特征时间框架较短的情况下难以理解股票的历史表现,从而难以评估其当前状态和趋势。因此,我们提出了一种多尺度级联图像特征方法来解决上述问题。

将 n 天的原始特征图 G G G 分解为 C 个子特征图 X = { X 1 , … , X C } X = \{X_1,…,X_C\} X={X1,,XC}。鉴于一周有 5 个交易日,选择 5 作为子特征图窗口,子特征图数量为 C = ⌈ log 5 ( n ) ⌉ C = ⌈\text{log}_5(n)⌉ C=log5(n)⌉。原始特征图包含 n 个时间窗口时间分辨率为 1 天;每个分解后的子特征图 X i X_i Xi 包含 5 个时间窗口时间分辨率 M i = min ⁡ ( 5 ( i − 1 ) , n 5 ) , i ∈ [ 1 , C ] M_i=\min(5^{(i-1)},\frac{n}{5}),i\in[1,C] Mi=min(5(i1),5n),i[1,C] 天,即每个窗口包含原始特征图的 M i M_i Mi 天的 OHLCT 信息。下图为 60 天原始特征图的分解例子:

image-20250114094046339

随着子图索引 i i i 的增加,每个时间窗口 M i M_i Mi 所覆盖的天数逐渐增加,即时间分辨率逐渐降低。

  • 索引较小的子图具有更高的时间分辨率,反映了更近期的局部信息
  • 索引较大的子图通过合并更多天的 OHLCT 信息降低了分辨率,更好地反映了全局信息
2.1.2 多尺度分辨率(MSR)CNN

我们提出了一种多尺度分辨率**(MSR)CNN**,旨在从更长的股票序列中捕捉特征。在此框架下,多尺度特征(MSF)模块被用来从不同分辨率尺度的子特征图中提取股票特征,模块的基本构建块包括三个主要操作:卷积、激活和池化

首先将时间长度为 n n n 的股票特征图分解为 C C C 个不同分辨率尺度的子特征图。每个子特征图具有不同的特征权重 weight i \text{weight}_i weighti。随着 i i i 的增加, X i X_i Xi 包含的股票特征来自更早的时间,特征权重逐渐减小,使模型能够更加关注近期的局部特征。特征权重的公式如下:
weight i = { 0.5 , i = 1 , 0.5 2 i − 1 , 2 ≤ i ≤ C − 1 , 0.5 2 C − 2 , i = C . \text{weight}_i= \begin{cases} 0.5, & i=1, \\ \frac{0.5}{2^{i-1}}, & 2\le i\le C-1, \\ \frac{0.5}{2^{C-2}}, & i=C. \\ \end{cases} weighti= 0.5,2i10.5,2C20.5,i=1,2iC1,i=C.
image-20250114094115177

2.1.3 序列多尺度融合回归(SMSFR)CNN

基于像素级数据的传统 CNN 模型并不适合直接预测股票价格的百分比变化,直接将MSR-CNN应用于回归任务不足以充分模拟股票市场的复杂性。

为了充分发挥序列 CNN 在预测股市走势中的潜力,我们进一步提出了序列多尺度融合回归(SMSFR)CNN,该模型结合了分类和回归标签进行股票预测。在不改变原始 MSR-CNN 架构的情况下,我们将股票的序列维度视为独立路径,通过时间序列(TS)模块提取序列特征,然后将其与图像特征融合,并通过全连接层预测股价走势。

时间序列特征由 30 个交易日内的 12 个特征组成。这些特征包括六个原始数据特征 c l o s e , o p e n , h i g h , l o w , m a 5 , t u r n o v e r r a t e close, open, high, low, ma5, turnoverrate close,open,high,low,ma5,turnoverrate)、两个时间特征 m o n t h , w e e k month, week month,week)以及四个扩展价格特征 c l o s e r a t i o , o p e n r a t i o , h i g h r a t i o , l o w r a t i o closeratio, openratio, highratio, lowratio closeratio,openratio,highratio,lowratio)。扩展特征为:
c l o s e r a t i o = c l o s e t − c l o s e t − 1 c l o s e t − 1 o p e n r a t i o = o p e n t − c l o s e t − 1 c l o s e t − 1 h i g h r a t i o = h i g h t − c l o s e t − 1 c l o s e t − 1 l o w r a t i o = l o w t − c l o s e t − 1 c l o s e t − 1 close_{ratio}=\frac{close_t-close_{t-1}}{close_{t-1}}\\ open_{ratio}=\frac{open_t-close_{t-1}}{close_{t-1}}\\ high_{ratio}=\frac{high_t-close_{t-1}}{close_{t-1}}\\ low_{ratio}=\frac{low_t-close_{t-1}}{close_{t-1}}\\ closeratio=closet1closetcloset1openratio=closet1opentcloset1highratio=closet1hightcloset1lowratio=closet1lowtcloset1
由于四个扩展价格特征在其计算过程中已包含归一化处理,我们仅对原始特征和时间特征进行归一化,以保持数据相对尺度的一致性。
X i j ′ = X i j X 30 c l o s e , ∀ i ∈ { 1 , 2 , … , 30 } , j ∈ { c l o s e , o p e n , h i g h , l o w , m a 5 } m o n t h n o r m a l i z e d = m o n t h 12 , w e e k n o r m a l i z e d = w e e k 5 X_i^{j'}=\frac{X_i^{j}}{X_{30}^{close}},\forall i\in\{1,2,…,30\},j\in\{close,open,high,low,ma5\}\\ month_{normalized}=\frac{month}{12},week_{normalized}=\frac{week}{5} Xij=X30closeXiji{1,2,,30},j{close,open,high,low,ma5}monthnormalized=12month,weeknormalized=5week
image-20250114094141448

三、实验

3.1 数据

中国A股市场的所有股票,但排除了科技创新板(代码以688开头)和北京证券交易所(代码以8开头)的股票,共计4,454只股票。

image-20250114143946324

3.2 分类实验

3.2.1 实验设置

**损失函数:**交叉熵

**评估指标:**阳性预测值 PPV、阴性预测值 NPV

**训练细节:**10 次重复训练取平均;在第 5 个epoch后应用早停法并选择在验证集上表现最佳的模型

**模型参数:**每一层中应用 Xavier 权重初始化器;Adam 算法;初始学习率 3 × 1 0 − 5 3×10^-5 3×105,批大小为 256

**设备:**8 块 Tesla V100 GPU(显存 256 GB)、80核CPU

3.2.2 时间序列模型与图像模型

基线模型:

  • 时间序列分析:Timemixer、Timesnet、Dlinear、PatchTST
  • 图像分析:OHLCV+CNN

image-20250114144858337

  • 随着输入长度的增加,基于时间序列的模型不会出现过拟合现象,并且其性能优于基于CNN的方法。
  • 基于图像特征的CNN模型容易对局部特征过拟合,导致预测性能呈现5天>20天>60天的顺序。
  • 换手率替代成交量比原始的OHLCV+CNN方法略胜一筹。结合时间分割特征的CNN模型在准确性上显示出显著提升,但它们仍然表现出对图像特征的过拟合倾向。
3.2.3 股票数据的多尺度特征分解

SMSFR 引入回归标签仅是为了使图像特征能够学习更多关于股票价格变化的信息,并通过反向传播来约束解空间,因此仍使用分类标签作为方法评估的标准

image-20250114150230214

  • 基于分解的方法能更好地捕捉股票的短期局部特征和长期趋势特征,从而解决原始图像特征中局部过拟合的问题。
  • 将序列特征整合到图像特征中,并结合股价波动标签,使模型能够更深入地理解股票的内在动态。

3.3 盈利能力回测实验

每个模型的最大开仓数量设定为 5。当模型预测某只股票的**上涨概率大于80%**时,我们按概率从高到低的顺序买入股票,并在 5 个交易日后卖出,0.3%的交易成本

image-20250114150751554

image-20250114150939729
80%**时,我们按概率从高到低的顺序买入股票,并在 5 个交易日后卖出,0.3%的交易成本

[外链图片转存中…(img-9REz4qW3-1739196112579)]

[外链图片转存中…(img-KncSNnNC-1739196112579)]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值