金融量化分析方法案例:兴业金工徐寅于明明团队
金融量化分析方法案例:兴业金工徐寅于明明团队人工智能与量化投资1.14、我们基于月度及周度E-NELS因子构建了模拟组合策略体系,包括了指数增强和主动量化在内的11个模型,整体表现优异。以针对于中证500的月度增强策略为例:超额收益率为12.6%,信息比率为4.27,最大回撤仅为2.1%。风险提示:本报告模型及结论全部基于对历史数据的分析,当市场环境变化时,存在模型失效风险。一、引言
导读
1、四年前,我们通过5篇报告系统性的介绍了机器学习算法在量化选股领域的应用;四年后,我们以改进Adaboost 算法为核心,扩展后的兴业定量因子库为基础,构建了动态选股模型。改变的是视角(由广度过渡到深度),不变的是初衷,我们构建的选股体系依然新颖有效。
2、我们引入改进后的Adaboost算法,以过去12个月的因子表现与股票月收益为训练样本,在考虑了行业市值中性化及失败者样本的情形下,构建了E-NELS因子。该因子IC 为0.136,年化IC_IR达到了7.0,多空策略年化收益率61.2%,夏普率高达6.12,最大回撤仅为0.5%,有效性非常强。
3、进一步地,我们根据市场投资者的偏好,构建了换手率处于不同档位的选股模型。以高换手的周度选股模型为例,其因子IC达到0.12,t值高达33;多空策略年化收益率达到124.5%,夏普率高达9.82。
4、我们基于月度及周度E-NELS因子构建了模拟组合策略体系,包括了指数增强和主动量化在内的11个模型,整体表现优异。以针对于中证500的月度增强策略为例:超额收益率为12.6%,信息比率为4.27,最大回撤仅为2.1%。
风险提示:本报告模型及结论全部基于对历史数据的分析,当市场环境变化时,存在模型失效风险。
一、引言
1.1
人工智能与量化投资
自从上世纪七十年代发端于美国,量化投资已经走过了四十多年的发展历程。近些年来,随着进入这一领域的资金和人才不断出现井喷式的增长,传统量化投资者,特别是以使用多因子框架为代表的股票量化投资管理人,其所面对的挑战和困难也愈发凸显出来:现有的因子和策略体系已经被过度挖掘和开发,推陈出新、获取超额收益的难度不断加大。更令人担忧的是,由于研究方法和所使用的数据同质性非常高,策略的拥挤程度与日俱增,一旦出现流动性风险或是事先无法预料的大规模清算,那么类似于2007年8月份发生的“量化危机”也必将重现。
股票量化投资管理的未来会走向何方?也许每个人都有自己的思考,而本文正是我们团队回答上述问题的一次尝试。在人工智能发展方兴未艾的今天,我们尝试将量化投资与人工智能的重要子领域——机器学习有机结合,我们期望两者的碰撞能为投资业带来不一样的风景。而这种看似跨界的融合,其实在最近的十多年里已经不断涌现。图表1给出了一些人工智能在投资行业应用的案例。
图表1、人工智能在投资领域的部分应用案例
本文的主要研究对象,是机器学习方法在量化选股中的应用。在过往的量化股票投资实践中,多数的管理人倾向于使用简单明了的线性多因子框架来管理组合。究其原因,我们认为可能有以下几个方面:首先,相对于线性模型来说,很多机器学习方法更像是一个黑盒,运算机制比较复杂,很多结果也不一定能找到相应的经济或金融学上的解释。其次,机器学习模型中包含的参数往往较多,这使得在训练建模的过程中,容易遭受过度优化问题的困扰,而这也会进一步导致模型的泛化能力下降,样本外预测能力不足。但复杂的非线性机制、灵活的参数选择本身就是机器学习方法的特点,也正是因为这种特点,才让机器学习模型在对金融市场运行规律的表达方面有着不同于传统线性模型的独特优势。我们认为,各种方法本身并无优劣之分,关键是看投资管理人如何去有效地运用。
本文的目标是基于机器学习模型,构建一个完整因子选股体系,以获取有别于传统线性模型的、更为有效的投资组合。
1.2
机器学习之集成学习
这里并不会对机器学习的整体做过多的阐述。我们将结合整个研究框架,有的放矢的对一些常见的概念做简单的介绍。如果欲详细了解机器学习,还请参考其他材料。
机器学习是计算机科学的一个分支,通过算法的设计,使得计算机具有一定的人工智能特性,以完成更为复杂的任务,例如:模式识别、系统控制、推断和预测等等。机器学习算法基于已获得的数据,深度挖掘其内在特征以及不同变量间的隐含关系,对可能存在的规律进行自动识别,并据此做出合理的判断。
机器学习主要有三种类型,分别为:监督式学习、无监督式学习以及增强学习。而常用的算法则包括:逻辑回归、决策树、回归树、支持向量机、神经网络、随机森林等。
图表2、机器学习算法分类
上面列出的种种算法,应该说各有优缺点,能否将不同的分类算法组合在一起,实现更好的学习分类效果呢?这就很自然地引出了本文研究的重点——集成学习方法(Ensemble Method)。
集成学习方法通过组合多个基学习器来完成学习任务,类似于我们俗语中说的“三个臭皮匠顶个诸葛亮”。基分类器一般采用的是弱学习器,通过集成方法,组合成一个强学习器。集成学习的泛化能力一般比单一的基学习器要好。集成学习方法主要包括Bagging和Boosting两种,Bagging和Boosting都是将已有的分类或回归算法通过一定方式组合起来,形成一个性能更加强大的学习器。我们后续将探讨如何基于集成学习中的Adaboost算法构建一套非线性多因子选股模型的框架。后文中若无特别说明,研究的时间窗均为:2005年1月31日-2019年4月30日。
1.3
历史工作回顾
四年前,重剑出鞘,兴业金融工程团队耗时一年撰写了《聪明的Alpha》系列报告,是市场上第一家系统性的将机器学习应用于A股市场量化选股领域的卖方团队。在这5篇深度报告里,我们详尽地探讨了以下几个方面的内容,包括机器学习的基本原理、应用于量化选股时需要注意的问题、不同参数设定下(如行业市值中性化的影响、因子池的优化、预测窗口的影响等)选股效果的差异、使用不同模型(Adaboost、Logistics、KNN、Random Forest、SVM、Decision Tree等)选股效果的比较。文章研究角度新颖,覆盖议题广泛,在当时市场中收获了不错的口碑。
图表3、过往研究回顾
时隔四年,再次将目光聚焦于机器学习选股,我们已不是毫无准备。基于对过往研究的梳理和不断加深的认知,我们在继承之前成功经验的同时,也不断开拓创新,这主要体现在以下几个方面:
1、 因子池扩容:4年前,我们量化因子库仅有33个选股因子,何其单薄。现如今,经过团队的不断积累,我们构建了基于价值、成长、质量、动量反转、分析师情绪、另类(细分为规模、风险、流动性、技术指标)维度的165个选股因子,多维度输入正好可以进一步发挥机器学习方法上的优势。
2、模型算法改进:传统的Adaboost算法有一定的局限性,比如容易受极端值影响、分类结果较为粗糙等。此次我们使用的是改进Adaboost算法,其对选股问题的适用性更强,效果也更好,具体参见后续的算法介绍。
3、日历效应再探:日历效应的本质是在特定的月份或者时期,市场的收益、风险表现明显异于其他时点。本报告在解决日历效应方面和之前的工作有一定的差异,设定更为合理。
4、周度模型搭建:近年来,换手率较高的量化选股策略在业界越来越流行,有别于之前开发的月度模型,我们在本文中尝试利用价量类指标构建了相对高频的周度选股模型。此类模型对短期市场变化反应更为敏锐,策略收益率也有了显著提升。
5、指数增强策略体系构建:对于目前的A股量化投资而言,指数增强是非常重要且为机构投资这广泛认可的一类产品形式。在本文的最后,我们利用构建的月度和周度选股模型,依据不同的风险收益偏好,设计了一套相对完整的指数增强策略跟踪体系。策略整体表现十分出色,后期我们也将定期跟踪样本外表现。
接下来,就让我们从基本概念出发,向大家展示基于Adaboost算法所构建的机器学习选股模型的每一个细节。Let’s go!
二、基于Boosting集成学习的量化选股模型
2.1
Adaboost算法介绍
改进Adaboost算法介绍
传统Adaboost算法在很多问题上都取得了良好的表现,但当我们考虑将Adaboost应用于量化选股问题时,其存在的一些问题也不可避免的暴露了出来。首先,量化选股往往体现为一个排序问题,但传统二分类算法的最终输出结果仅为1或-1,在生成最终股票排名时不太方便,区分度不够;其次,在构建弱分类器时,传统方法本质上还是假设了因子与最终分类结果之间满足单调性,这对于线性分类问题没什么太大的影响,不过一旦遇到因子与结果之间呈现非线性相关的情况,传统Adaboost算法就力不从心了。下面的图表4展示了我们在《猎金系列之二十八——公司治理与股票预期收益率》中构建的“股权集中度”因子与预期收益率之间的关系,可以发现两者呈现一种倒U型相关性。可以想象,如果仅采用传统Adaboost算法,我们就无法充分利用股权集中度因子进行选股。
图表4、股权集中度因子分位数测试效果
为了应对上述问题,我们引入了改进版的Adaboost模型,具体算法流程如下:
1、模型基本设定
训练样本集为{(x1 y1) ... (xi yi) ... (xN yN)},其中:yi ∈ Y = {-1 1} xi = (xi1 ... xik ... xiK) ∈ X,xik是第 i(i = 1 ... N)个样本在变量 k(k = 1 ...K)上的取值,N为样本总数,K 为考察变量的总数(后文中将用因子数来代替变量数),样本的初始化权重向量为等权向量D1(i) = 1/N。
2、为了构建第i层弱分类器
1)使用具有权重的样本来训练弱分类器,对于任意k∈{1 ... K},将训练样本{(x1 y1) ... (xi yi) ... (xN yN)}按照因子值{x1k x2k ... xNk}的大小等分为Q组:X1 ... XQ,其中XQ中包含了{x1k x2k ... xNk}中取值最大[N/Q]的个样本(这里[.]代表向上取整)。
2) 计算组样本中,每一组内取值为1和-1的样本的权重和:
这里不难发现,
定义错误率指标为
仔细观察上式不难发现,在任意分组q内,1与-1样本的数量差距越大(即分类效果越好),错误率的取值就越小;反之,分类效果越差,取值也会越大;
3) 遍历每一个k,得到使得 εlk 最小的 kl∈{1 ... K} ,定义第 l 层弱分类器的信心度为:
注意,这里的信心度是一个带符号的数值,当
信心度取值为正,且差距越远,信心度的取值越大,表明分类结果更可能为1;当
信心度取值为负,且差距越远,信心度的取值越小,表明分类结果更可能为-1;当
信心度取值为0,表明模型对该样本没有区分能力。
4) 更新样本权重向量
这里Zl为归一化因子。
3. 强分类器的生成
最终强分类器将由每一层确定的弱分类器的信心度相加得到:
将传统Adaboost与其改进版进行对比后不难发现,改进版本在以下几个维度做出了调整:
1) 有别于传统算法中对因子值直接二分的做法,改进算法中引入了Q个分位组合,这使模型对非线性关系的表达得到了加强,分类的精细度有所提升;
2) 针对改进后的做法重新设计了错误率的定义方式(见公式(5)),能够更稳健地在多分组的情况下对模型的整体区分度进行衡量;
3) 直接利用弱分类器信心度之和反映最终的分类结果(见公式(8))。
2.2
基于改进Adaboost算法的量化选股模型
在上一节中我们指出,改进版的Adaboost算法从特点上讲更有利于量化选股模型的表达。在本节中我们将详细阐述基于改进Adaboost算法的量化选股框架。总的来说,我们将量化选股问题化归为了一个二元分类问题,根据下期股票收益率的大小,将股票池划分强势股和弱势股两类。模型的作用就是要给出某只股票属于强势股还是弱势股的分类结果。结合改进版Adaboost算法,模型具体的实现流程参见图表5。
图表5、改进Adaboost算法构建选股模型流程图
模型的输入是我们兴业金融工程团队构建的包含了165个量化选股指标的因子库。该数据库包括了价值、成长、质量、分析师情绪、动量反转、另类这六大类指标,其中另类进一步分为:规模、风险、流动性、技术这四个子类。最终输出的结果是对每个股票的信心度,用于衡量该股票属于强势股的程度(取值越大,越有可能属于强势股;反之则越有可能属于弱势股)。
图表6、兴业量化选股因子分类数量统计
2.2.1、训练样本
首先我们要进行训练样本的准备。大多数的机器学习算法对于输入的数据都较为敏感。如果训练数据噪声较多,一致性不好,那么算法极有可能陷入过度优化的泥沼。所以说数据样本准备对于机器学习来说,是至关重要的一步。在某种意义上,甚至超过了对学习算法的选择。
我们使用横截面上因子的序作为输入,而不是简单使用原始因子值,这在某种程度上也能规避极端值对算法的影响。同时因为我们的目的是比较股票的相对优劣,而并非关注具体数值的大小,因子的序完全满足这一要求。在每个时间点上,对于每个因子,我们计算每只股票按照这个因子排列的顺序,并除以总的股票数,使得所有因子的值都划归到(0 1] 之间。
对于收益率数据我们也要做一些处理。我们将下期股票收益率从大到小排列,取前30%的股票作为强势股,后30%作为弱势股,中间的股票视作噪声弃之不用。强势股我们标记为 1,弱势股我们标记为-1。这样每个样本点可以记作(x y),其中x = (x1 ... xk ... xK)是股票在各个因子上的序化的暴露,y = ±1。为保证算法的稳定性,我们用过去12个月月底的面板数据来构建训练样本。
2.2.2、弱分类器
每个弱分类器可以简单的理解为一个因子。对于每个因子,我们按照其分位点将股票等数量划分为若干组,每一组内我们分别计算强势股和弱势股的权重总和。直观上讲,区分能力最有效的因子应该是强势股和弱势股权重和相差较大的因子。遍历所有的因子,我们选择区分能力最强的因子作为该层的弱分类器,同时利用该因子每个分位组里强势股和弱势股权重孰大作为区分的标志。当新的因子值落入某个分位组里时,如果该分位数组里强势股权重大,我们便将该股票分类为强势股,反之则为弱势股。
2.2.3、权重更新
初始时样本权重为等权,在每次找到新的弱分类器后,我们将调整数据的权重。被正确区分的样本权重将被调低,而区分错误的样本权重将加大。下一层的分类器将基于调整后的权重进行构建。这样每次我们都将学习的重点转移到上一层分类错误的股票上,最终将逐步改善模型整体的分类准确度。
2.2.4、强分类器
最后,我们将所有弱分类器加总得到强分类器。分类器会赋给每一组内的股票一个数值作为信心度,用以衡量其属于强势股的程度,值越大越可能为强势股,越小越可能为弱势股。我们把这个强分类器输出的信心度分值称为ELS因子(Ensemble Learning Signal 即集成学习因子)。
上述四个步骤的具体实现可参考2.1节中对改进版Adaboost算法的描述。在后文分析参数敏感性之前,我们取定分组数Q=5,弱分类器的总层数L=30。由于我们样本的起始日期为2005年1月底,考虑到模型需要滚动12个月的样本作为训练集,输出的ELS因子从2006年1月底可以开始计算。
同时考虑到历史上行业和市值因子对A股横截面收益率预测的重要意义,我们尝试分析行业市值中性化对ELS因子的影响,观察在剔除市值或行业风险后,是否对目标因子风险收益比的提升有所帮助。
在进行行业市值中性化的处理时,我们采取如下的方法:在每个行业内,以行业内所有股票的流通市值中位数为界来进行大小票的划分,中位数以上者为该行业的大盘股,以下者视为该行业小盘股。而后分别在每个行业市值股票池内进行横截面因子的Rank标准化,再输入到模型中进行训练。通过这种方式所构建的ELS因子,称为NELS(NeutralizedEnsemble Learning Signal)因子。
2.3
因子表现
我们对NELS因子进行了全面的测试:从IC测试结果来看,中性化之后的因子的IC、IC_IR以及t值要远优于未作中性化处理的因子表现(ELS因子);同时NELS因子过去6个月的IC均值走势明显要更为平稳。而分位数测试的结果表明,NELS要全面优于ELS,多空组合的年化收益率、夏普率分别达到55.3%、5.6,从收益和风险两个角度都提供了更好的表现。
综上,我们后续的研究将以行业市值中性化之后的结果作为研究对象。
图表7、NELS Vs. ELS因子IC测试
图表8、NELS Vs. ELS因子IC历史走势
图表9、NELS Vs. ELS分位数组合测试结果
图表10、NELS因子的多空净值曲线
2.4
模型优势
基于改进版Adaboost算法的量化选股模型具备一系列独特的优势,大致总结包括:很好的将非线性因子转化为相对线性的效果、过拟合的免疫性、多重共线性的免疫性、选股命中率较高、模型能利用最新时点的信息、对弱分类器的个数敏感性较弱等,我们从中挑出2个优势供大家参考(其他优势参见报告)。
2.4.1、非线性因子的利用
在引入改进Adaboost算法时,我们提到:该算法在截面上将所有的股票分成Q组,然后对每一组内强势股与弱势股进行区分。这种细分方法一定程度上将非线性关系转化成了线性关系(比如选股效果为U型的因子)。仍然以我们前面提及的管理层集中度指标为例,经过Adaboost算法调整之后的因子分位数组合呈现一定程度的单调性,选股效果大幅优于之前的表现(具体参见图表4)。
图表11、修正后的股权集中度因子分位数测试结果
2.4.2、参数敏感性较弱
机器学习的参数敏感性问题是很多人关注的焦点。在本文应用的模型算法中,弱分类器的个数是一个主要参数。在前面的章节中,我们从165个因子池中选择了30个因子作为弱分类器。这里,我们将对弱分类器个数做敏感性分析,以确定合理的参数取值。
我们遍历了参数取值为5、10、15……160等的各种情况,从IC测试结果来看:当弱分类器数量由5个提升至25个时,边际改善非常明显;从25-30阶段也有一定的效果,而之后提升效果甚微,表现则趋于稳定;另外因子的分位数测试结果也呈现相同效果。综上,我们将弱分类器个数定为了30。
图表12、弱分类器个数敏感性分析之IC
图表13、弱分类器个数敏感性分析之IC_IR
2.5
玩转风格轮动
机器学习在量化选股中难以推广的一个原因是大家普遍认为其黑箱操作的性质,很难理解每次选股做了什么调整,选中了什么风格。而我们前面也提到了Adaboost算法流程相对容易理解,黑盒属性较弱。这里我们将历史上每期选择的因子提取出来并分析其风格。
由于不同风格本身因子池大小不一,如果仅仅看因子数目的话有失偏颇,所以我们这里会分析:1、每期排名前三的因子所属风格(即最为重要的三个弱分类器);2、选中的不同风格的因子(选中的30个弱分类器)占本身因子池数目比例。
分析每期选中的30个弱分类器因子所属分类占相应风格的比例,我们发现动量反转、情绪、另类因子一直居于较高的水平,说明这些类别中的因子持续有效性较强。
从单个因子维度来看,另类因子有效性一直较强,但这里需要注意的是:Amount_20D_Avg、Turnover_20D_Avg两个因子的表现与众不同:有效性最强、持续性好,并且形成了很好的互补性。Amount_20D_Avg表示过去20天的日均成交量,在08年金融危机之后以及2013-2016年慢牛 牛市期间最为有效;Turnover_20D_Avg表示过去20天的日均换手率,在2008年金融危机之前以及期间、2017-2018的震荡和当下的市场最为有效。动量反转因子在2011-2013年期间表现较为强势,在这期间成长因子也表现出一定的优势;基于财务类的价值因子在2006-2008年以及2016-2017年表现出一定的优势,近期呈现复苏的迹象。
图表14、NELS构成因子的风格分析(一)
图表15、NELS构成因子的风格分析(二)
三、模型改进与增强
3.1
失败乃成功之母
在上一章节中,我们详细介绍了基于改进版Adaboost算法的量化选股模型,并给出了相应的NELS因子的表现。该阿尔法模型在历史上的预测能力是非常稳健的,但也出现过若干次明显的回撤和失效的情形。如何进一步提升模型的表现呢?加入更为有效的选股因子当然是一种方式,但在本节中我们要引入的方法其实更为直接,用一句俗语来概括,那就是:失败乃成功之母!
具体来说,站在某个时点,首先我们计算之前构建好的NELS因子的历史IC序列,然后将那些IC值低于历史IC中位数的时点的样本拼在一起,称之为“失败者样本”(之所以叫做“失败者样本”,是因为NELS因子在这些样本的中预测能力表现相对较差)。最后,我们在失败者样本上重新训练之前的选股模型,并利用得到的新因子L-NELS(Loss NELS)修正原有的NELS因子。在实践中,我们要求NELS因子需要具有10年的历史数据,如果不足10年,至少要保证80%的非空率;因而本章节因子的计算和测试只能从2013年开始。
我们对基于失败者样本得到的L-NELS因子进行了全面的测试。从结果来看,因子IC达到0.124、IC_IR高达1.49,分位数测试各组别严格单调,多空组合年化收益率57.7%,夏普率达到4.74,有效性非常强。
图表16、L-NELS因子的IC检验
图表17、L-NELS因子分位数组合测试结果
图表18、L-NELS因子多空净值曲线
仅仅从数字来看,NELS与L-NELS因子表现相差无几,但如果分月度来观察,就会发现两者有较大的差异。尤其是在2月份,基于L-NELS因子的IC均值达到0.12,而NELS因子的IC仅仅为0.04。其实我们都知道A股长期以来都呈现出较为明显的春节效应,如果不做特殊的处理,很多模型或者因子在1、2月份的表现都差强人意(基于Adaboost模型得到的NELS因子也不例外)。正是因为在失败案例中2月份样本出现的次数较多,这才最终导致了L-NELS因子对春节效应(或2月效应)的把握更为精准。
图表19、NELS & L-NELS因子在不同月份的IC表现
鉴于两者的互补性较强,我们尝试了以下几种方式来利用L-NELS因子对NELS因子进行修正与增强:
1) 将L-NELS因子与NELS按照1:2合成,称之为NELS_Comb_Loss;
2) 将NELS因子在1月底的值替换成L-NELS,其他月份不变,称之为NELS_Loss_FebRep;
3) 将NELS在1月底的值替换成L-NELS,同时其他月份按照1:2(L-NELS:NELS)的比例合成,称之为E-NELS(Enhanced Neutralized Ensemble Learning Signal)。
对比三个合成因子的表现:第三种合成方式的因子IC达到0.136、IC_IR达到2.02,有效性要远高于方式1和方式2的表现。而分月度研究三个因子的IC表现,与我们的预期也比较一致:方式3合成因子在各个月度的表现更加平稳有效。
图表20、NELS与E-NELS因子在不同情况下合成的IC检验
图表21、NELS与E-NELS因子在不同情况下合成的IC月度均值
我们进一步研究E-NELS因子分位数组合的表现。从测试结果来看,各组别严格单调,规律更加明显,多空组合的年化收益率高达61.2%,夏普率达到6.12,最大回撤仅为0.5%,改进效果非常明显。因此在后续的研究中,如果没有特别说明,我们都将基于E-NELS因子展开。同时需要注意的是:在后续的研究中,我们将样本填充至2006年1月底,其中2006-2012年底这段数据将用原始的NELS因子来替代。
图表21、E-NELS分位组合测试结果
图表22、E-NELS因子多空净值曲线
四、高低换手风格选股模型搭建
月度,应该说是当前市场最为流行的量化股票类策略的调仓频率,其在信息利用的及时性和组合管理的便利性之间找到了一个较好的平衡点。但组合管理者在实践中遇到的问题总是有其各自的考量。对于组合规模较大或公司对交易及风险把控较严的管理人来说,月度调仓有时还是太过频繁,特别是当市场流动性一般时,往往会给模型的实现带来比较大的压力;而对于一些管理资金规模并不是太大,或其本身来自于非公募保险机构,交易制度较为灵活的管理人来说,提高换手频率,更加充分地去把握一些中短期投资机会以提高组合的收益率,往往是他们的核心诉求。有鉴于此,我们在前文所开发的月度量化模型的基础上,又搭建了两类换手风格差异明显的选股模型,以供投资者参考。
4.1
低换手模型构建
前面我们已经阐述了对低换手模型需求的背景,接下来就尝试通过不同的方法降低模型换手率。我们的主要方法有以下两种:
1、优化所选因子:剔除因子库中的高换手率因子,保留低换手因子来进行模型的训练和学习,以达到降低换手率的目的;
2、延长向前预测期:将对未来1个月进行预测,调整为对未来3个月进行预测,以使得更多具有长期预测能力的因子进入模型,从而降低换手率。
4.1.1、优化所选因子
在前述研究中我们提到六大类因子共计165个(价值19个、成长33个、动量反转9个、情绪13个、另类52个、质量39个)。因子逻辑不同,其换手率也有很大的差异,比如价值类因子的换手率相对较低,一般多头单边换手率不超过30%,而另类和动量反转因子换手率相对就高一些。我们用因子前后两期的spearman相关性作为换手率衡量的指标(一般高换手率的因子前后期的相关性必然很低),研究165个因子自相关性大小,将自相关性小于阈值的因子删除,用余下的指标作为模型的输入构建低换手选股模型。
图表23、不同风格因子的自相关性系数均值
我们在因子自相关性阈值分别设定为75%、80%、85%、90%的情形下,均计算了相应的E-NELS因子的表现。
图表24、不同阈值下的因子池总数
当阈值自75%上升至85%时,因子的选股能力并没有显著变化,同时自相关性水平以及换手率也得到了有效的控制,而当阈值进一步提升至90%时,虽然换手率和自相关性得到了更为明显的改善,但是选股能力也大幅度下降。综合考虑之后,我们将阈值设定在了80%。
此时,通过删除高换手率因子所得到LowTurn_E-NELS因子的自相关性由0.4提升至0.67,多头组合的单边换手率自73.2%降低至54.0%,边际改善非常显著。
图表25、低换手模型对阈值敏感性分析之IC检验
图表26、低换手模型对阈值敏感性分析之自相关性以及多头换手率
4.1.2、延长向前预测期
在机器学习过程之中,如果预测的标的特征有变动,那么最终选择的因子必然也是能反应这种变化的。假设我们让预测窗口从1个月延长至季度(3个月),那么模型会自适应的去选择一些IC衰减相对较慢的因子,自然而然地策略换手率也会随之降低。基于这个思想,我们也训练了相应的模型。
从测试结果来看,LowTurn_E-NELS2因子选股有效性也非常强,同时因子自相关性为0.62,多头组合的单边换手率降低至60%,相对于原始的E-NELS因子均有一定的改善和提升。
图表27、预测窗口延长下的低换手因子IC表现
图表28、预测窗口延长下的低换手因子自相关性以及多头换手率
从测试结果来看,两种改进方式都达到了预期的目的和效果:第一种方法换手率控制的更稳定;第二种通过机器学习的方式进行自适应调整,并没有完全控制住换手,但仍然不失为一种有效的尝试方法。
4.2
高换手模型构建
市场云谲波诡,因子的有效性时常稍纵即逝,很多人都希望尽量多的去把握有限的投资机会,斩获投资收益。传统量化选股模型往往以月度或季度频率调仓,这种做法有利于大资金的管理,但随着量化投资的普及和市场竞争的加剧,低频组合管理的劣势也越来越多的体现了出来:因子规律外推不稳定、模型同质化导致的策略拥挤愈加普遍…有鉴于此,我们试图通过提高模型换手频率,以表现更为稳定的中短期价量因子为基础,打造一套周度模型来应对目前的某些困难。在本节中,仿照前几章中月度机器学习模型的搭建方式,我们将使用过去52周的数据来预测未来1周股票收益的表现。
这里面需要注意的是,在周度调仓的情况下,如价值、成长、质量等数据本身更新频率较低的因子类别可能就不太适用了。因此在构建周度选股模型时,我们仅考虑了动量反转类以及另类因子。
同前面的月度NELS因子研究一致,对于周度NELS因子,我们遍历了弱分类器为5、10、15……60情况下因子的表现。从IC测试结果来看,当弱分类器数目从5提升至20时,IC、IC_IR边际改善很明显,而后提升效果有限;从分位数测试结果来看,也有着相同的规律。所以,后续对周度因子的测试都将基于弱分类器数量为20的结果来进行。
图表29、周度模型的弱分类器敏感性分析之IC测试
图表30、周度模型的弱分类器敏感性分析之多空表现
不难发现E-NELS_Week与NELS_Week表现的整体差异较小,但E-NELS_Week多空组合的回撤要远小于NELS_Week因子。因此在后文中,我们将主要讨论和使用E-NELS_Week因子。
图表31、周度因子的IC检验
图表32、NELS_Week Vs. E-Nels_Week因子分位数组合测试结果
五、股票模拟组合体系搭建
抽丝剥茧,我们一步步论证了改进版Adaboost算法在量化选股层面的有效性;万剑归宗,再好的研究也要经受模拟组合乃至实盘交易的考验,不然终归不过是纸上谈兵。
一般而言,投资者会结合自己的需求(如投资风险偏好不同、资金容量要求不同、换手频率不同等)构建不同风格的投资策略。有鉴于此,我们亦构建了不同的模拟组合(共计11个策略),供大家参考,具体框架参见图表33,策略描述请参考后文相应章节。本章中的测试时间窗口统一为:2009年12月31日-2019年5月31日。同时鉴于微信篇幅有限,后续我们仅仅展示基于周度以及月度E-NELS因子的增强模型表现。
图表33、策略层面的研究框架
5.1
基于月度E-NELS因子的增强策略研究
指数增强策略旨在控制跟踪误差的前提下,尽可能获取超越基准的表现。综合考虑投资者的偏好,针对于一个宽基指数(沪深300/中证500),我们构建了3个增强模型,不同模型的实现细节参见图表34.
图表34、基于月度E-NELS因子构建的增强策略框架
5.1.1、基于月度E-NELS因子的沪深300增强策略
基于沪深300的三个增强策略表现非常优异,策略相对沪深300指数的年化超额收益稳定在7%-8%,最大回撤徘徊在2.5%-2.8%,风险收益比高达3.3。分年度来看,选股策略在每一年均能稳定的跑赢基准,2017-2018年间年化超额收益稳定在5%左右,2019年以来超额收益稳定在2%左右。
图表35、针对于沪深300的增强策略表现汇总
图表36、针对于沪深300构建的增强策略分年度表现
图表37、针对于沪深300构建的增强策略超额净值曲线
5.1.2、基于月度E-NELS因子的中证500增强策略
与沪深300的增强策略框架一致,我们构建了中证500指数增强策略。从结果来看,策略表现突出。以策略二为例:策略年化超额收益率高达16.2%,风险收益比达到4.08,回撤仅仅为3.1%。分年度来看,各策略也能稳定的战胜基准,在2017-2019年期间分别能跑赢基准5个点左右。
图表38、针对于中证500的增强策略表现汇总
图表39、针对于中证500构建的增强策略分年度表现
图表40、针对于中证500构建的增强策略多头净值曲线
图表41、针对于中证500构建的增强策略超额净值曲线
5.2
基于周度E-NELS因子的增强模型研究
周度E-NELS因子主要运用的是一些价量指标训练生成,因而其对中小盘股票有效性更强,所以我们在利用周度E-NELS因子构建增强模型时主要考虑针对中证500的增强策略。策略实现细节如下:
目标:超额收益率最大化;
权重约束:单个股票的权重不超过10%,同时相对基准的权重波动不超过 -0.5%;
换手率约束:周度单边40 %;
其他约束:行业、市值、Beta中性;交易成本0.3%;
从表现来看,策略相对中证500指数的年化超额收益达到21.6%,夏普率高达4.26,最大回撤仅为6%,策略表现非常优异。分年度来看,周度选股策略均能稳定的战胜基准,2019年前5个月模型已跑赢中证500达7.6%。
图表42、周度E-NELS因子增强策略整体表现
图表43、周度E-NELS因子增强策略净值曲线
图表44、周度E-NELS因子增强策略分年度表现
5.3
模拟组合表现汇总
从被动跟踪到指数增强,进一步到主动量化,不同策略的背后,一方面反映了对风险的逐步释放,另一面也体现了灵活性与特异性的不断提升。我们共计构建了11个不同类型的选股模型,全方位多角度的研究了周度和月度E-NELS因子在策略方面的可用性。每个策略的表现和应用场景不同,大家可以结合自己的需求选择使用。
图表45、基于月度E-NELS因子构建的策略表现回顾
图表46、基于周度E-NELS因子构建的策略表现回顾
六、小结
量化投资管理的未来会将走向何方?这是我们开篇提到的问题。人工智能第三次浪潮能否持续下去?这是大家普遍关注的问题。在本篇报告里,我们将量化投资与机器学习有机结合,给出了量化投资的新视角。
整个机器学习领域确实宛若汪洋,每种算法都包罗万象。我们这次切入时,并没有从广度入手,将所有的算法都做一个尝试,而是以Adaboost算法为切入点,深入探讨了传统Adaboost与改进Adaboost之间的差异。进一步地,以改进版Adaboost算法为抓手,构建了月度、周度选股模型。当然文章也重点探讨了行业市值影响、风格切换分析、并结合不同的场景进行相应的研究。最终在周度和月度因子的基础上,构建了多种选股策略,供大家参考。
量化投资人工智能化之说道阻且长,但我们的努力绝不会停止,我们将坚守卖方研究的初衷,砥砺前行,争取为大家提供更多有价值的成果。
风险提示:本报告模型及结论全部基于对历史数据的分析,当市场环境变化时,存在模型失效风险。
注:文中报告节选自兴业证券经济与金融研究院已公开发布研究报告,具体报告内容及相关风险提示等详见完整版报告。
证券研究报告:《基于集成学习算法的量化选股模型研究》。
对外发布时间:2019年6月21日
报告发布机构:兴业证券股份有限公司(已获中国证监会许可的证券投资咨询业务资格)
--------------------------------------
联系人:徐寅
电话:18602155387 021-38565949
E-mail: xuyinsh@xyzq.com.cn
--------------------------------------
联系人:郑兆磊
电话:13918491550
13918491550
E-mail: zhengzhaolei@xyzq.com.cn
--------------------------------------
更多量化最新资讯和研究成果,欢迎关注我们的微信公众平台(XYZQ-QUANT)!