【广发金融工程】2018年重磅专题系列之四:基于涨跌模式识别的指数和行业择时策略
新浪财经
本报告提出了一种通过机器学习方法识别市场模式的方法。该策略通过机器学习方法对历史的市场行情数据进行学习,建立起市场相关变量和市场模式的关系。与趋势交易系统相比,市场的上涨下跌模式不是由价格趋势来判断,而是通过机器学习模型进行判断。
本报告中采用的机器学习模型的特征包括:工业景气度指标(PMI指数以及PMI指数的月度变化率)、消费与价格指数(CPI当月同比指数及CPI当月同比指数的月度变化率、PPI当月同比指数及PPI当月同比指数的月度变化率)、货币供给指数(M2同比及M2同比指数的变化率)、大宗商品指数(上交所黄金现货价格和LME铜现货价格)、利率利差(中证国债3个月到期收益率、中证国债1年到期收益率、中证国债10年到期收益率、以及10年期国债到期收益率和3个月国债到期收益率之差)、股票市场数据(对于沪深300指数的模式识别模型中,股票市场数据包括沪深300指数周收益率、月收益率以及季收益率)。
二、指数择时策略随机森林是一种集成学习方法,以决策树为基学习器。
要获得好的集成效果,作为基学习器的决策树应该具有一定的准确度,并且具有多样性。随机森林从样本采样和特征采样两方面提高个体学习器的多样性。样本采样又叫行采样,是指每次训练一棵新的决策树时,从训练样本总体中采样,获得训练单一决策树的样本。特征采样又叫列采样,是指每次训练一棵新的决策树时,从全部特征中随机挑选部分特征。通过样本采样和特征采样方法,每次用于训练一棵决策树时所采用的样本和特征与训练其他决策树都会有所差别,从而增加了决策树之间的多样性,可以使得随机森林模型具有较好的性能。在训练机器学习模型之前,先按照特定的分析方法将不同的市场区间标记为上涨模式和下跌模式。本报告采用画折线的方式来标记市场区间。具体的方法可以参考专题研究报告《基于涨跌模式识别的指数和行业择时策略》。按照报告《基于涨跌模式识别的指数和行业择时策略》提出的方法,对沪深300指数的识别结果如下图所示。涨跌模式为1表示当前是上涨模式,涨跌模式为0表示当前是下跌模式。可见,该模式划分方法较好的识别出了市场的上涨和下跌走势。
将整个样本区间分成两段,以2006年2月28日至2012年5月9日为样本内,2012年5月10日至2018年7月18日为样本外。按照划分好的涨跌模式,在样本内进行机器学习模型的训练,并用训练好的模型对样本外的行情进行上涨模式和下跌模式的划分。模型对样本外行情的模式识别结果如下图所示。样本内分类结果表现一般,如果按照将上涨模式预测概率大于0.5的行情识别成上涨模式,将上涨模式预测概率小于0.5的行情识别成下跌模式,则分类准确率只有55.6%。但我们可以结合预测概率的值以及预测概率的变化方向进行市场模式的判断。
沪深300择时策略的择时信号产生规则为:1)如果上涨概率大于0.8,那么发出做多信号;2)如果上涨概率小于0.2,那么发出做空信号;3)如果上涨概率处于0.2到0.8之间,而且上涨概率超过了该概率的10日均线加2倍标准差,那么发出做多信号;4)如果上涨概率处于0.2到0.8之间,而且上涨概率低于该概率的10日均线减2倍标准差,那么发出做空信号;5)其他情况下,保持当前的持有头寸。此外,通过设置止损来减小判断错误引发的亏损,本策略在单次交易浮盈亏回撤达到-15%时止损。随机森林模型在训练时,可以根据特征的使用情况来判断特征的重要性。在沪深300择时模型中,特征重要性如下图所示。其中最重要的特征为PPI当月同比、PPI当月同比变化率、沪深300指数20天收益率、沪深300指数60天收益率、以及CPI当月同比。LME铜价和黄金现货价格是相对不那么重要的特征。
沪深300指数择时的样本外表现如下图所示:从2012年5月以来的择时年化收益率16.6%,最大回撤-24.8%。
分年度的择时表现如表2所示。在整个样本外区间,沪深300指数的收益率为29.1%,而择时策略的收益率为133.2%,明显超过了指数的表现。而且择时策略的最大回撤不大。该择时策略平均每年交易12.6次,属于交易不频繁的交易策略。由于策略包含止损机制,本策略属于胜率较低、盈亏比较高的交易策略。
三、行业轮动策略本文提出的机器学习方法可以用来进行行业择时。在行业择时中,由于宏观数据对行业指数的影响不一,需要对每个行业分别建立模型,判断行业处于上涨模式或是下跌模式。与沪深300模式识别模型类似,行业模式识别的模型采用的特征包括:工业景气度指标、消费与价格指数、货币供给指数、大宗商品指数、利率利差和股票市场数据。由于不同行业的走势有相互影响,在行业模式识别模型中,股票市场数据包括28个行业指数的周收益率、月收益率以及季收益率,一共有84个股票市场的特征。由于所用特征较多,在随机森林模型训练前通过特征选择,选择相对重要的特征训练模型。以2006年2月至2012年4月为样本内,分别对不同行业建立行业择时模型。按照上一节的交易策略,分别对不同行业进行样本外择时交易的测算,考虑到行业指数不能做空,择时时要么多头,要么空仓,并且考虑0.3%的交易成本。总体来看,行业指数择时表现不错。下图展示的是申万医药生物行业择时的表现。从2012年4月以来,择时策略的累积收益率为371.5%,最大回撤为-18.4%。择时模型基本上把握到了医药生物指数从2012年至2015年的上涨模式,并且避开了主要的下跌阶段。
下图展示了申万汽车行业的择时表现。样本外的择时累积收益为147.9%,最大回撤为-24.8%,也明显跑赢了申万汽车指数。
28个申万一级行业分别进行择时交易的样本外表现如下表所示。在这28个择时模型中,有27个行业的择时模型获得了正收益。大部分行业指数的择时策略跑赢了基准行业指数买入持有策略的表现,而且历史最大回撤都比持有行业指数明显减小。行业指数的平均累积收益为51.7%,而择时策略的平均累积收益为95.7%。平均每年,单个行业择时模型的交易次数为6.4次,交易频率较低。
实证分析表明行业模式识别模型用于行业择时,获得了不错的效果。实际上,行业的上涨概率与行业指数的未来表现具有一定的正相关性。与因子选股中IC的定义类似,本报告中计算了行业的上涨概率与行业指数的未来一个月收益率之间的截面相关系数(称为“行业轮动IC”)。行业上涨概率的行业轮动IC如下图所示,样本外的行业轮动IC为0.060,标准差为0.264。
根据行业上涨概率,本报告构建了行业轮动策略。该策略按月调仓,每次调仓时,选择行业的上涨概率最大的5个行业进行等权配置。实证分析表明,该行业轮动策略可以获得一定的超额收益。行业轮动策略在样本外的表现如下图所示。多头组合的收益净值(扣费后)是深蓝色的净值曲线;以28个行业指数的等权收益为基准,进行对冲之后的超额收益净值(扣费后)是红色的净值曲线。样本外的年化超额收益为8.2%,超额收益的最大回撤为-10.9%。
行业轮动策略的分年度表现如下图所示。从2012年4月以来,大部分年度都跑赢了基准指数(基准指数按照28个行业等权进行计算),只在2016年跑输了基准指数。2018年的前7个月,策略产生了12.2%的超额收益。按照月度调仓,行业轮动策略跑赢基准策略的胜率为64.0%,信息比为1.11。
风险提示:本报告提出的机器学习择时交易策略基于历史数据进行回测,策略模型并非百分百有效,市场结构及交易行为的改变以及类似交易参与者的增多有可能使得策略失效。