基于Visibility Graph-CNN创新架构的高效股价预测模型

Feb 2. 2024
【重要提示】本网站所有内容仅用作记录个人研究,不构成对任何人或机构的投资建议或意见。据此操作者,后果完全由其自己承担。
才疏学浅,欢迎指正!


【摘要】

在前序研究《深度学习研究报告:基于卷积神经网络的股价走势AI识别与分类》中,对卷积神经网络进行了详细的介绍,提出了首先基于价量数据构建标准化的价量数据图表,而后采用卷积神经网络将价量数据图表与未来股价走势进行建模的股价预测模型。在该策略中,包含20日价量数据的图表矩阵维度为3*200*200,矩阵中的元素为常见图片的0~255整型数字,数据较为密集,在算力充分满足的情况下取得了可观的收益结果。

本工作则另辟蹊径,创新性地提出了对可见性图(Visibility Graph)和卷积神经网络(CNN)进行融合,提出了基于Visibility Graph-CNN架构的高效股价预测模型。

一、可见性图

可见性图(Visibility Graph)是一种图论模型,它将空间中的物体(例如:点、线段、多边形)映射为图中的结点和边。在其拓展到时间序列分析领域后,可见性图能够高效地将时序数据(如价量数据)转化为图结构,以提取时序数据中的有效信息。

在可见性图的构建算法中,采用了一种朴素的思想。如下图所示,图中包含20个数据的柱状图,从第1个柱状图起,将每个柱状图与其他所有柱状图在顶部相连,若该连接不穿过其他柱状图,则为“可见”,该节点以整形数字1来表示;若穿过其他柱状图,则为“不可见”,该节点以整形数字0来表示。举个例子,第1个柱状图与第2、3、4、5个柱状图是“可见的”,不穿插经过其他柱状图,以红色线表示;而第1个柱状图与第6个柱状图是“不可见的”,因为其穿插经过了第4和第5个柱状图,以蓝色线表示。

Blog Image

由于任意的时间序列数据都可以以此柱状图的形式来表达,因此可通过可见性图来对时序数据进行特征提取。此图结构在数据形式上体现为二维的整型矩阵,矩阵中的元素均为整数0或1,有效地降低了数据的冗余性,减少了后续深度学习模型在训练过程中的过拟合现象,提升了模型的泛化能力。

二、可见性图的性质

可见性图在水平和垂直方向上均具有仿射不变性的特征。如下图所示,图a为原时间序列对应的柱状图,图b发生了时间顺位移动,图c和图d发生了横纵坐标上的放缩,图e发生了其他仿射变换,但这些经过变换后的时序与原时序的可见性图是完全一致的。

Blog Image

上述特性使得可见性图能够有效提取价量数据中的形态特征,如相同的走势出现在不同的历史时期、不同的价格点上,可见性图可以识别出相似的形态走势,从而提升特征提取和股价预测能力。

三、可见性图应用举例(机器人最优路径规划)

如下图所示,机器人的运动目标是从A到B,图中的三角形和矩形代表障碍物,障碍物的顶点代表节点(nodes),边(edges)是节点(nodes)之间的可见连接,障碍物边和可见连接边为可选路径。

Blog Image

在现实中机器人并非质点,机器人有可能因为自身形状体积,在路径执行过程中与障碍物发生碰撞,因此在实际路径规划中需要把机器人本身的形状体积纳入考虑,对障碍物进行拓展。拓展前后的最优路径的实际连接节点(nodes)相同,这得益于可见性图的仿射不变性。

Blog Image

四、Visibility Graph-CNN股价预测模型

首先,采用可见性图对价量数据进行初步的特征提取,对于20日(60日)价量数据得到维度为6*20*20(6*60*60)低维度特征矩阵,且矩阵的元素均为整数0或1。可见性图举例如下图所示,其中红色线代表可见,对应节点之间以整形数字1来表示;蓝色线代表不可见,对应节点之间以整形数字0来表示。

Blog Image

由于可见性图大大降低了数据的冗余性,且其本身具备高效的初步特征提取能力,因此本工作设计了一个参数量少、复杂度低的卷积神经网络将其与未来股价进行建模,该网络结构如下图所示。

Blog Image

在对开盘价、最高价、最低价、收盘价、交易量、交易额6组价量数据提取可见性图后,将可见性图输入4层卷积神经网络中,并采用全连接层和SoftMax函数将其映射为3个概率,分别对应个股在未来截面日上收益率的百分位,即前1/3、中1/3、后1/3,以表示涨、平、跌,最终以股票上涨的概率作为因子进行选股。

在卷积神经网络模型的实现细节上,采用Xavier的方式来对模型的参数进行初始化,使得模型的初始预测方差更接近数据标签,以加速模型在训练过程中的收敛速度;采用Adam优化器、1x10-5学习率、512批大小对模型进行训练;采用训练数据外的验证集对训练中的模型进行验证,以确定最优早停时点。

本工作基于过去20日和60日的价量数据,分别训练了两个模型(在下文中分别称为20日模型及60日模型),以预测未来20个交易日的股票涨跌情况。

五、训练及回测数据说明
  • 选股范围:全市场,沪深300,中证500,中证800,中证1000,创业板
  • 股票预处理:剔除非上市、摘牌、ST/*ST、涨跌停板、上市未满60个交易日的股票
  • 因子预处理:MAD去极值、Z-Score标准化、行业市值中性化
  • 训练数据:全市场2005年1月~2016年12月
  • 验证数据:全市场2017年2月~2019年11月(与训练数据间隔1个月防止数据暴露)
  • 回测区间:2020年1月~2023年12月(与验证数据间隔1个月防止数据暴露)
  • 分档方式:根据当期预测的个股价格未来上涨概率,从大到小分为10档
  • 调仓周期:20个交易日,信号次日均价买入、20个交易日后均价卖出

六、20日模型因子回测表现

20日模型因子在各板块的分档表现如下图所示,整体而言因子的分档表现较为显著。

Blog Image

20日模型因子与常见风格因子的相关性如下表所示,除了与最高点距离因子的相关性为0.2387,与六个月股价反转、换手率、三个月股价反转、容量比、一个月股价反转等因子的相关性分别为 -0.1190、 -0.1549、 -0.1867、 -0.2238、 -0.3007外,与其他风格因子的相关性绝对值均小于0.1,可见20日模型因子与常见风格因子的相关性较低,是一组较为新颖、拥挤度低的因子。

Blog Image

七、60日模型因子回测表现

60日模型因子在各板块的分档表现如下图所示,整体而言因子的分档表现较为显著。

Blog Image

60日模型因子与常见风格因子的相关性如下表所示,除了与最高点距离和流通市值因子的相关性分别为0.1929和0.1282,与六个月股价反转、容量比、换手率、三个月股价反转、一个月股价反转等因子的相关性分别为 -0.1194、 -0.1966、 -0.2298、 -0.2320、 -0.2756外,与其他风格因子的相关性绝对值均小于0.1,可见60日模型因子与常见风格因子的相关性较低,是一组较为新颖、拥挤度低的因子。

Blog Image

八、总结与展望

本工作在前序研究《深度学习研究报告:基于卷积神经网络的股价走势AI识别与分类》的基础上,创新性地提出了对可见性图(Visibility Graph)和卷积神经网络(CNN)进行融合,提出了基于Visibility Graph-CNN架构的高效股价预测模型。

在本工作中,首先使用可见性图算法模型对个股的历史价量数据进行初步的特征提取,而后将提取得到的可见性图送入特别设计的卷积神经网络中,以进一步提取价量特征,并与个股的未来走势进行建模,以实现对未来股价的预测。由于可见性图是低维度的整型矩阵,因此本工作设计了一个参数量少、复杂度低的卷积神经网络将其与未来股价进行建模,进一步减少了模型的过拟合情况,提升了模型在样本外数据的预测能力。

在2020~2023年样本外回测期间,20日模型因子在全市场的平均RankIC为5.39%,多头年化收益率为10.35%,相比同期中证全指的超额年化收益率为9.57%;而60日模型因子在全市场的平均RankIC为5.61%,多头年化收益率为10.24%,相比同期中证全指的超额年化收益率为9.61%

整体而言,20日模型和60日模型的表现差异不大。在细分板块上,20日模型因子在中证500、中证1000、创业板上分别取得了6.41%、7.56%、8.79%的多头年化收益率;而60日模型因子在中证500、中证1000、创业板上分别取得了4.83%、6.08%、11.79%的多头年化收益率。

展望未来,将继续探索更多人工智能模型在量化投资策略上的应用。

参考文献(部分)
[1] Lacasa L, Luque B, Ballesteros F, et al. From time series to complex networks: The visibility graph[J]. Proceedings of the National Academy of Sciences, 2008, 105(13): 4972-4975.