楼主: JoinQuant
447 0

[程序化交易] 高频量价因子在股票和期货中的表现 - 动量类因子 [推广有奖]

  • 0关注
  • 15粉丝

等待验证会员

博士生

17%

还不是VIP/贵宾

-

威望
0
论坛币
100 个
通用积分
11.0654
学术水平
11 点
热心指数
8 点
信用等级
8 点
经验
3301 点
帖子
97
精华
0
在线时间
132 小时
注册时间
2015-9-9
最后登录
2019-9-2

JoinQuant 企业认证  发表于 2019-6-10 19:36:55 |显示全部楼层

v2-eca987e734abb9dfc541c5eabfa65e14_b.gif


引言

>>> 研究目的


本文参考海通证券研报《高频量价因子在股票和期货中的表现》,对其动量类因子——趋势强度因子和改进反转因子,进行单因子分析测试,以从各个方面考察因子的有效性,为日后构建实盘交易的多因子选股策略提供思路。

本篇研报将目光聚焦在股票和期货的日内交易特征上,并对比各因子在股票中的表现。 根据研报分析,传统一个月反转因子自2017年以来有效性有所减弱,一个重要的原因是投资者更加注重基本面研究和价值投资,青睐基本面向好的公司,抛弃基本面恶化或者业绩“暴雷”的公司。由于大多数公司选择在收盘之后发布财务数据等重要信息,股票次日往往跳空开盘,并在随后一段时间大幅波动。

近年来,A股机构投资者占比提升,市场交易行为在慢慢向美股等发达市场靠拢,这种在美股财报季常见的开盘跳空现象属于市场对重要数据或信息的合理定价,而并非投资者行为造成的错误定价。

基于以上现象,可以尝试将隔夜和开盘后半小时的涨幅剔除,再计算当日涨幅rt,将过去一个月rt的累计值作为新的反转因子。除了使用日内信息对传统因子做增强,还可以直接使用分钟级数据构建因子。本篇研报根据股票分钟级日内数据定义了趋势强度指标,并以此前R日平均值进一步构建趋势强度因子。该因子可以理解为日内价格位移与路程之比,能够刻画日内趋势的强弱,具备一定的选股效果。

根据上述研报内容,本文对其日内动量因子在股票中的表现进行复现分析,并对股票价格日内模式进行了研究,从其中提取出趋势强度因子和改进反转因子,从而实现对股票未来收益的预测,为在日内高频量价数据中挖掘有效因子提供一定思路。



>>> 研究内容


(1)利用聚宽因子分析API,构建因子函数类;

(2)研究在日内高频分钟级数据中挖掘构建趋势强度因子,并对该因子进行有效性检验,包括IC信息系数法检验以及构建分层回测组合,并对该因子剔除Barra风格因子和行业因子,并在分层回测过程中设置真实交易费率来模拟因子真实的选股能力;

(3)研究使用日内信息对传统反转因子做增强,通过剔除传统反转因子隔夜和开盘半小时内的收益数据,来构建新的反转因子,并进行有效性检验,包括IC信息系数法检验以及构建分层回测组合,并构建与原始因子的多空组合收益表现对比,以反映改进反转因子的性能提升情况。同时进一步对因子进行正交化,进行分层回测,并在分层回测过程中设置真实交易费率来模拟因子真实的选股能力。



>>> 研究结论:

最终,我们通过对日内动量因子的有效性分析以及分层回测检验,初步得到以下几个结论:

(1)趋势强度因子


在 2018-01-2019-05 中,因子值与下月收益率呈现一定的负相关性,我们考察因子的IR值,10日换仓和30日换仓因子稳定性较好,且在单位风险下,10日换仓因子具有最佳的有效性。基于此,我们以10日为调仓周期,进行分层回测分析,发现正交后的趋势强度因子在2017年以后跑输大盘。

另外,趋势强度因子的空头方一直表现稳定,虽然目前A股市场无有效的做空手段,但可以用趋势强度因子的空头方对策略股票池做负向排除,实现避免踩雷的效果。

(2)改进反转因子


在 2018-01-2019-05 中,因子值与下月收益率呈现一定的负相关性,即因子值越低,下月预期收益率越高。我们考察1、5、10、30日因子的IR值,10日换仓和30日换仓因子稳定性较好,且在单位风险下,10日调仓和30日换仓IC_IR表现相差不大,但考虑换手率的情况,30日调仓会节省更多的交易成本。

基于此,我们以30日为调仓周期,进行分层回测分析,发现剔除了隔夜和开盘后半小时涨幅的一个月反转因子的多空组合月均收益差从 5%提升至 7.2%,2017 年以来提升效果尤为明显。进一步对因子进行正交化和行业中性化后,分层回测组合中多头组合整体上明显跑赢空头组合,各组收益呈现出一定的单调性趋势,符合单因子有效性的检验。

正交后的改进反转因子即便在2019年以后因子的多空和空头均依然具备一定的有效性,多头方依然具备稳定的收益能力,可以利用正交改进反转因子对策略进行Alpha正向增强,提升策略的整体表现。




具体步骤

>>> 回测参数设置

(1)回测区间:2013-01 - 2019-05
(2)调仓频率:月末调仓
(3)股票池:中证800+中证1000,剔除ST、上市不满6个月的股票
(4)费率:由于部分因子难以确定影响方向,因此回测暂不扣费
(5)分10分位数进行回测,每组资金平均分配
测试平台: Python3

1 研初始化

首先载入所需要的package



2 动量类因子分析

2.1 趋势强度

‍‍首先我们直接使用分钟级别的数据构建趋势强度因子。

记t日1分钟频率的价格序列为Pt(t=1,2,..,n),则趋势强度指标定义如下:‍‍

1.png


该指标可以理解为日内价格位移与路程之比,能够刻画日内趋势的强弱。我们同样将过去R日指标均值定义为趋势强度因子。

在本篇中,我们取R为20日平均。



2.1.1 因子构建

本文使用JoinQuant因子分析API,在研究环境中调用以进行因子分析。API使用详情可参阅聚宽技术文档。

本节首先构建趋势强度因子类,并对因子进行正交化处理,剔除Barra风格因子和行业因子。



2.1.2 因子分析引擎初始化

下面我们对上面构建的趋势强度因子进行回测分析,从各个方面考察因子的有效性。

参数设置如下:

(1)测试时间:2018-01-01 至 2019-05-17;

(2)分位数:十分位数;

(3)调仓周期:1日、5日、10日、30日;

(4)仓位配置:等权配置;

(5)股票池:中证800



2.1.3 因子IC值分析


目前常用的因子有效性分析法有回归法、分层回测法和IC信息系数法。在实际操作中,往往三种方法结合使用,从各个方面来考察因子的有效性。

在本节我们使用IC信息系数法对趋势强度因子进行检验。

IC值定义如下:


2.png


其中ft−1表示上一期的因子值,rt表示当期的股票收益率。即因子的IC值实际上就是因子值与下一期收益率的相关性,用来反映因子的预测能力。

进一步的,我们排除因子值大小的影响,使用RankIC来替代IC值进行分析。RankIC为当期因子值的排名与下一期因子值排名的相关性。

考虑预测能力的同时也要考虑因子预测能力的稳定性。

我们引入IR:

3.png



用IR来反映因子预测能力的波动性。
进一步引入IC_IR:

4.png



IC_IR用来表示单位波动性因子的预测能力,是收益与风险的权衡指标。

下面我们绘制因子1日、5日、10日、30日的RankIC时间序列图和月度均值图。


5.png



6.png



在从2018-01月至2019-05月的这17个月中,1日、5日、10日、30日IC均值分别为-0.016、-0.023、-0.029、-0.019,说明因子值与下月收益率呈现一定的负相关性,即因子值越低,下月预期收益率越高。

我们考察1、5、10、30日因子的IR值,分别为0.266、0.261、0.255、0.253。可见,10日换仓和30日换仓因子稳定性较好。

进一步的计算IC_IR值为:-0.060、-0.088、-0.114、-0.075。因此,在单位风险下,10日换仓因子具有最佳的有效性。

基于此,我们以10日为调仓周期,进行分层回测分析,进一步考察因子有效性。



2.1.4 趋势强度因子回测分析


股票池:中证800+中证1000,剔除 ST、停牌、上市时间小于 6 个月的股票

回测时间:2013-01-01 至 2019-06-01

调仓期:每十天

费率:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5元。

选股步骤可分为以下三部分:

(1)在每个调仓日第一天计算因子值

(2)对因子值根据从小到大的顺序进行排序,并将其等分为 10 组

(3)每个调仓日对每组股票池进行调仓交易,从而获得 10 组股票组合的收益曲线。

在本节使用的因子依然是正交因子。

整个回测需要运行2.77小时,回测结束后,将回测结果保存在研究环境中,方便以后的调用。



2.1.5 分层回测结果


绘制 10 个组合及 HS300 基准的净值收益曲线,具体下图所示。


7.png


由图可以看出,组合 1 能够明显跑赢组合 10,且各组收益呈现出单调性,符合单因子有效性的检验。
进一步分析,正交后的趋势强度因子在2017年以后跑输大盘,一方面是因为因子的有效性有所减弱,另一方面是趋势强度因子往往在牛市中表现出色,投资者在牛市中的交易情绪高涨,容易出现不理性行为。
另外,趋势强度因子的空头方一直表现稳定,虽然目前A股市场无有效的做空手段,但可以用趋势强度因子的空头方对策略股票池做负向排除,实现避免踩雷的效果。


8.png


上面几张表分析了每个投资组合的评价指标,根据年化收益、年化波动率、夏普比率及最大回撤分析,随并非严格单调,但也呈现出明显的下降趋势,基本上满足随着组合数的递增,收益能力上升且风险控制能力下降的趋势,由此符合单因子有效性的检验。空头方效果明显,即便如今也可以利用趋势强度因子的空头进行负向排除。

9.png


进一步构建多空对从组合,做多组合1做空组合10,年化收益率为1.6%,最大回测6.4%,趋势强度因子的选股能力主要来源于空头。



2.2 改进反转因子

2.2.1 因子构建


除了直接使用分钟级别数据构建因子之外,我们还可以使用日内信息对传统因子做增强。

例如一个月反转因子自 2017 年以来有效性有所减弱,一个重要的原因是投资者更加注重基本面研究和价值投资,青睐基本面向好的公司,抛弃基本面恶化或者业绩“爆雷”的公司。由于大多数公司选择在收盘之后发布财务数据等重要信息,股票次日往往跳空开盘,并在随后一段时间大幅波动。

近年来,A 股机构投资者占比提升,市场交易行为在慢慢向美股等发达市场靠拢,这种在美股财报季常见的开盘跳空现象属于市场对重要数据或信息的合理定价,而并非投资者行为造成的错误定价。基于以上现象,我们可以尝试将将隔夜和开盘后半小时的涨幅剔除,再计算当日涨幅 rt,将过去一个月 rt的累计值作为新的反转因子。

本节依然使用因子分析框架,并对改进反转因子进行风格因子和行业因子正交化。



2.2.2 因子分析引擎初始化


下面我们对上面构建的改进反转因子进行回测分析,从各个方面考察因子的有效性。
参数设置如下:
(1)测试时间:2018-01-01 至 2019-05-17;
(2)分位数:十分位数;
(3)调仓周期:1日、5日、10日、30日;
(4)仓位配置:等权配置;
(5)股票池:中证800



2.2.3 因子IC值分析


如趋势强度因子的分析流程,下面我们绘制改进反转因子1日、5日、10日、30日的IC时间序列图和月度均值图。


10.png



11.png



在从2018年01月至2019年05月的这17个月当中,1日、5日、10日、30日的IC均值分别为 -0.014、-0.020 、-0.022、-0.021,说明因子值与下月收益率呈现一定的负相关性,即因子值越低,下月预期收益率越高。

我们考察1、5、10、30日因子的IR值,分别为0.246、0.241、0.224、0.228。可见,10日换仓和30日换仓因子稳定性较好。

进一步的计算IC_IR值为:-0.057、-0.083、-0.098、-0.092。因此,在单位风险下,10日换仓因子具有最佳的有效性。

10日调仓和30日换仓IC_IR表现相差不大,但考虑换手率的情况,30日调仓会节省更多的交易成本。

基于此,我们以30日为调仓周期,进行分层回测分析,进一步考察因子有效性。



2.2.4 改进反转因子回测分析


首先我们构建改进反转因子和原始反转因子的多空组合回测情况,用来反映改进后因子的表现情况。在这一环节我们不设置回测费率。

下一步我们构建正交改进反转因子的分层回测组合,用于考察因子实际的选股能力。这一环节我们使用真实费率。

股票池:中证800+中证1000,剔除 ST、停牌、上市时间小于 6 个月的股票

回测时间:2013-01-01 至 2019-06-01

调仓期:每30天

费率:买入时佣金万分之三,卖出时佣金万分之三加千分之一印花税, 每笔交易佣金最低扣5元

选股步骤可分为以下三部分:

(1)在每个调仓日第一天计算因子值
(2)对因子值根据从小到大的顺序进行排序,并将其等分为 10 组
(3)每个调仓日对每组股票池进行调仓交易,从而获得 10 组股票组合的收益曲线



2.2.4.1 初始化分层回测函数



2.2.4.2 构建改进反转因子多空组合


在聚宽策略环境中构建改进反转因子的单因子选股策略,并利用分层回测引擎进行回测,并将回测结果保存到研究环境中,方便后续的对比分析。

整个策略回测运行大约耗时4小时。



2.2.4.3 构建原始反转因子多空组合

在聚宽策略环境中构建原始反转因子的单因子选股策略,并利用分层回测引擎进行回测,并将回测结果保存到研究环境中,方便后续的对比分析。
整个策略回测运行大约耗时2小时。



2.2.4.4 多空组合对比分析

下面我们将改进反转因子和原始反转因子进行对比分析。

首先我们绘制Top-Bottom多空对冲组合净值的时间序列对比图,对比如下图所示。


12.png




从图中我们可以得出,经过改进的反转因子的多空组合年化收益由 5% 提升至 7.2%,最大回测由 13% 下降到 8 % ,2017 年以来提升效果尤为明显,这充分说明改进反转因子的有效性提升。



2.2.4.5 正交因子分层收益


下面我们进一步对改进反转因子进行正交化,正交化即为剔除Barra风格因子的相关性,得到正交反转因子。为了验证正交因子的有效性,我们下一步构建10组分层组合,并进行分层回测分析。为了考察真是选股能力,本环节设置真实交易费率。

整个回测过程大约耗时1小时。


13.png




由图可以看出,多头组合整体上明显跑赢空头组合,各组收益呈现出一定的单调性趋势,符合单因子有效性的检验。

进一步分析,正交后的改进反转因子即便在2019年以后因子的多空和空头均依然具备一定的有效性,如第三组仅仅在单个改进反转因子且没有进行组合优化的情况下,依然可以跑赢大盘指数,多头方依然具备稳定的收益能力。同时改进反转因子同样在牛市中表现出色,投资者在牛市中的交易情绪高涨,容易出现不理性行为。

基于此,可以利用正交改进反转因子对策略进行Alpha正向增强,提升策略的整体表现。


14.png



由上表可以看出,正交因子10分位数组合净值表现呈现单调下降趋势,正交后的改进反转因子多空和空头均依然具备一定的有效性,可用作Alpha增强。

点击【阅读更多】,查看研究原码。





您需要登录后才可以回帖 登录 | 我要注册

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2019-9-20 12:04