构建可投资的风格"纯因子组合"

论坛 期权论坛 期权     
期权匿名问答   2022-6-23 18:42   6401   0
引言

前面两篇写了Barra的两个主要用途:组合业绩归因和风险预测,这篇写一写如何用Barra做投资。先说思路:Barra(cne5)有10个风格因子+28个(按照申万一级分类)行业因子,通过截面回归得到每一期各个风格因子的收益率,这个收益率其实就是各风格因子纯因子组合的收益率,只不过由于纯因子组合里存在做空个股的情况,所以并不具备投资性,但是假如我们通过一些优化的手段构造出了可投资的“纯因子组合”,再结合对风格因子收益率的预测,这不就形成了一套投资方案。所以这套方案分为两步:第一步涉及到如何构建可投资的风格纯因子组合,第二步涉及到如何做因子择时(也即所谓的风格轮动),第一步是第二步的基础,第二步很大程度上决定了组合收益率的好坏。当然如果以月频为调仓频率,数据量较少的情况下对因子收益率的预测其实并不容易,不过也有研究显示平均配置因子(即不做因子择时)的策略效果就已经不错了。不管咋说,先把第一步做好才能思考后面需不需要做以及怎么做因子择时的事情。
风险因子 VS alpha因子

barra里这些风格因子叫做风险因子,实际投资中听到更多的似乎是alpha因子,那么研究风险因子的纯因子组合以及在这些风险因子上做轮动的意义在哪?先说说风险因子和alpha因子的共性和区别:风险因子和alpha因子都是能够在横截面上有效区分股票收益率的因子,不同的是风险因子的收益率的方向是会变化的。以市值因子为例:17年之前,截面上越小市值的股票收益率越高,17年之后变成了越大市值的股票收益率越高。市值因子的收益率在17年前后虽然发生了变化,但是它对截面上个股的收益率始终都有解释度,所以市值因子在17年之前是一个alpha因子但是长期来看是一个风险因子。
某种意义上来说alpha因子用的人多了就变成了风险因子,我感觉要想赚alpha/beta的钱无非分为两种:一是挖掘还不被人知道的alpha因子,二就是研究如何在风险因子上做轮动(smart beta)。
可投资的纯因子组合

barra里的纯因子组合在A股市场上之所以不可投资是因为组合里存在个股做空的情况,通过优化的手段在一定程度上可以解决这个问题,优化问题的具体形式如下:

其中 (n*1维)是所有股票在目标因子上的暴露,(n*(K-1)维)是所有股票在除目标因子外其他因子上的暴露。由于做多的限制, 自然不会像纯因子组合一样等于1,所以上述优化会牺牲一部分目标因子的纯度。当然你也可以不牺牲目标因子的纯度,但是那就会使得在其他因子上的暴露不为0。
结合barra对组合的风险预测,我们也可以把最小化组合风险的目的代入优化目标,具体形式如下:
,其中V(n*n维)是n只股票的方差-协方差矩阵。
另外,如果是要做指数增强,在指数的成分股中进行选股,那么优化的形式就会变成:
,其中 是指数成分股的权重矩阵。
最后,这里只让个股权重大于0,但是在实际投资中太小的个股权重不具备投资性,太大的个股权重可能导致组合的特质风险无法被分散掉。下一节就以中证500为例看看实操情况如何。
实操遇到的坑

1. 风格数据的问题:聚宽的风格因子在beta因子上和动量因子上都存在极大值(几百的那种),所以要先做一遍数据清洗。   
2. 行业数据的问题:我第一遍做barra的时候采用的是申万最新的一级分类(31个行业),方法是把旧版本里(28个行业)已经停更的行业设为空值,用股票所属的新行业做向前填充,这样做的缺点是早期退市的属于已经停更的旧行业里的股票没有行业数据。于是我第二遍改成了用申万28,方法是把新出现的行业设为空值,用股票所属的旧的行业做向后填充,但是这样做也会导致一些新上市的属于新兴行业的股票没有行业数据。比较下来第二种方法比第一种方法缺失的行业数据要少,所以最终我采用了第二种方法。不过我感觉这个做法着实比较粗糙,后面要好好想想如何衡量新上市的属于新兴行业的股票的方差/协方差。
2. 特质收益率数据的问题:在做纯因子组合优化的时候,每个因子在全市场上选股的效果都还行,但是在指数成分股里做效果就不行。当我试图搞清楚介是为嘛的时候,发现竟然无法用投资组合权重,因子暴露,因子收益率以及股票特质收益率去复现出组合的收益率。然后我突然想起来回归的时候用的是wls回归,回归残差项并不是股票真正的特质收益率,股票真正的特质收益率需要在回归残差项前乘上一个 ,其中reg_w是wls回归里的权重矩阵。
实操结果分析

以在中证500上做低波纯因子组合为例,具体采用的优化方程为:

备注:由于做的是低波,所以组合在波动率因子上的暴露越小越好。
结果如下图:



中证500低波纯因子组合收益率

按理说如果组合每一天在波动率因子上的暴露都接近-1,在其他因子上的暴露都等于zz500在其他因子上的暴露以及组合特质收益率接近于0,那么通过做空zz500应该能复现出低波因子的收益率,但是低波因子的收益率如下图,明显和上图的绿线差距很大。



低波因子收益率

现在来分析一下两者差距为什么这么大:

  • 我在计算中证500的股票权重的时候用的是股票的市值权重,假如这个权重和中证500每天真实的股票权重差距很大,那么上面做的低波纯因子组合的效果自然不符合预期。


可以看出两者差距并不大,所以低波纯因子组合收益率不符合预期并不是因为市值权重和zz500的真实权重不符的问题。
2. 把低波纯因子组合和zz500组合的收益率拆解成因子收益率和特质收益率的部分,分别计算因子收益率之差和特质收益率之差,看看低波纯因子组合的收益率具体是被哪个部分侵蚀掉了。
2.1 波动率因子:低波纯因子组合在波动率因子上的历史平均暴露为-0.84,zz500在波动率因子上的历史平均暴露为0.09。虽然牺牲了一部分的纯度,但是低波纯因子组合在波动率因子上的平均暴露还是很低的,其在波动率因子上相对于zz500在波动率因子上的收益见下图:



低波纯因子组合相对于中证500在波动率因子上的收益

由于在波动率因子上的暴露不是-1,所以和低波因子的收益率略微有点差距。显然低波纯因子组合的收益率不符合预期也不是因为在波动率因子上的暴露过高导致的。
2.2 虽然在构造投资组合的那天低波纯因子组合在其他因子上的暴露和zz500在其他因子上的暴露是一样的,以及barra的因子暴露比较缓慢,但是保险起见还是检查一下比较好。下图是低波纯因子组合相对于zz500在其他因子上的历史平均暴露情况:



低波纯因子组合相对于zz500在其他因子上的暴露

可见两者差距也不大,所以低波纯因子组合的收益率不符合预期也不是由于中途在其他因子上的暴露和zz500在其他因子上的暴露产生了偏离导致的。
2.3 前面两种情况既然都不是,那么显然低波纯因子组合的收益率是被特质收益率侵蚀掉了。



低波纯因子组合相对于zz500的特质收益率

思考和后续


  • 继续分解特质收益率侵蚀的问题,看看这个问题能不能被更加分散化的投资组合解决掉,或者也可以试试把选股池缩小到过去特质收益率最低的那部分股票(如果特质收益率有延续性的话)。
  • 试着构建一套有效的风格轮动模型:基于因子拥挤度,景气度和宏观因子等。
分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP