(转)基于深度组合的选股策略

https://mp.weixin.qq.com/s/tzNfQbzAHhgemY87ErScKQ

2017-07-11 刘富兵 殷明 留富兵法
摘要:

深度学习在语音、视频、自然语言处理等领域的成功使得越来越多的投资者开始尝试将其运用到投资中,然而,更高的噪音、更复杂的影响因素使得很多经典算法并不适用。本篇报告借鉴国外的“深度组合”理念,尝试将深度学习的基本理念使用到选股研究中。
本篇报告首先介绍了深度组合概念,然后从理论上解释了深度组合并不是方法论的创新,而是对市场不同角度的解读。之后我们对深度组合的构建方法做了详细介绍,并通过在沪深300上的选股实证为例,进一步介绍了数据处理的细节。
总体来说,深度组合的构建包含三个步骤,即通过自编码网络学习原始数据特征,转化为分类问题对T+1时期进行预测,通过指标验证组合构建的合理性并确定持仓方案。为了解决传统的神经网络投资的“黑箱”问题,我们通过自编码过程中的损失函数作为指标,对策略进行了优化。一方面,对选股池中的股票,只选取置信度高的个股进行处理;另一方面,通过该指标判断策略是否失效。我们通过实证分析中的指标检验证明了该指标确实和策略收益是高相关的,并且不存在滞后性,从而使得策略在出现回撤时有章可循。
基于上述思路,我们构建了沪深300股票池中的选股策略,该策略从2010年中至2017年中的七年时间里,在8.33%的最大回撤下获得约18.37%的年化收益,领先于传统的动量策略,并且,策略在今年取得了7.113%的超额收益。

1.引言

量化选股研究一直是量化领域经久不衰的课题,其本质是在某个特定的股票池内,通过寻找某些个股优于一般股票的“性质”,以这些性质为基础构造组合,从而得到长期跑赢基准的策略。这里的“性质”传统意义上被称为“因子”,并由此衍生出一系列研究,包括如何挖掘具有稳定超额收益的因子,如何通过因子构造最优组合,如何平衡收益、风险、成本等投资因素,等等。然而,随着传统风险管理模型的兴起,投资者会发现挖掘新的具有“边际收益”的因子越来越难,同时,已知因子的收益也随着市场风格变换越来越不稳定,有些甚至渐渐失效。因此,在这个时点,我们有必要放开思路,重新审视因子选股。

深度组合和传统的多因子体系不同,它使用深度神经网络训练出的因子进行组合构造,其最大的不同点就是无论是因子本身还是组合的构建过程都是非线性的。本篇报告即是根据国内外众多的已有研究,综合其理念,并加入了一些自己的思考,针对因子选股问题进行了一些新的尝试。我们发现,通过这种方式构建的组合,由于非线性特征的复杂性,其稳定性虽然不能和传统的多因子选股方法相比,但在一些传统选股方式受挫的年份能够较高的超额收益,从而对因子选股研究做了有益的补充。具体到实证方面,我们在沪深300内的选股策略可以在2011年至今在8.33%的回撤下跑出18.37%的年化超额收益,其中,今年以来超额收益达到7.11%,最大回撤1.33%。

2.深度组合理念

2.1.深度组合的基本概念

深度组合这个理念首次提出是由JB Heaton在其2016年9月的论文《Deep Learning in Finance: Deep Portfolios》中提出。文中提出了深度组合这个概念,但是却并没有对如何构建组合进行详细描述。这里的“组合”和组合管理中的“组合”含义并不相同,其构建目的是为了预测标普500指数的下一期收益率。但是,通过深度神经网络提取因子的思想却被和很多其他研究不谋而合。其中,Lawrence Takeuchi在其论文《Applying Deep Learning to Enhance Momentum Trading Strategies in Stocks》就详细描述了如何通过深度组合对传统的动量效应进行增强。同样,在音频处理领域大热的LSTM的算法也被运用到股票时间序列预测中,Jakob Aungiers在其论文《LSTM Neural Network for Time Series Prediction》中详细描述了他所在的对冲基金是如何运用该算法进行投资的。

然而,本篇报告并不旨在对深度学习本身进行科普性介绍,也不对其算法及其推导过程进行详细描述。相反,我们希望借鉴海内外已有研究,结合自己的思考,将深度学习算法中的核心理念运用到选股中,并解决投资中的实际问题,例如投资者谈“机器学习”而色变的“黑箱问题”,回测效果好而实际效果差的过拟合问题等。

为了让大家对深度组合有一个大致的了解,这里先简单介绍深度神经网络的概貌,至于和神经网络相关的细节问题,例如前向后向算法、神经单元的优化等问题我们不做介绍,具体实施细节属于计算机算法范畴,可以参考神经网络相关书籍文献。

如图1所示,是一个简单的深度神经网络示意图。深度神经网络和传统的神经网络在结构上并无二致,唯一区别就是字面上的“深度”,即包含了更多的隐含层。之所以要引入更“深”的结构,深度学习理论已经作了很详细的介绍,我们不再赘述,但是从投资的角度讲,由于我们每层的隐含层节点都使用简单的非线性激活函数,因此,通过增加层次,可以学习出更复杂的特征,或者所谓的非线性“因子”,从而使得网络的表达能力更强。将我们用于构建深度组合的原始信息作为输入层信息输入到神经网络中,经过网络一系列的学习过程,输出层输出我们需要构建组合的信息,整个过程即为深度神经网络构建组合的过程。可以看到,和传统的多因子组合构建方式不同,我们在整个过程中并未对因子本身做任何的处理(例如因子检验、因子正交化等),而是希望神经网络本身帮助我们完成这些任务。下面,我们来说明本文如何通过该网络构建深度组合。

2.2.深度组合的构造

本节介绍通过深度神经网络构建组合的基本思路。和传统的多因子选股体系不同,我们并不是通过个股的线性组合来构建策略,而是通过神经网络对特征进行提取,并以这些特征给出每只不同股票预期收益率区间的置信度,根据这些置信度确定组合的构造方式,具体来说步骤如下:

(a)提取市场原始信息作为输入层数据输入神经网络。例如,如果需要挖掘个股的价格信息,则可以以个股过去的T期的收益率作为原始数据输入到网络中。本篇报告中,我们希望通过对股票价格序列的研究,挖掘出价格信息中的隐含规律,因此,神经网络的输入项即为选股池内每只个股过去120日的收益率;

(b)通过自编码网络学习价格信息蕴含的非线性特征。这部分应用了深度学习中最基本的算法——自编码来构建价格特征。具体算法在第四章中详细阐述,其本质是通过一种方式将隐含在时间序列中不同股票的共同“模式”挖掘出来;

(c)利用上一步骤提取的特征对T+1期的预期收益率进行预测。为了使得输出项更加清晰,这一步我们将问题转化为传统的分类问题,即把连续的收益率数值区间化,输出落在不同收益率区间的“概率”,通过这个概率值,根据不同的投资目标构建相应组合。

2.3.隐含假设

细心阅读2.2节会发现,如果要使用过去时间的价格序列通过深度神经网络来构建组合,其实隐含了一个非常强的假设,即:

假设: 所有已知的因子信息和未知的因子信息都包含在过去的股票价格中,这些因子可以包括价量因子、财务指标因子、交易模式因子等。

可以看到,这是一个非常强的假设,在现实的市场中基本不可能满足。那么,为什么我们还要提出这个假设呢?因为,如果这个假设成立,通过深度神经网络对过去时间价格序列的挖掘就是充分的,因为所有因子都已经包含在价格序列中了,如果策略还无效,那么说明挖掘的特征并不具有通用性,那么需要重新审视挖掘算法。相反,如果模型失效了,那么除了算法本身可能的问题外,更大的可能是这个假设并不成立,或者是在某段时间不成立。因此,我们需要有一个指标判断策略是否失效。我们在第4.1节中详细说明了如何通过一个量化的指标判断模型有效性。

通过本章阐述的方式,我们可以对个股的价格序列进行最简单的模式挖掘。考虑到这是我们在深度学习领域尝试的第一篇报告,我们并不打算使用很复杂的算法对数据本身做更多处理,而是将深度学习的基本理念应用到选股中,给投资者一个直观的印象,也即通过深度神经网络从价格序列中挖掘到的规律是否稳定存在,通过该方式构建的策略是否存在投资者普遍担心的黑箱问题、过拟合问题。这些问题在后续章节中将详细阐述。

3.深度组合的理论基础及其不同视角

在我们对深度组合构建算法进行详细阐述之前,有必要从理论上解释这种方法的合理性和可靠性。考虑到投资者对传统金融学理论的既有理解,我们试图从传统的金融学理论视角出发,来审视深度组合构建过程。通过这些审视的过程,我们也可以从不同角度将深度组合的神秘面纱逐渐掀开,从而能够更好的解释深度组合的核心逻辑及本质。下面,我们将分别从Markowitz的均值-方差模型、Sharpe的CAPM模型、Black-Litterman模型、传统的多因子风险管理模型,以及信息论对信息传输和处理的角度来说明深度组合和这些理论几乎都是兼容的,也就是说,深度组合并不是方法论的创新,而只是从不同视角对组合构建进行了全新的尝试。

3.1.Markowitz和Black-Litterman的视角

根据上文所述,对市场的解读就是特征提取的过程。无论是Markowitz的均值方差模型,还是Sharpe的CAPM模型,再到APT模型,他们开始使用一层线性因子来处理股票价格,直到后来很多学者逐步发现了一系列的因子,例如价值、动量、流动性等等。其实,这些传统模型都在通过“特征”提取对市场进行解读。而深度组合也只不过是沿用了这样的思想,通过自编码的方式,提取出了一些非线性特征而已。

下面我们来说明怎么通过深度组合的框架来解释Markowitz的均值方差模型。均值方差模型其实是通过均值和协方差矩阵进行了“编码”:

用统计学术语来说,如果市场收益是具有常数预期收益和协方差的多元正态分布,则上述的指标已经能足够反应市场特征。相当于我们把N*T的观测数据“降维”到了N个平均值和N(N-1)/2<

(转)基于深度组合的选股策略相关推荐

  1. 【Project Report】基于 QP 的优化选股策略

    一.概述 基于AI的量化投资领域特别是针对A股市场的AI技术已经成为了当下的热点话题,本文将基于big quant平台,了解并掌握量化投资的一些基本操作方法,并通过一些QP优化策略实现选股. 二.基于 ...

  2. python量化选股策略_【机器学习】第六课:基于SVM的量化选股策略

    导语 接触过机器学习或数据挖掘算法的人都应该知道支持向量机(SVM),支持向量机一经提出就得到了广泛应用.本文主要探讨该算法在金融领域量化投资多因子策略上的应用.在这篇文章中,先是介绍了SVM的基本原 ...

  3. [量化学院]价值选股策略——基于机器学习算法

    文献回顾 回顾价值策略 价值策略通俗地讲就是买入便宜股票,卖出昂贵股票,思想非常简单和直观.但是实际操作上这非常困难,因为我们没办法直接观察股票的真实价值.投资者可以从不同的视角采用不同的指标来估计股 ...

  4. 基于日内交易特征的因子选股策略

    摘要: 个股的日内交易特征是当日交易关键要素的概况.通过多维度刻画一段时间内高开低收以外的日内交易细节信息,使得低频交易成为可能. 利用个股分钟级别的量价数据构造月频因子,我们更为推荐两步算法:首先刻 ...

  5. 证券投资深度学习_基于风险中性的深度学习选股策略

    今天我们为大家带来最新的研报内容,来自广发证券金工团队的<风险中性的深度学习选股策略>.下面让我们来一起学习吧!https://mp.weixin.qq.com/s?__biz=MzAxN ...

  6. 基于组合权重优化的风格中性多因子选股策略_数量化专题之五十七

    国泰君安_刘富兵_2015-04-26 基于组合权重优化的风格中性多因子选股策略_数量化专题之五十七 一. 内容摘要 基于股票组合的权重优化方法,构建市值中性.行业中性.风格中性的最优投资组合,可获得 ...

  7. 风险中性的深度学习选股策略

    一.数据驱动型机器学习模型的问题 目前流行的机器学习方法,包括深度学习,大部分是数据驱动的方法,通过对训练集数据学习来提取知识.数据驱动型机器学习方法应用成功的前提是:从训练集数据中学习到的" ...

  8. 基于深度强化学习的组合优化方法在工业应用中的实践

    <统筹方法平话>中有一个例子曾被收录到语文课本中,讲"烧水泡茶"有五道工序:1.烧开水,2.洗茶壶,3.洗茶杯,4.拿茶叶,5.泡茶,其中前四道工序是泡茶的前提,且各道 ...

  9. 【ML4CO论文精读】基于深度强化学习的组合优化问题研究进展(李凯文, 2020)

    基于深度强化学习的组合优化研究进展 本人研究方向(博士期间):多目标组合优化与决策研究--致力于多约束多目标多任务组合优化算法和多目标决策系统的研究与开发,以及多目标优化技术在一些工程实践中的应用. ...

  10. 基于DNN模型的智能选股策略

    1.DNN原理介绍  1.1 神经元  1.2 DNN  1.3 反向传播 2.实例:DNN模型选股  2.1 策略步骤和模型参数  2.2 回测结果 1. DNN原理介绍 1.1 神经元 神经网络的 ...

最新文章

  1. 洛谷P3254 圆桌问题(最大流)
  2. JAVA 代码里中文乱码问题
  3. unity3d鼠标拖拽模型,旋转模型
  4. come type6 定义_COMe-B6101龙芯3A3000 COM Express Type6模块
  5. 复制Hadoop目录至其他节点时的注意点
  6. JavaScript实现设置或清除数字指定偏移量上的位setBit算法(附完整源码)
  7. jQuery框架学习第十天:实战jQueryUI常用功能
  8. java i o教程_Java I/O系统
  9. 敏捷开发一千零一问系列之十三:故事点好还是人天好?
  10. 做梦都没想到,就这样得到了一位大佬的青睐
  11. 为什么做AI的都选Python?
  12. [洛谷] P1097 [NOIP2007 提高组] 统计数字
  13. win7 开WiFi共享
  14. Oracle LiveLabs实验:DB Security - Unified Auditing
  15. 写完的文档有多少个字?字数统计在word哪里
  16. Web全栈~38.Vue
  17. arcgis10.2创建新站点报错无权限
  18. ubuntu/linux命令记录 长期更新
  19. 打造高效能团队之测试能力提升
  20. elipse版本简介

热门文章

  1. Exchange2013/2016 ECP/OWA无法通过用户验证EventID3002/3005
  2. 【面试题】一个号称BAT算法题
  3. MySQL-快速入门(15)MySQL Replication,主从复制
  4. Quartz-第一篇 认识Quartz
  5. centos7.4下的KVM虚拟机安装使用
  6. sklearn学习笔记之开始
  7. SQL Server数据导入导出的几种方法
  8. windows2003手工安装配置php5详细指南
  9. paddleocr识别VIN码
  10. 深度学习之目标检测 第4章 深度学习目标检测方法