导语: 本文结合CAPM和APT模型的思路,通过CAPM模型计算股票收益的α,再通过《多因子策略-APT模型》一文中的方法分析多因子对α的影响,并以此为标准进行选股。
阅读本文前请掌握:
基本金融概念。
线性回归模型,理解深度level-0
APT模型,理解深度level-0
CAPM模型,理解深度level-0
CAPM模型概述
大部分投资者都是风险厌恶型的,也就是说,对于高风险的股票,投资者要求的期望收益率会更加高。分散投资组合可以分散风险。但有一些风险是不能被分散的,比如市场风险、国家风险等。
美国学者夏普、林特尔、特里诺和莫辛等人于1964年在资产组合理论的基础上发展出来了一个资本资产定价模型(简称CAPM模型)。这个模型根据股票本身的风险和市场风险的相关性估算出单个股票的期望收益率。
市场的风险通常用大盘指数的波动率来衡量(波动即风险),由于风险的存在,大盘期望的收益率rMrM
rM
r_M
要比无风险利率rfrfrf
r_f
要高一些,其超额收益率(作为对风险的补偿)记为RM=rM?rfRM=rM?rfRM=rM?rf
R_M=r_M-r_f
,对于单个股票,采用类似的方法,记为Ri=ri?rfRi=ri?rfRi=ri?rf
R_i=r_i-r_f
,那么,第i个股票的预期收益率记为
Ri=βiRMRi=βiRM
Ri=βiRM
R_i=β_i R_M
或者更常见地,写成
ri=rf βi(rM?rf)ri=rf βi(rM?rf)
ri=rf βi(rM?rf)
r_i=r_f β_i (r_M-r_f)
用图像来表示就是
由上图可知,在β=0的时候,为无风险收益,没有市场风险,也没有超额收益。β越大,超额收益也越大,资产风险和市场风险的相关程度也随之升高。作为补偿的期望超额收益也越大。
不完美的CAPM
但是,CAPM模型是不是完美的呢?显然不是,CAPM首先就假设了市场风险是唯一风险因子。但在现实中,仅仅由市场风险是不足以解释资产回报的,因此,人们对CAPM做了改进,认为资产的收益率中的一部分是资产内秉特性,记为α,那么有
ri=rf βi(rM?rf) αiri=rf βi(rM?rf) αi
ri=rf βi(rM?rf) αi
r_i=r_f β_i (r_M-r_f) α_i
或者等价于
αi=ri?[rf βi(rM?rf)]αi=ri?[rf βi(rM?rf)]
αi=ri?[rf βi(rM?rf)]
α_i=r_i-[r_f β_i (r_M-r_f)]
再次强调一下。CAPM模型本身是没有alpha的,我们引入这个αiαi
αi
α_i
目的是要把股票的收益率归结为两个方面,一个是大盘的因素,用beta系数表示,一个是个股的因素,用αα
α
α
表示。比如广为人知的市值因素,动量因素,各种财务因素,等等。
CAPM APT选股应用
根据上文,我们有:
ri=rf βi(rM?rf) αiri=rf βi(rM?rf) αi
ri=rf βi(rM?rf) αi
r_i=r_f β_i (r_M-r_f) α_i
这个公式把单一资产的收益率*成三部分:无风险收益率rfrf
rf
r_f
,与整体市场相关的部分βi(rM?rf)βi(rM?rf)
βi(rM?rf)
β_i (r_M-r_f)
,以及个股内秉因素αiαi
αi
α_i
这个αiαi
αi
α_i
怎么刻画呢?还请大家回顾一下量化课堂文章《多因子策略-APT模型》,同那篇文章的思想,我们有相信α与公司的财务指标密切相关,故我们可以通过历史的财务指标和历史α进行线性回归,并用计算出的回归系数结合当期的财务指标预测下一期的α。
下面的图来自于APT模型的原文,我们要把过去几个时期的财务数据和α值进行统计和回归分析。
和上篇文章的方法类似,对于单只股票 i 的所有财务因子,t1日的因子值和t1~today期间的超额收益αi1αi1
αi1
α_i1
组成了一组观测值;t2日的因子值和t2~t1时期的超额收益αi2αi2αi2
α_i2
组成了一组观测值;一直到t4日的因子值和t4~t3时期的超额收益αi4αi4αi4
α_i4
组成了一组观测值。
我们取N支股票,按照财报周期向前获取4期的财务因子和期间内的α,以此获得4N组观测值,数据结构如下。
我们实际选取的财务因子有:市盈率、扣除非经常损益后的净利润、净资产收益率等九个指标,具体的因子选取方法请参见APT模型的文章。
我们将获取的数据组放入回归模型进行线性回归计算。如果用F1,F2,…,FnF1,F2,…,Fn
F1,F2,…,Fn
F_1,F_2,…,F_n
表示我们考虑的因子的话,回归的模型就是
α=b1F1 b2F2 ? bnFnα=b1F1 b2F2 ? bnFn
α=b1F1 b2F2 ? bnFn
α=b_1 F_1 b_2 F_2 ? b_n F_n
我们估算出回归系数b1,b2,…,bnb1,b2,…,bn
b1,b2,…,bn
b_1,b_2,…,b_n
。在这之后,我们可以将现期的财务因子和计算出的回归系数,代入上面线性函数计算出未来一段时间的α的预估,并调仓持有α预估值最高的股票。
策略和回测
我们构建策略如下:
第一步:根据CAPM模型计算得到股票池中每只股票对应财报季度的α值。
第二步:将对应季度的财报因子数据和α值进行多元线性回归
第三步:利用第二步中得到的回归参数对下一期的股票α值进行预测
第四步:将所得的预期α值进行排序,选择N支α最大的股票(若不足N支α大于0,则取所有α大于0的股票),并且将资产平均配置到股票组合中
在实际操作中,可以通过买入预期alpha>0的股票组合卖空沪深300指数进行操作。实现的方法只需要在聚宽社区的回测方法的基础上把日均收益率换成同期的alpha观测值就行了。
如下图所示,使用股票池为沪深300,股票数量N=0,回测周期是2006-01-01到2016-06-06,策略收益率是545.56%。
从这个图中我们可以看出,策略的收益率总体上比大盘略高,在最近一两年尤为明显,因此如果结合对冲的策略,收益应该会更好。
这里使用策略净值/大盘净值的方法来描述超额收益率:
这进一步证实了之前的猜想,这个策略总体上08年以后就有效了,在牛市期间表现比较好,但是在熊市的时候还是会略有回撤。也许有的读者注意到了,虽然看似15年以后超额收益率回撤挺大,但这是由于比例尺放大了造成的。因为在你资产价值已经是开始的好几倍的情况下,而沪深300指数期货只使用原来资产价值对应的仓位进行对冲,当然对冲效果不好了。
解决这个问题的一个方法是动态调仓。就是根据当前的资产价值来更新沪深300指数对冲的仓位,还请读者期待股指期货的回测上线。
函数和变量说明书
函数说明书:
变量说明书: