一、摘要

在前期的Barra模型系列文章中,我们构建了Size因子、Beta因子、Momentum因子和Residual Volatility因子,并分别创建了对应的单因子策略,本节文章在该系列下进一步构建NonLinear Size因子。从回测结果看,自2022年以来,该策略实现了超47%的年化收益率,大幅跑赢市场。

二、模型理论

Barra模型的NonLinear Size因子的计算方法如下:

barra风险因子 Python代码_量化策略

NonLinear Size因子是非线性因子,衡量的是中市值股票。先基于前期的Size因子求立方获得NLSIZE因子,再与Size因子做回归取残差,并进行一系列因子处理。

三、因子分析

使用alphalens进行对NonLinear Size因子进行分析(2022年-2023年2月18日)。

barra风险因子 Python代码_掘金量化_02

基于上述收益分析,最大因子值分组贡献正收益,而最小因子值分组贡献了负收益,且正收益远大于负收益;三个调仓频率下,年化alpha收益的区分不大,而beta收益随着调仓周期的增大而降低。

barra风险因子 Python代码_barra风险因子 Python代码_03

从信息系数的分析来看,21天的调仓周期具有更高的IC均值和更低的IC标准差,IC均值大于0.05,表明该因子选股能力较强;进一步计算IR(IC 均值/IC 标准差)等于0.57,大于0.5,说明21天的调仓周期下获取超额收益的能力较为稳定。

barra风险因子 Python代码_单因子策略_04

分组收益图显示,NonLinear Size因子的单调性很好,且单调递增,与前文分析相符,预期基于NonLinear Size因子的单因子策略会有不错的正向收益。

四、回测分析

回测时间:2022-01-01至2023-02-18(月底换股)

回测品种:全A股(剔除ST股、停牌股和一年以内的次新股)

初始资金:100万

手续费:0.0007(双边万二佣金+单边千一印花税,共千1.4,即双边万7)

滑点:0.00123(双边千1.23)

最大持仓数量:30只

barra风险因子 Python代码_Barra模型_05

在回测期间,NonLinear Size因子策略获得了47.29%的年化收益,16.91%的最大回撤,1.66的夏普比率。

但通过对比Size因子策略可以发现,二者的收益走势是比较一致的。进一步查看两个策略的持仓,发现两个策略的持仓很大部分是一样的。究其原因可以从NonLinear Size因子的定义来看:

原本的回归方程为:NLSIZE因子*3=A+B*NLSIZE因子+εε为残差,即ε=NLSIZE因子*3-A-B*NLSIZE因子,当NLSIZE因子特别大或特别小的时候,ε为正;而当NLSIZE因子居中的时候,ε为负,因此NonLinear Size因子可以看做一个中市值因子。

那么自然地,NonLinear Size因子作为一个正向因子,正好就是做多大市值和小市值的股票,做空中市值的股票。