通过深度学习股价截面数据分析和预测股票价格

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。

引言

不论在学术领域还是实践范畴上,股价预测一直是重要的研究课题。直到现在,各种预测股价的理论仍然在不断研究中。在金融领域,用来解释股票价格界面分析的特性被称为“因子”,很多金融方面的研究已经识别出了这些截面数据因子跟股价涨跌的关系。由于这些因子和股票价格的关系日趋复杂和非线性,最近,使用机器学习,特别是深度学习用于预测股票价格的研究被不断提出。不过,这些理论上的研究都和实际的投资操作有着一定距离。

我们解读的这篇论文《Cross-sectional Stock Price Prediction using Deep Learning for Actual Investment Management》被2020年国际人工智能与区块链大会(AIBC 2020)收录,在文章中,作者提出了使用深度学习进行实际投资管理的截面每日股价预测框架。 例如,作者使用在收盘时可用的信息来构建投资组合,并在第二天开盘时进行投资。作者在日本股票市场进行实证分析,并确认框架的盈利能力。

前置概念介绍

股价预测已经日渐成为一个重要的研究主题,各类预测股价的理论不断提出,到目前为止,这些理论大概可以分位两个方面:时间序列分析和截面数据分析。

第一类理论将股票价格作为时间序列数据,然后进行时间序列分析。金融上的时间序列分析始于线性模型,例如自回归模型(AR),这类模型中,参数是唯一且确定的。在实际的金融时间序列中,随着许多非线性特性被发现,在时间序列结构中并入波动率的广义自回归条件异方差模型(GARCH)开始被应用。近年来,GARCH模型进一步发展,扩展出了很多变量。另外,在时间序列分析领域,例如k最近邻法,神经网络和支持向量机等非线性模型已经广泛应用于股票价格预测。这些模型不仅努力从学术上把握经济意义,而且努力在实践中提高预测准确性,它们通过反复试验来尝试掌握股价波动的模式,这些尝试在近几年已经引起人们对算力的重视。

第二类理论使用诸如公司属性之类的横截面数据执行横截面(回归)分析。 通过截面分析来解释股价的特征在金融领域被称为“因子”。 金融方面的许多实证研究已经确定了哪些股票的横截面特征相对增加,哪些股票价格下降。 解释横截面股票价格的代表性模型是Fama-French三因子模型。 模型指出,可以通过三个因子来解释股票收益的横截面结构:β(市场投资组合),规模(市场资本化)和价值(价格市价比)。 从那以后,除了Fama-French三因子模型中的因子外,其他因子也相继被发现。 到2012年发现的因子就多达300多个,而且,大多数这些因子是在最近10年中发现的。

尽管投资者需要考虑的因子在快速增长,但要同时测试超过300个因子,从维度的规模上将也是非常困难的。此外,由于不错的可操作性和结果的鲁棒性,线性回归模型还是在金融领域长期应用。但是,由于大量因子和股票收益关系的复杂性,线性回归模型在预测准确性上限制很大。就像很多非参数截面股票预测研究的那样,使用深度学习来非线性拟合各种因子相比简单拟合各种因子的线性回归,可以提高预测的准确性和股票盈利。

但是,这些研究仅限于每月的股票价格预测而且它们与实际的投资管理不符。 在这篇论文中,作者提出了一个使用每日股价横截面数据预测使用深度学习进行实际投资管理的框架,并且在日本股市进行实证分析,以确认框架的有效性。为了每天进行投资,作者会在实际投资时建立投资组合。 例如,在收市时段利用可用信息构建投资组合,然后在第二天开市时在市场上进行投资。 此外,投资组合周转率是计算并比较以考虑影响交易成本。 周转率高的投资组合与较低利率的投资组合相比,交易成本更高。

数据集

文章使用的数据集为TOPIX500成分股指数,TOPIX500覆盖了日本股市的大盘股和部分中盘股,同时这个指数也常作为海外投资机构投资日本股市的投资标的。

文章使用了33个因子,如下表:

在实践中,这些指标相对都用得比较多。

问题建模

作者把问题定义为了一个回归问题,这样就把问题转化成了寻找一个预测变量f,同时用均方误差(MSE)作为损失函数。定义t时刻训练模型的均方误差如下:

𝐾是所有训练数据的数量。 𝜃𝑇是计算出的参数通过求解上面的表达式并形成函数𝑓的形式。

作者使用深度学习给函数f构造一个模型,然后用岭回归和随机森岭作为比较模型。

深度神经网络(DNN)

DNN通过开源机器学习库TensorFlow实现。对于超参数,总共选用了6种模式,其中3个隐藏层,2种丢弃率和迭代次数。模型设置如下:

表示股票i在T+5时间的评分由T时刻股价代入函数f产生,而参数𝜃T*则是由之前建立的模型训练产生。然后根据这个评分建立投资组合,流程如下:

多头投资组合表现

下表显示了多头策略组合的表现,黑体表示了每个模型最佳的表现,下划线表示了每一列最好的值。

(Model:模型,Alpha:收益,TE:风险,IR:收益风险比,MaxDD:最大回撤,TN:周转率)

下图显示了累计收益最佳的组合表现,红线在整个阶段的表现更为稳健。

 

多空投资组合表现

多空投资组合的表现和多头投资组合的表现类似,DNN模型整体要好于RF模型和RR模型。

 

下图显示了红线仍然是最稳健的曲线。

结论和解读

文章实现了使用深度学习一个每日股价截面数据预测框架用来进行投资管理实践。主要结论如下:

  • 有效参数越多,基于深度学习(DNN)股价预测模型的表现要越好于随机森林和岭回归的模型。

  • DNN模型有更低的风险波动,或者说相比RF和RR模型有着更好的收益风险比。

  • DNN模型有着更高的周转率。

随着参数越来越多,深度学习作为一个重要工具,正在越来越多地发挥着作用。如果您对于量化交易有兴趣,也欢迎找到我们跟我们讨论交流。

关注 “数量技术宅”不迷路,您的点赞、转发,是我输出干货,最大的动力

 


往期干货分享推荐阅读

Omega System Trading and Development Club内部分享策略Easylanguage源码

一个真实数据集的完整机器学习解决方案(下)

一个真实数据集的完整机器学习解决方案(上)

如何使用交易开拓者(TB)开发数字货币策略

股指期货高频数据机器学习预测

如何使用TradingView(TV)回测数字货币交易策略

如何投资股票型基金?什么时间买?买什么?

【数量技术宅|量化投资策略系列分享】基于指数移动平均的股指期货交易策略

AMA指标原作者Perry Kaufman 100+套交易策略源码分享

【 数量技术宅 | 期权系列分享】期权策略的“独孤九剑”

【数量技术宅|金融数据系列分享】套利策略的价差序列计算,恐怕没有你想的那么简单

【数量技术宅|量化投资策略系列分享】成熟交易者期货持仓跟随策略

如何获取免费的数字货币历史数据

【数量技术宅|量化投资策略系列分享】多周期共振交易策略

【数量技术宅|金融数据分析系列分享】为什么中证500(IC)是最适合长期做多的指数

商品现货数据不好拿?商品季节性难跟踪?一键解决没烦恼的Python爬虫分享

【数量技术宅|金融数据分析系列分享】如何正确抄底商品期货、大宗商品

【数量技术宅|量化投资策略系列分享】股指期货IF分钟波动率统计策略

【数量技术宅 | Python爬虫系列分享】实时监控股市重大公告的Python爬虫

 

posted @ 2021-01-21 21:33  数量技术宅  阅读(2352)  评论(0编辑  收藏  举报