分享

基于机器学习的牛股精选

 黑马_御风 2016-09-10
  1. 概述


Alpha策略是一种中性策略。它通过构造优于指数的股票组合,同时用股指期货对冲系统风险,使得策略无论在趋势市或者震荡市都能够获得稳定的超额收益。此外,它的另一个优势在于它有效回避了择时这一难题,仅需专注于选股。目前常见的Alpha策略包括有多因子、配对交易等。然而,随着机器学习的快速发展,神经网络、支持向量机等模型逐步走进量化交易领域。

 

机器学习是近几年投资领域新兴的研究方向,尽管复杂的机器学习模型通常在历史回测中表现较好,然而多数机器学习模型本身处于“黑箱”之中,缺乏清晰的投资逻辑。另一方面,机器学习模型参数较多,容易出现对历史数据的过度拟合。所以,许多机器学习类策略在真实交易中的表现常常不尽人意。相比之下,传统的线性模型简单易用、便于理解。但是,线性模型本身假定了各个因子与超额收益存在严格的线性关系,而事实上这个关系并不稳定。

 

本篇报告介绍的决策树选股法结合了多因子线性模型和黑箱模型二者的优点,在放松了模型线性假定的同时保证了模型的可理解性和可视化。策略通过对多个技术指标进行综合,试图寻找技术指标与股票涨跌的稳定关系,进而构建量化选股策略。本文的目的不仅旨在给投资者一个切实可行的交易策略,更是希望给量化投资者一种与众不同的选股框架。在该框架的基础上,投资者未来可以进一步纳入不同的预测因子,形成独特的交易策略。


2.策略逻辑


以图1展示的一个简易的投资决策过程为例,首先,投资者会选择在股价上穿20日均线的时候尝试进行买入操作。在此基础上,他再会根据换手率的大小来判断该标的是否能够容纳自身资金量。如果换手率足够大,就买入,如果换手率很小,则继续空仓。概括地说,他的投资决策过程就可以用图1中描述的一棵决策树表示。




可以看出,在投资决策的过程中,存在以下几个核心要点。首先,投资决策过程中的各个指标是递进而非并行关系。以图1为例,只有当标的价格上穿20日均线后,投资者才会进一步观察换手率指标,而并非同时观察多个指标。其次,投资者对每个指标分配的权重也不完全相同,案例中投资者买入标的的原因更多是基于价格上穿均线后的动量而非换手率的高低。此外,指标变化对投资效用的影响不符合严格的线性特征。简单来说,例中的投资者更关心换手率是否大于3%,而至于其是5%还是10%,对投资者来说,效用差别并不大。总体来说,决策树模型对投资者投资决策的过程进行了系统化的展示。

 

具体而言,本文介绍的决策树模型通过对过去一段时间内技术指标和超额收益率关系的学习,试图找出市场上投资者交易过程中的一些投资规律,挖掘出技术指标间的共振关系,并据此来构建投资策略。

 

详细来说,本文首先根据区分度选出多个技术指标作为预测指标。进而基于本文的核心部分,我们将进一步用机器学习的方法寻找指标与未来收益的关系。最后,我们基于机器学习的结果,输入当下技术指标来预测下月超额收益率。

 

策略核心优势在于:首先,它是易于理解的“白箱”模型,实现了模型的可视化,提高了模型的可理解性。其中,我们不仅能够观察到模型形成的选股规则,而且还可以手动修正不符合逻辑的决策树策略。其次,决策树算法可以挖掘出多个技术指标间的共振。相比之下,常用的线性模型对此无能为力,原因是技术指标背后的构建逻辑多种多样,而其与股票价格的关系又大多不满足线性假设。最后,模型拥有较强的可扩展性,投资者可以自行增减或者改变技术指标或者基本面指标,创建个性化的交易策略。


3.决策树算法简介


3.1算法综述


一颗标准的决策树由叶节点、分支节点和根节点构成,其结构如下图:


概括的说,决策树算法实现了对样本空间的分组。假设我们选出了n 个指标X1,X2,,Xn,它们从n个维度对证券价格变动进行了解释。在此基础上,我们根据n个指标对总样本进行N次分裂。最终,将原有的样本分为N2个互不重叠的区域(即树中的叶节点)R1,R2,,Rn。其中,对于单一叶节点Rn来说,我们根据该节点中上涨或下跌样本的占比多少作为该节点的标签。同时,标签类别样本占该节点总样本的比例,作为该节点的纯度。例如,Rn节点中,70%的样本相对指数能够产生超额收益,则我们定义Rn节点是有正超额收益的,其纯度为70%

 

如何对区域进行划分是接下来要详细解释的问题。首先,从简化模型、便于解释的角度出发,决策树算法设置区域划分的形状为矩形,即我们根据指标通过找到唯一的最优分割点,将样本直接切分为两个部分。此外,针对多个指标的综合运用方面,考虑到机器学习中常见的过度拟合问题以及程序实现的复杂度,决策树算法采用了贪婪的递归二元划分法。具体来说,贪婪体现于在每次分支时,决策树总产生在当前节点下的最优分割,即在选择最优解释变量的最优分割点时,实现的仅仅是该节点局部最优,而非决策树整体最优。简而言之,递归体现在对母数据集分割之后,递归地对每一个子节点进行分类,直至每个分支下都是一样的分类,或者分类无法进一步改进为止。

 

总体来说,决策树算法相对于其他黑箱算法如神经网络或者支持向量机等的优势在于,决策树的规则不仅从逻辑上更加清晰易懂,更重要的是它符合实际投资中投资者的决策模式。然而,从模型精度的角度来看,相比线性模型,决策树算法在处理非线性解释变量时,其表现要优于线性模型。但是,在处理线性解释变量时不如线性模型精确。


3.2 算法学习过程


决策树构建的核心步骤如下:



3.2.1 分割标准


由于我们在每个节点需要找到一个最优点来进行切分,所以首先我们需要对分割结果的优劣程度构建一个量化的评判标准。具体来说,评判分割优度的核心目的在于衡量分割后区域内样本的纯度,即我们关心每个区域内的样本是否都来自于同一类别。因此,在本篇报告中,我们使用Gini不纯度指标来衡量分割的优劣程度,其目的在于找到一个最优点,从而能够在最大程度上将母节点中的样本根据类别进行区分。具体而言,在每个节点,我们遍历所有切分结果,将切分后能够使得Gini不纯度达到最低的切割点作为最优切割点。

 

Gini不纯度指标的定义为:


 


 

P(m,k)表示的是在第m个节点内第k个类别的观测点在总数目中的比例。在本文中,由于每次切分后生成两个新的节点,同时,节点内只分上涨和下跌的股票,所以本文中m=2k=2。此外,每次切分后,我们将切分之后的两个子节点不纯度累加起来,作为本次切割的Gini值。不难看出,当两个子节点的P(m,k)等于0或者1时,Gini不纯度指标值达到最小。换言之,模型完美的对母样本中上涨和下跌的个股进行了区分。

 

举例来说,我们运用决策树的方法对母节点的400只股票进行切割,生成两个子节点AB,每个子节点分别有200只股票。此时,如果子节点A200只股票全部为上涨,子节点B200只股票全部为下跌,则此时Gini值达到最小值0。相反地,如果子节点A的股票样本皆为一半上涨,一半下跌,而子节点B的股票样本为60%上涨,40%下跌。则Gini值为0.5*1-0.5+0.6*1-0.6=0.49



3.3 算法实例


下面我们通过实例加以说明,x1x2是两个技术指标,Y是二元变量,取值为0或者1。首先,我们取得市场上所有的股票作为样本池。其次,如图4所示,根据x1x2的取值,每只股票的超额收益方向由Y的取值来表示,红色代表属于类别0(负收益),蓝色代表属于类别1(正收益)。

 

从图4中可以大致看出,x2是决定Y变量取值的首要的因素,当x2小于1.05或者大于8.55的时候,无论x1为何值,Y变量的取值都为1。相对地,只有当x2在处于1.058.55的范围内的时候,Y变量的取值由x1决定。其中,如何找出Y变量取值为1的区域则是机器学习的核心部分。


如图4所示,决策树算法简单来说就是基于x1x2 Y取值的关系对原样本进行不断的切分。其目的在于,找到一个区域,且该区域Y变量取值为1概率较高。

 

此外,回顾之前介绍过的,决策树算法设置区域划分形状为矩形,即决策规则在特征空间中其实是平行于坐标轴的直线,其最终将样本空间分割成了多个不重叠的多维矩形。

 

总体来说,如图6所示,我们通过对原样本进行多次切分,最后可以得到红色区域部分的样本。从中可以看出,该区域内,Y取值为1的概率明显较高。



4.基于机器学习的策略构建


4.1 技术指标选择


技术分析是一种基于量价数据来预测股价的未来走势的方法,其核心假定在于历史的可重复性,而这一假设能够长期成立的原因在于技术分析在一定程度上是对投资者情绪的刻画,而投资者情绪的变化是蕴含一定规律的。具体来说,技术指标作为技术分析的组成部分,每一个技术指标就代表投资者情绪某一个维度的刻画。所以,单个技术指标在预测股票时有很大的局限性,但是如果能够有效结合多个技术指标,则对股价的预测稳定性就会大幅提升。接下来,我们会详细介绍6个备选的技术指标,以及如何从中选出最有效的3个技术指标进行策略构建。

首先我们选取了常见的8个技术指标作为决策树特征的备选项,分别是:


变动速率ROC

平滑异同移动平均线MACD

顺势指标CCI

抛物线指标SAR

累积派发指标AD

布林线(其中,布林线的3个三条轨道线分别作为3个技术指标)


4.2 指标的评估与选择


为了降低指标间的多重共线程度,本文将对备选指标进行提纯,剔除同质性较高的指标。具体来说,本文使用200612月至201012月的数据作为训练样本生成了一颗决策树。首先,我们根据Gini不纯度下降的程度,只留下Gini不纯度最低的20个叶节点。在此基础上,我们对每一次Gini不纯度的下降进行归因。例如,母节点Gini不纯度为0.2,通过指标A进行切分后,子节点不纯度为0.15,则下降的0.05作为指标A的贡献值。通过计算每个解释变量带来的Gini不纯度的下降和,即可求得8个解释变量的重要度。在此基础上,我们对所有指标的贡献值进行归一化,可得到指标间相对贡献程度。

 

从图7中可以看出,佳庆震荡指标最为有效,解释了31%纯度提升。其次是动量指标ROC和布林线上轨。三者一共可以解释模型71%的变异,其余解释变量对被解释变量的相对解释能力都小于10%。因此,本文将从备选指标中选取最重要的3个指标来构建组合。

 

最终,我们选择佳庆震荡指标ADSOC、变动速率ROC和布林线上轨UpperBand作为最终的备选指标。


4.3决策树构建


根据上述介绍,我们构造CART决策树分类模型。通过该模型,我们最终根据技术指标取值可以得到一个区域,该区域的股票大概率在下一期相对中证500有超额收益。具体实现步骤如下:


4.3.1 创建根节点

为了降低市场环境对模型预测能力的影响,同时提高模型预测的稳定性。我们以T-100周到T-4周作为观测期,把观测期内的数据集合并形成一个新的面板数据集。从中,我们可以观测到样本中所有股票的技术指标取值和预测指标取值。同时,我们将这个数据集就作为根节点。


4.3.2 分割方式

每一个技术指标都可以对根节点进行一次切分,我们需要找到最优的分割方式,使得分裂后的子节点的Gini不纯度指标达到最小。具体来说,遍历每一种分类方式,找到使得Gini指标值最小的分割方式,把根节点数据分成两个分支节点,并记录下最优分割方式。


4.3.3 结束条件

使用步骤2依次遍历各个分支节点,直到节点个数达到给定上限值时,决策树构造结束。如果50%以上的样本取值为1,则该叶节点分类为1,其余情况叶节点分类为0。而分类为1的叶节点的纯度为Y指标为1的个数占叶节点样本总数的比例。


4.3.4 剪枝

由于决策树根据最优点来进行切分的路径是确定的,在此基础上,为了控制模型的复杂度、提高其在样本外数据的表现,我们为决策树进行预剪枝设定:把叶节点个数上限设置为2倍的解释变量个数:6个。


4.4 组合构建


4.4.1 样本空间

考虑实际操作可行性,剔除停牌股票、剔除ST股票,同时为了更好的提高行业权重的分散化程度,策略以中证500成分股作为股票池。


4.4.2 目标组合

每月初,我们把t_i-100周到t_i-4周设为观测期,通过如上方法对样本进行切分,得出各区域中正超额收益样本的纯度。然后,找到纯度最高的区域所对应的技术指标状态,并以此构建本期股票池。在此基础上,选择前40只股票等权重作为投资组合。如果同一个区域股票超过40只,则使用PE指标进行进一步区分。


4.4.3 换仓频率

策略采取月度换仓的频率,同时使用周K线构建技术指标。其中,策略在每月最后一个交易日构建投资组合,于次月第一个交易日均价进行换仓。


4.4.4 建仓成本

手续费为单边千分之三,建仓成本为当日均价。同时,考虑到实际投资时的流动性,如果上期持仓股票、下期标的股票换手率小于万分之五或者当日停牌,将默认无法卖出、买入。


5.决策树模型选股表现


由于策略的样本空间为中证500成份股,因此,我们选择中证500指数作为对冲标的。

 

从图8中可以看出,基于决策树模型的策略呈现了稳定且显著的超额收益。从20111月至201512月,策略获得了165%的累计超额收益,年化超额收益21.55%,信息比率2.11 其中,最大回撤9.33%,发生于20158月下旬。可以看出,从20156月开始的股灾期间,由于市场切换为极端模式,机器学习的训练样本中并没有遇到过这种情况,所以模型失效,导致了策略较大的回撤。但整体来说,策略收益曲线比较稳定。





从图9 中我们可以具体看到组合月度超额收益情况。组合整体月超额收

益胜率70%,单月最大负收益为-4.2%,出现于2011 11 月。但是,

2011 12 月之后几个月组合收益大幅回升。整体来说,组合收益在月度上的表现较为稳定。




1展示了组合各年份的超额收益,可以看出,组合在各年份的收益及信息比都比较稳定。值得一提的是,组合在2011年和2012年表现较好,而同期多因子选股策略普遍表现较弱,从而体现出机器学习模型与其他策略较好的互补性。




6.总结与后续研究展望


本文给出了一个以决策树算法为核心的选股策略。首先,本文为机器学习策略开发提供了研究框架。此外,机器学习可以有效容纳变量非线性的特征,使得多个技术指标的综合运用效率有所提升。与此同时,相比神经网络、支持向量机等黑箱模型,决策树算法更加透明。

 

但是,本文目前仅聚焦于介绍机器学习算法的逻辑框架,并未对指标以及决策树深度做过多的要求。未来,在现有模型的基础上,我们将尝试寻找并纳入其他有效且富有逻辑的指标。同时,我们也将从算法精度的角度出发,对决策树算法进行提升。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多