PLUS会员

CTA多因子研究系列探索--动量因子

由catalyst创建,最终由catalyst 被浏览 350 用户

引言

动量因子在金融市场有着广泛的应用。动量因子始于Jegadeesh and Titman(1993),且动量因子广泛存在于股票,期货,债券等市场中。学术界关于动量的争议也层出不穷。一方面,有人认为动量因子的出现违背了有效市场假说;另一方面,人们认为动量背后的成因是投资者对市场信息反应的不充分或者过度,投资者获取信息的先后不一样,同时亦有部分观点认为长期来看,动量背后的成因同样也包含了基本面因素的驱动,在大环境条件不变的情况下,动量表现好的品种会在基本面供需的驱动下继续表现好。目前市面上已有大量的动量因子或者是使用技术指标构造的趋势因子,从动量的分类出发,动量可以分为时序动量和截面动量,本文也将选择部分动量因子在期货市场进行构造和探索。

\

因子构建

我们广泛梳理了市场上的动量因子,最后决定选用三个有代表性的因子进行测试:

基础动量因子

为过去K天的累计收益率,其表达式如下:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}在后文中我们使用T_MOM代表该因子。

动量因子的一个变式

为过去K个交易日日内累计步长的均值,其表达式如下:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

在后文中我们使用T_CUMSTEP代表该因子。

\

使用GK波动率来衡量的趋势

其表达式如下:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}其中GK波动率是由Garman and Klass提出的一种波动率的衡量方法,其表达式为:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

在后文中我们使用T_STDS代表该因子。

另需要说明的是为了更好的展示因子,我们对因子值均乘以了-1。

\

因子分析

首先需要明确的是测试环境。所有的测试时间均为2010年1月1日到2022年6月30日。测试使用的回测平台为BigQuant。仓位和杠杆方面,不使用杠杆且仓位使用为100%。使用的调仓周期均为5天。样本空间为品种的成交量大于100000的品种。

因子的IC统计

如下表所示是三个动量因子的IC统计情况:

IC均值 IC正值次数 IC负值次数 IR
T_MOM(K=100) 0.0302 322 283 0.0928
T_CUMSTEP(K=10) -0.0194 298 308 -0.069
T_STDS(K=10) -0.017 298 308 -0.0627

这里可以看到T_MOM因子的IC均值为正,而其他两个因子值为负。


下图是T_MOM累计IC的情况:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下图是T_CUMSTEP累计IC的情况:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下图是T_STDS累计IC的情况:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

因子分组测试

我们对因子进行了分组测试:我们将标的根据因子值大小的分位数分为了5组。其中top0表示因子值最小的一组,top4表示因子值最大的一组。LS表示top0 - top4的表现情况。

下图是T_MOM的因子分组测试:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}


下图是T_CUMSTEP的因子分组测试:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下图是T_STDS的因子分组测试:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}从三个因子的分组测试来看。T*MOM因子值越大越好,T_*CUMSTEP以及T_STDS因子值越小越好,这与我们IC测试得到的结论是一致的。

\

超参测试

接着我们对动量因子进行了超参测试。分别从持仓周期和因子的回看周期这两个角度进行测试。下表中横轴为持仓周期,纵轴为回看周期。表中的值对应的是策略在不同参数下的年化收益率(%)。

下表为T_MOM(%)超参测试结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}下表为T_CUMSTEP(%)超参测试结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下表为T_STDS(%)超参测试结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}从超参搜索的结果来看,三个因子在长周期的表现都较好。同时TSTDS和T_CUMSTP在会看周期为10,30,40,50的时候表现也较好。

\

回测结果

更深一步的,我们仍然保持一周的调仓频率,选取更好的回看时长进行回测。回测采用多空对冲的方式,且多空品种数量为5,采用绝对数量的形式。并且我们会对回测结果每年的收益情况进行统计,形成了如下所示的回测曲线和统计结果。

下图是T_MOM的回测曲线以及分年的统计结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

整体来看,2013年该策略表现最好,该策略有5年的年化收益率为负。


下图是T_CUMSTEP的回测曲线以及分年的统计结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}

下图是T_STDS的回测曲线以及分年的统计结果:

{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100} {w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}{w:100}该策略可以看到只有两年收益率为负,分别是2017年和2019年。其中2012年该策略表现最好。

\

总结

本文通过构建和探索动量因子,得到了三个不同风格的动量因子。其中T_STDS因子表现较好,该策略如果按照年去统计,收益率仅两年收益率为负。

\

策略源码

因子测试以及回测代码:

标签

动量因子股票期货有效市场假说
{link}