1、请仔细阅读本报告末页声明请仔细阅读本报告末页声明 证券研究报告|金融工程研究 2019 年 03 月 04 日 量化专题报告量化专题报告 多因子系列之三:因子空头问题及其“顶端”优化多因子系列之三:因子空头问题及其“顶端”优化 因子空头问题已经成为影响多因子组合的重要问题因子空头问题已经成为影响多因子组合的重要问题。传统的 ICIR 加权模型考虑的是整个截面的因子表现,而由于 A 股市场不能做空个股,因子空头端的收益无法在多因子策略中很好转化,因此,我们应该更加侧重考察因子多头端的的表现。目前市场上已有的解决该问题的办法包括带权重的目前市场上已有的解决该问题的办法包括带权重的 ICIR 法和空
2、头剔除法法和空头剔除法。我们在 A 股市场上对这两种方法进行了实证检验,发现两者都可以或多或少地解决一部分因子空头问题,但同时也存在着各自缺陷,主要问题是参数的选择对模型绩效影响较大,模型有过拟合嫌疑。顶端优化模型侧重于因子多头端的优化,其目的是使得因子顶端的表现更顶端优化模型侧重于因子多头端的优化,其目的是使得因子顶端的表现更优优。实证检验表明,在使用我们已有的 ALPHA 因子下,对于收益率较高的股票,顶端优化模型可以给予预测能力更强的因子更高的权重。自 2010 年起的月换仓策略年化收益率为 19.47%,最大回撤为 3.76%,信息比率为3.489。策略分年度表现较为平均,整体表现稳健
3、。我们将顶端优化模型和传统的等权、线性回归、我们将顶端优化模型和传统的等权、线性回归、ICIR 等模型进行了比较等模型进行了比较。经过实证检验,顶端优化模型对 ICIR 模型的增强效果明显,策略的信息比率从 2.932 提升到 3.489,并且策略在每一年的表现更加平均,最大回撤从4.57%降低到 3.76%,尤其对于风格切换的 2017 年初位臵,顶端优化模型没有遭受很严重的回撤,表现更优。顶端优化模型为多因子选股提供新的视角顶端优化模型为多因子选股提供新的视角。因子的 alpha 能力决定策略收益的下限,而模型的选股能力决定了策略收益的上限,我们认为顶端优化模型具有优秀的选股能力,它在一定
4、程度上可以拉升因子超额收益的上限。模型得到的因子线性权重也可以与传统多因子策略进行结合,我们期待顶端优化模型在更多的切入点发挥作用。风险提示风险提示:量化专题报告中的观点基于历史统计与量化模型,存在历史规律与量化模型失效的风险。作者作者 分析师分析师 殷明殷明 执业证书编号:S0680518120001 邮箱: 分析师分析师 刘富兵刘富兵 执业证书编号:S0680518030007 邮箱: 相关研究相关研究 1、量化周报:市场仍将震荡上行2019-03-03 2、量化专题报告:因子择时系列之一:风险溢价时钟视角下的攻守因子配臵2019-02-25 3、量化周报:言顶尚早,市场未到减仓时 201
5、9-02-24 4、量化专题报告:多因子系列之二:Alpha 因子高维度与非线性问题基于 Lasso 的收益预测模型2019-02-20 5、量化周报:日线反弹尚未结束,短期调整幅度有限2019-02-17 2019 年 03 月 04 日 P.2 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 内容目录内容目录 1.引言.4 2.因子空头问题.5 2.1 因子空头问题及基于 IC 的因子评价体系的缺陷.5 2.2 特质波动率因子示例.5 3.使用带权重 IC 和空头剔除法解决空头问题.7 3.1 ICIR 加权的多因子策略.7 3.2 改进一:带权重的 ICIR 配权方式.9 3.3 改进
6、二:空头剔除法.11 4.顶端优化模型.13 4.1 二分排序模型.13 4.1 顶端优化模型的原理.13 4.3 基于顶端优化模型的多因子选股策略.15 4.3.1 模型训练.15 4.3.2 策略组合构建.15 4.3.3 参数敏感性测试.16 5.因子配权模型比较.17 5.1 主要模型实证检验.17 5.2 顶端优化模型优势分析.19 6.总结与展望.20 附录.20 因子数据库一览.20 致谢.24 风险提示.24 图表目录图表目录 图表 1:特质波动率因子历史表现.6 图表 2:特质波动率因子 2018 年上半年表现.6 图表 3:ICIR 加权方式历史表现.8 图表 4:策略分年
7、表现.8 图表 5:参数敏感性测试.9 图表 6:带权重的 ICIR 举例.10 图表 7:带权重的 ICIR 加权方式历史表现.10 图表 8:带权重的 ICIR 策略分年表现.11 图表 9:不同半衰期下带权重的 ICIR 表现.11 图表 10:空头剔除法 ICIR 加权方式历史表现.12 图表 11:空头剔除法 ICIR 策略分年表现.12 图表 12:不同半衰期下带权重的 ICIR 表现.12 图表 13:顶端优化组合历史表现.16 图表 14:顶端优化策略分年表现.16 图表 15:参数敏感性测试.17 图表 16:各算法异同比较.18 图表 17:不同策略表现.18 图表 18:
8、不同模型历史表现.18 2019 年 03 月 04 日 P.3 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 图表 19:不同策略分年度表现.19 图表 20:顶端正例率指标比较.19 图表 21:因子数据库.20 2019 年 03 月 04 日 P.4 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 1.引言引言 在多因子系列之一:多因子选股体系的思考一文中,我们对多因子组合构建的一些基本问题进行了探讨,并给出了一些思考。然而,在实际构建多因子模型的过程中,我们还会遇到很多影响其绩效的问题,其中因子的空头问题就是其中一个非常重要的因素。众所周知,在当前的 A 股市场投资中,由于交易
9、限制,我们没有办法做空个股,因此,传统多因子的多空组合收益是无法获取的,一般通过股指期货构建策略的空头端,而在多头端配臵个股。这样带来一个的问题是,如果一个因子的多头端并不是很强,但是空头端非常强,那么传统的因子评价指标信息系数 IC 会认为这个因子是一个还不错的因子,从而基于该指标的收益预测模型例如 ICIR 因子配权会给该因子一个相对高估的权重,而事实上空头端的收益我们却是无法获取的。为了解决该问题,目前市场上已经有了很多研究,例如通过空头因子先进行股票池剔除,再用其他因子进行选股;使用带权重的 IC(weighted IC)指标进行因子配权等等。这些方法或多或少的解决了一部分该问题,但也
10、可能引入新的问题。本文将对这些方法进行探讨,并通过一个新的模型顶端优化模型来解决该问题。该模型的思路和以上方法非常相近,但它是通过机器学习中的优化方法进行问题求解的,给解决因子空头问题带来了新的思路。所谓“顶端”优化,其实是指在进行因子权重优化时更多地考虑收益率较高的股票是否都预测正确了,而忽略那些收益率较低的股票,这里“顶端”也就是收益率的较高的股票。通过这种优化方式,我们会使得因子的配权更倾向于那些顶端表现更优的因子。另外,我们还比较了传统的线性回归模型、因子等权配臵模型、ICIR 因子配权模型、带权重的 ICIR 配权模型、顶端优化模型等算法的表现,我们发现解决了因子空头问题的顶端优化模
11、型表现相对更为稳健。本文的结构如下:第二章开始我们先通过一些具体的例子阐述了因子空头问题,以及该问题对多因子策略表现的影响;第三章我们先构造了一个比较基准,也就是传统的 ICIR加权方法,通过介绍该策略,让投资者进一步了解我们多因子策略的细节,然后分别通过使用空头因子剔除选股池,带权重的 ICIR 来改进这个策略;第四章我们着重介绍了顶端优化模型,其代表算法是 TOPPUSH 算法,并分析了该算法的表现;最后,我们在第五章将顶端优化模型和市场上目前较为主流的 ALPHA 预测模型进行了比较,包括因子等权配臵、线性回归加权、ICIR 加权、带权重的 ICIR 加权等模型,发现顶端优化算法具有相对
12、更稳健的表现,尤其在多因子回撤相对较大的 17 年初,更是表现出了自身的优势。2019 年 03 月 04 日 P.5 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 2.因子空头问题因子空头问题 2.1 因子因子空头问题及基于空头问题及基于 IC 的因子评价体系的缺陷的因子评价体系的缺陷 首先我们来介绍本文主要要解决的问题:因子空头问题。该问题的主要含义是,由于我们在构建多因子组合多头的时候,希望因子打分越高的股票收益率越高(同理,负 ALPHA因子打分越低的股票收益率越高),尤其是希望那些收益率很高的股票具有很高的打分,而至于那些收益率一般的股票是不是打分足够低,我们并不是那么关心。这主
13、要是因为我们无法针对个股进行做空,从而获得打分足够低的股票带来的空头收益。正是因为这一点,如果有某个因子,其收益率较低的那些股票(即“因子空头端”,或“底端”)打分很低,而收益率较高的那些股票(即“因子多头端”,或“顶端”)打分并不是很高,那么这样的因子在实际投资中在股票多头并不能给我们带来类似其空头那么好的收益,因此我们希望降低这种类型因子的权重。然而,在现阶段对于因子的评价方式中,很大一部分是依赖于因子的信息系数(即 IC)的,甚至基于 IC 的因子配权 ICIR 方法在投资者中使用甚为广泛。但通过上面的分析,我们发现,基于 IC 这种因子评价体系的策略会高估空头效应很强的因子,从而导致策
14、略的表现不佳,这主要是因为基于 IC 的因子评价体系考察的是整个截面因子打分和因子收益率的线性相关性,而并不是只是考虑顶端。下面,我们通过一个具体的例子介绍这一现象。2.2 特质波动率因子示例特质波动率因子示例 这一节我们通过特质波动率这个因子来给投资者介绍因子多头问题在实际投资中的表现。特质波动率因子是被投资者熟知的波动率因子,该因子在 A 股市场历史表现优异,因子是使用 Fama-French 三因子回归得到:=+其中,Fama-French 三因子回归的残差即为,而特质波动率因子即定义为其标准差:IVOL=()如图 1 所示,是特质波动率因子从 2008 年初至今的历史表现,我们将因子经
15、过缩尾、中性化、标准化等一系列处理后,再将所有股票根据因子打分大小分为十组,通过渐变的蓝色曲线展示了从第一组到第十组的收益情况,并计算出第一组对冲第十组的多空收益,以及第一组对冲中证 500 指数的收益,在坐标轴右轴标示其净值。2019 年 03 月 04 日 P.6 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 图表 1:特质波动率因子历史表现 资料来源:Wind,国盛证券研究所 观察该图不难发现,特质波动率因子过去几年是非常好的 ALPHA 因子,其不但十组收益分的非常开,而且收益也很可观,每年都较稳健。然而,我们发现在 2018 年上半年,第一组对冲中证 500 指数并没有获得像之前
16、那样好的收益。我们把这一时段放大,如图2 所示。图表 2:特质波动率因子 2018 年上半年表现 资料来源:Wind,国盛证券研究所 可以看到,18 年上半年该因子第一组股票相对中证 500 指数几乎没有收益,而多空组合依然获得了不错的 7%的收益,这显然是因为因子空头端的股票带来的。如果我们使用IC 来评价该因子,这段时间其因子 IC 为 0.066,ICIR 为 2.75,是一个相当不错的因子。然而实际上该因子这段时间并不能给我们带来稳定的收益。因此,如果我们使用只考虑因子顶端的模型,就可以降低该因子的配权权重。051015202530-113579112008-1-22009-1-220
17、10-1-22011-1-22012-1-22013-1-22014-1-22015-1-22016-1-22017-1-22018-1-22019-1-2Group1Group2Group3Group4Group5Group6Group7Group8Group9Group10对冲基准多空对冲0.950.970.991.011.031.051.071.090.70.750.80.850.90.9511.05Group1Group2Group3Group4Group5Group6Group7Group8Group9Group10对冲基准多空对冲 2019 年 03 月 04 日 P.7 请仔细阅
18、读本报告末页声明请仔细阅读本报告末页声明 3.使用使用带权重带权重 IC 和空头剔除法解决空头问题和空头剔除法解决空头问题 本章开始我们一步步介绍解决空头问题的若干办法,包括市场上已有不少投资者使用的带权重的 ICIR 配权方式,以及空头剔除法等等。我们实证检验了这些方法是否能够切实有效地解决因子空头问题,并阐述了这些方法自身的局限性。在此之前,我们还是先回归到 ICIR 配权方法,该方法将成为我们后面其他算法的比较基准。因此,我们先来看看基准能有怎样的表现。3.1 ICIR 加权的多因子策略加权的多因子策略 这一节我们先来介绍业绩比较基准:基于 ICIR 加权的多因子策略。ICIR 方法是目
19、前多因子收益预测模型中最常用的方法之一,其优势在于不但考虑了因子的预测能力,还考虑了因子的稳定性,因此是相对较为稳健的预测方法,其效果在 A 股历史上略优于等权重配臵模型(见第五章)。因此,以 ICIR 作为我们算法检验比较的基准相对比较公平、真实。我们构建月换仓的 ICIR 加权的多因子策略步骤如下:1)对数据库中的所有因子(因子列表见附录)进行缩尾、中性化、标准化处理;2)对这些因子进行筛选,选出过去 12 个月 ICIR 绝对值最高的 k 个因子,并且要求这 k个因子之间的两两相关性小于 c。3)计算筛选出来的所有因子的 ICIR 值,并以该值作为权重对所有因子进行加权,给出合成的打分值
20、作为股票的 ALPHA 预测。上述步骤中涉及两个参数:筛选的因子数量 k 和因子的相关性要求 c,我们这里选取默认的参数 k=50,c=0.2,之后我们会检验不同参数下策略表现的差异。假设我们选定以上参数,月换仓的 ICIR 多因子策略具体交易方式为:样本池:全部 A 股,剔除上市半年以内的新股、ST 股;换仓时间:每月第一个交易日 交易价格:交易当天的 VWAP 价格 跟踪基准:中证 500 指数 交易成本:双边共 0.4%年化跟踪误差约束:小于 5%行业风格约束:行业、市值中性 具体的优化形式为:max()|s.t.()_,_ ()_,_ ()(+)()target 2 1=_ 0 _ 其
21、中约束条件上文已经给出。这里的即为我们使用 ICIR 方式加权合成的。根据以上交易策略,我们回测了从 2010 年初至今的表现,如下图所示:2019 年 03 月 04 日 P.8 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 图表 3:ICIR 加权方式历史表现 资料来源:Wind,国盛证券研究所 图表 4:策略分年表现 年化收益年化收益 年化波动年化波动 信息比率信息比率 最大回撤最大回撤 回撤回撤天数天数 回撤开始时间回撤开始时间 回撤结束时间回撤结束时间 2010 31.25%5.94%5.258 1.99%7 2010-1-4 2010-1-12 2011 14.14%4.84%
22、2.922 1.93%13 2011-3-15 2011-3-31 2012 16.21%5.33%3.04 3.12%42 2012-7-18 2012-9-13 2013 9.70%5.79%1.675 3.76%31 2013-2-1 2013-3-22 2014 11.92%5.67%2.103 2.52%14 2014-7-8 2014-7-25 2015 23.08%6.18%3.737 4.11%24 2015-7-24 2015-8-26 2016 14.59%4.58%3.188 1.62%11 2016-12-16 2016-12-30 2017 20.69%6.27%3.
23、298 3.32%27 2017-1-13 2017-2-27 2018 8.51%5.32%1.598 4.00%25 2018-8-9 2018-9-12 总计 16.37%5.58%2.932 4.57%46 2016-12-16 2017-2-27 资料来源:国盛证券研究所 可以看到,使用 ICIR 加权构造的多因子组合整体获得了相对不错的表现,在 2010 年到2018 年这九年的时间内获得了平均 16%的年化超额收益,信息比率 2.932,最大回撤4.57%,发生在 16 年末 17 年初的时候,该时间段是典型的小盘成长性风格向大盘蓝筹型风格的转换,该策略是基于过去 12 个月的
24、ICIR 进行加权,因此出现了这个回撤。那么,在k和c取其他参数情况下策略会有怎样的表现呢?我们对临近参数进行了测试,结果如下:-0.05-0.045-0.04-0.035-0.03-0.025-0.02-0.015-0.01-0.0050012345672010-1-42011-1-42012-1-42013-1-42014-1-42015-1-42016-1-42017-1-42018-1-4最大回撤策略基准对冲净值 2019 年 03 月 04 日 P.9 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 图表 5:参数敏感性测试 因子个数因子个数 k 相关性阈值相关性阈值 c 年化收益
25、年化收益 年化波动年化波动 信息比率信息比率 最大回撤最大回撤 k=20 c=0.2 16.26%5.69%2.856 4.25%k=30 c=0.2 16.52%5.59%2.956 4.99%k=40 c=0.2 16.63%5.62%2.959 4.81%k=50 c=0.2 16.37%5.58%2.932 4.57%k=60 c=0.2 16.23%5.61%2.893 4.88%k=30 c=0.1 13.64%5.54%2.464 5.76%k=30 c=0.3 17.33%5.62%3.083 4.47%k=30 c=0.4 16.14%5.55%2.91 4.27%k=30
26、c=0.5 15.87%5.55%2.86 5.38%k=30 c=0.6 15.77%5.64%2.796 5.22%资料来源:Wind,国盛证券研究所 从上表可以看出,当因子个数 k=30,相关性阈值 c=0.3 时,策略获得最高的信息比率3.083。我们选取的参数 k=50,c=0.2 并不是最好的参数,在该参数附近策略表现较为稳定。说明 ICIR 策略确实能收获不错的表现。下面,我们开始使用一些简单的思考来对以上策略进行改进,主要就是为了解决策略中的因子空头问题。3.2 改进一:带权重的改进一:带权重的 ICIR 配权方式配权方式 首先想到的一个可能的改进办法是将传统的 IC 指标改为
27、带权重的 IC。由于 IC 指标考察的是整个截面上因子暴露和下一期收益率的相关系数,相当于对于因子多头和因子空头赋予了相同的权重,那么我们可以降低空头部分的权重,提高多头部分的权重,这样就能更好地表达我们希望因子“顶端”表现更优。基于这个思路,我们定义带权重的 IC 指标为:=()()2()2 2()2 其中,表示第 i 只股票的因子暴露,表示第 i 只股票下一期的收益率,n 代表当期截面股票个数,表示第 i 只股票的权重,其给定方式为以 int(n/2)为半衰期进行加权,即位于因子打分 50%分位数的股票的权重为 0.5,以此类推。为了更清晰的表达这个方法的思路,我们举个简单的例子。假设有
28、A、B 两个因子,其 t时刻的因子暴露和 t+1 时刻的收益率分别如下表所示:2019 年 03 月 04 日 P.10 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 图表 6:带权重的 ICIR 举例 股票序号股票序号 因子因子 A 因子因子 B 收益率收益率 r 1 X1=0.7 X2=0.1 r=5%2 X1=0.3 X2=0.4 r=4%3 X1=0 X2=0.3 r=3%4 X1=0.1 X2=0.4 r=2%5 X1=0.2 X2=-0.2 r=1%6 X1=-0.1 X2=0.2 r=0%7 X1=-0.3 X2=0.5 r=-1%8 X1=0.4 X2=-0.3 r=-2%
29、9 X1=-0.5 X2=-0.7 r=-3%10 X1=-0.3 X2=-0.9 r=-4%资料来源:Wind,国盛证券研究所 如果用 IC 指标计算这两个因子,得到:ICA=0.707,ICB=0.716 B 因子的 IC 略高于 A 因子,但显然在多头端 A 因子表现更优,B 因子 IC 相对更高更多来源于空头部分。我们计算加权的 IC,得到:ICA weighted=0.747,ICB weighted=0.633 可以看到,A 因子的 IC 变高了,而 B 因子 IC 大幅降低,因此更好的表示出了两者在多头端的表现差异。根据这个 IC 值我们可以同样计算带权重的 ICIR:ICIRw
30、eighted=()()252 下面,我们使用带权重的 ICIR 加权方式重新构建多因子组合,依然保持上文参数 k=50,c=0.2 不变,组合构建的细节也完全参照之前的 ICIR,回测结果如下图所示:图表 7:带权重的 ICIR 加权方式历史表现 资料来源:Wind,国盛证券研究所 -0.05-0.045-0.04-0.035-0.03-0.025-0.02-0.015-0.01-0.0050012345672010-1-42011-1-42012-1-42013-1-42014-1-42015-1-42016-1-42017-1-42018-1-4最大回撤策略基准对冲净值 2019 年 0
31、3 月 04 日 P.11 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 策略的分年度表现如下:图表 8:带权重的 ICIR 策略分年表现 年化收益年化收益 年化波动年化波动 信息比率信息比率 最大回撤最大回撤 回撤天数回撤天数 回撤开始时间回撤开始时间 回撤结束时间回撤结束时间 2010 30.63%5.82%5.264 2.78%10 2010-1-4 2010-1-15 2011 12.47%5.20%2.398 2.51%15 2011-5-17 2011-6-7 2012 20.05%5.33%3.764 1.61%37 2012-1-17 2012-3-14 2013 15.2
32、8%5.85%2.613 3.31%12 2013-8-29 2013-9-13 2014 8.43%5.69%1.482 3.21%19 2014-2-7 2014-3-5 2015 24.37%5.63%4.325 3.16%36 2015-7-8 2015-8-26 2016 14.96%4.88%3.065 3.42%55 2016-9-29 2016-12-21 2017 14.63%5.93%2.466 3.92%23 2017-4-24 2017-5-25 2018 17.28%5.78%2.988 3.00%13 2018-8-27 2018-9-12 总计 17.26%5.5
33、9%3.09 4.29%157 2016-9-29 2017-5-25 资料来源:Wind,国盛证券研究所 可以看到,使用带权重的 ICIR 加权的多因子组合比传统的 ICIR 方法无论从年化收益率还是信息比率上都表现更优。尤其是在每个年份的表现更加稳定,例如最近三年 2016年到 2018 年,无论市场处于怎样的风格,都能获得 14%以上的年化收益,信息比稳定在 2.4 以上,这一点相比原始的 ICIR 要更稳健,由此带来的超额收益最大回撤也降低到了 4.29%,信息比率提高到 3.090.那么,是不是“顶部”的权重给的越高,策略效果越好呢?我们可以调整 w 的半衰期,将w的半衰期从int(
34、n/2)调整为int(n/10),这样相当于10%分位的股票就有一半的权重。我们测试了 w 的半衰期从 int(n/2)到 int(n/10)的情况,发现策略表现变化如下表所示。图表 9:不同半衰期下带权重的 ICIR 表现 w 半衰期半衰期 年化收益年化收益 年化波动年化波动 信息比率信息比率 最大回撤最大回撤 int(n/2)17.26%5.59%3.09 4.29%int(n/5)16.11%5.44%2.961 4.61%int(n/10)13.76%5.92%2.324 5.22%资料来源:Wind,国盛证券研究所 可以看到,半衰期的选择对于带权重的 ICIR 策略影响很大,如果半衰
35、期选的不好,将太多的权重给予“顶端”,那么策略表现反而不如原始的ICIR(信息比从2.932降低到2.324)。可见,使用带权重的 ICIR 的最主要问题是参数不是很稳定,合适的半衰期可能对策略有着很大的影响。3.3 改进二:空头剔除法改进二:空头剔除法 除了带权重的 ICIR 之外,还有一种做法是通过空头剔除法解决因子空头问题,其思想是找出空头最强的 m 个因子,通过这 m 个因子先对选股池做剔除,例如针对这 m 个因子中的每个因子,剔除其后 10%的股票,然后再在剩下的选股池中进行选股。这种方式的好处是可以充分利用空头端股票表现差的特点,使得这些很差的股票直接不会被选到。然而,我们通过研究
36、发现,空头因子个数 m 的选择对策略影响也较大。我们下面先使用默认参数 m=5 进行测试,方法是首先把股票在因子 i 上分为 10 组,计算空头收益(第 2019 年 03 月 04 日 P.12 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 六组减第十组)和多头(第一组减第五组)收益的比值,选取该比值最大的 5 个因子,分别从选股池中剔除这五个因子的 10%股票,其他策略细节同 ICIR 策略。策略的表现如下图所示:图表 10:空头剔除法 ICIR 加权方式历史表现 资料来源:Wind,国盛证券研究所 图表 11:空头剔除法 ICIR 策略分年表现 年化收益年化收益 年化波动年化波动 信
37、息比率信息比率 最大回撤最大回撤 回撤天数回撤天数 回撤开始时间回撤开始时间 回撤结束时间回撤结束时间 2010 31.74%6.32%5.021 2.47%15 2010-10-26 2010-11-15 2011 19.54%5.03%3.883 2.54%18 2011-3-23 2011-4-19 2012 24.33%5.78%4.211 2.51%15 2012-4-5 2012-4-25 2013 15.16%6.21%2.439 2.62%24 2013-6-26 2013-7-29 2014 5.49%5.60%0.981 3.67%63 2014-1-17 2014-4-2
38、3 2015 28.81%5.96%4.831 2.62%18 2015-5-21 2015-6-15 2016 16.65%4.95%3.363 1.84%15 2016-11-24 2016-12-14 2017 12.92%5.57%2.321 4.91%72 2017-1-3 2017-4-21 2018 11.83%5.68%2.084 3.98%60 2018-6-22 2018-9-13 总计 17.01%5.71%2.979 4.93%73 2016-12-30 2017-4-21 资料来源:Wind,国盛证券研究所 可以看到,空头剔除法在该参数下比传统 ICIR 方法表现略有
39、提高,信息比率提高到了2.979,那么空头因子到底应该选多少个呢?我们发现,如果因子个数选择不好,业绩会大打折扣:图表 12:不同半衰期下带权重的 ICIR 表现 空头因子个数空头因子个数m 年化收益年化收益 年化波动年化波动 信息比率信息比率 最大回撤最大回撤 m=1 16.15%5.63%2.868 4.83%m=5 17.01%5.71%2.979 4.93%m=10 13.73%5.84%2.351 6.12%m=20 9.87%5.86%1.686 8.64%m=30 7.24%5.61%1.291 7.51%m=50 NA NA NA NA 资料来源:Wind,国盛证券研究所 可以
40、看到,随着因子个数的增长,策略表现不但没有提高,还变得更差了,甚至弱于原-0.06-0.05-0.04-0.03-0.02-0.010012345672010-1-42011-1-42012-1-42013-1-42014-1-42015-1-42016-1-42017-1-42018-1-4最大回撤策略基准对冲净值 2019 年 03 月 04 日 P.13 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 来的 ICIR 策略。在空头因子个数为 50 的时候,由于选股域被压缩的太厉害,很多期甚至优化无解,导致回测没有太大意义。所以,在 m=5 的时候策略的微弱提高看来根本不值一提。可以看出
41、,虽然带权重的 ICIR 和空头剔除法或多或少地解决了一些因子空头问题,但是两个方法也都存在着一些问题,使得这些方法还不能够让我们满意。下面,我们来介绍一个稳定性更强,策略表现更优的机器学习模型顶端优化模型。4.顶端优化模型顶端优化模型 近年来,机器学习算法在语音识别、图像处理等方面的卓越性能引起了广泛关注,通过使用机器学习算法构建的量化投资策略也逐渐进入了公众的视野,但是这些策略目前都有其无法回避的弊端:线性模型无法解释因子之间的非线性关系,而很多非线性模型又对参数比较敏感,市场风格的切换导致策略鲁棒性降低,同时模型可解释性低也使得投资者望而却步。然而,我们把注意力转移到信息检索领域,发现量
42、化投资与信息检索有相通之处,即用户在进行信息检索时,他只关注搜索出来排序前几名的结果是否与搜索关键词相关,而并不关心排名靠后的网页。类比到投资领域,正是我们上文提到的,我们对空头端的表现并没有那么关心,而相对更关心因子多头端的情况。因此,我们使用顶端优化模型,将优化目标着眼于股票收益率排序顶端,赋予排序顶端的负例更大的错误代价,从而达到顶端正例(绩优股票)聚集的效果。该算法时间复杂度低(线性),模型可解释性强,符合投资者思维及市场逻辑。接下来,我们从顶端优化模型的基础模型二分排序模型引入,介绍这些算法的原理,之后我们利用数据库中的 ALPHA 因子构建基于顶端优化的多因子组合,并分析顶端排序模
43、型的表现和及其试适用条件,最后我们将顶端排序模型与其他模型进行比较。4.1 二分排序模型二分排序模型 在量化选股过程中,排序模型被广泛应用,大部分输出结果为实值的选股模型在最后都需要根据结果对个股进行排序,所以排序结果对选股效果的好坏至关重要,我们首先考虑直接对排序结果进行优化。机器学习中的二分排序模型(Bipartite ranking)是排序模型的一种,输入的样本只有两个分类,可以类比为股票之中的上涨的下跌,其目标是学得一个实值的排序模型,使得模型在测试时将正例样本排列在负例之前。而在选股问题上,我们认为优化排序顶端的二分排序模型更加符合量化选股的逻辑,下面我们就介绍该模型的原理,并探究其
44、与传统线性回归的区别与优势。4.1 顶端优化模型的原理顶端优化模型的原理 顶端优化模型是李楠等人发表于 NIPS 2014 上 Top Rank Optimization in Linear Time一文中的算法,其以二分排序为基础,在二分排序模型之中,广泛使用的评价准则是 AUC,为了优化 AUC,传统排序优化的损失函数为:(1)其中 f 表示预测模型,m 与 n 表示正例样本数与负例样本数,+与表示正例样本和负 2019 年 03 月 04 日 P.14 请仔细阅读本报告末页声明请仔细阅读本报告末页声明 例样本,表示指示函数,这个损失函数可以理解为:当模型对正例样本的预测值小于负例样本时,
45、记为 1 错误,遍历所有正例与负例样本对,得到整体错误率。然而,AUC 强调的是模型整体的排序效果好坏,最大化 AUC 并不能满足对排序最顶端的优化目标,为了解决这一问题,顶端优化算法着眼于优化排序最顶端的精度:高于排名最高负例的正例比例,又被称为顶端正例率,其损失函数为:(2)损失函数(2)可以理解为:当模型对正例xi+的预测值(+)比模型预测排序最靠前的负例max1n()预测值小的时候,记为 1 错误,对所有正例进行遍历,得到排名在最高负例之下的正例比例,通过降低(2)中的损失函数,我们将更多的正例排在了所有负例之前,使得在排序顶端的正例纯度升高。由于指示函数为非凸函数,不利于模型的优化,
46、模型使用凸函数对损失函数进行替代:(3)其中 为截断二次损失()=1+2,为了最小化损失函数,我们将()以的形式表示,那么模型的目的就是学得各因子的权重,最终,模型的优化问题为:(4)其中为正则化参数,由于 max 操作符难以优化,我们对优化问题求其对偶形式:(5)其中与 为对偶变量,其定义域 为:(6)令与为对偶问题的最优解,那么原问题的最优解 可由对偶变量推出:(7)所以若求得对偶变量与的最优解,我们也得到了因子权重的最优解,为了求解对偶变量,我们使用加速梯度下降来对(5)式进行求解,对偶变量的梯度为:(8)(9)(10)其中()为截断二次损失()=1+2 凸共轭的导数。同时使用 Nest
47、erov 方法来加快收敛过程。具体细节及理论见论文 N.Li,R.Jin and Z.-H.Zhou.Top Rank Optimization in Linear Time.In NIPS-2014,这里不再赘述。我们用一句话总结顶端排序模型:模型在训练时,通过对偶、加速梯度下降结合 Nesterov方法不断优化(3)式来降低顶端排序损失,也就意味着在训练集上排序最顶端的正例纯度升高,最终得到针对顶端进行优化的因子权重,在具体的操作上,顶端排序模型的输入为+1 与-1 的样本集合,输出为顶端优化后的排序权重。2019 年 03 月 04 日 P.15 请仔细阅读本报告末页声明请仔细阅读本报告
48、末页声明 顶端排序模型与线性模型最大的区别就在于损失函数上,线性模型最小化的是平方损失函数,而顶端排序模型自定义了损失函数(2),这也是造成两者得到的因子权重不同的原因。那么接下来让我们构建基于顶端优化的多因子选股策略,同时与线性模型的结果进行比较分析。4.3 基于顶端优化模型的多因子选股策略基于顶端优化模型的多因子选股策略 在上一节中,我们介绍了顶端优化模型的主要原理。本节我们将使用该模型进行多因子选股。首先,我们介绍策略怎样进行模型训练。4.3.1 模型训练模型训练 样本空间:在模型训练时,样本空间选取全部 A 股标的池(去除新股、ST 股票)。样本数据:样本数据的特征 X 矩阵为数据库中
49、所有因子在 t 时刻的暴露,标签 y 为个股在 t+1 期的收益率。样本数据处理:包括缺失值处理、去极值、中性化和标准化四个步骤,这部分和 ICIR 方法一样,先使用当日个股横截面均值来补足股票因子暴露度缺失,再使用 5 倍 MAD(中位数绝对偏差)对异常值进行处理,即将个股横截面序列上大于因子中位数 5 倍绝对偏差的因子臵为中位数 5 倍绝对偏差,小于中位数-5 倍绝对偏差的因子臵为中位数-5 倍绝对偏差。之后是中性化,对市值和行业进行中性处理(这里使用流通市值和中信行业分类)。最后再进行标准化,即计算因子的 z-score。4.3.2 策略组合构建策略组合构建 我们同样通过顶端优化算法构建
50、月换仓的交易策略,在每个月最后一个交易日结束后提取个股过去 12 个月月末的因子值及下一期收益率,对每一期分别运行顶端排序模型,得到因子权重,最后以 6 个月为半衰期求得加权均值,使用此因子权重与当期个股因子暴露加权后得到个股的因子总得分,该得分即为合成的 ALPHA 值。依然根据 3.1 节中的目标函数进行组合优化:max()|我们回测的细节如下:回测时间:从 2010 年 1 月至今 样本池:全部 A 股,剔除上市半年以内的新股、ST 股 换仓时间:每月第一个交易日,每次都滚动使用过去 12 个月的数据作为训练数据得到模型的权重,然后用该权重对本期因子进行加权。训练时,设定当期收益率排名前