高频量价因子在股票和期货中的表现 - 动量类因子
引言
>>> 研究目的
本文参考海通证券研报《高频量价因子在股票和期货中的表现》,对其动量类因子——趋势强度因子和改进反转因子,进行单因子分析测试,以从各个方面考察因子的有效性,为日后构建实盘交易的多因子选股策略提供思路。
本篇研报将目光聚焦在股票和期货的日内交易特征上,并对比各因子在股票中的表现。 根据研报分析,传统一个月反转因子自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),则趋势强度指标定义如下:
该指标可以理解为日内价格位移与路程之比,能够刻画日内趋势的强弱。我们同样将过去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值定义如下:
其中ft−1表示上一期的因子值,rt表示当期的股票收益率。即因子的IC值实际上就是因子值与下一期收益率的相关性,用来反映因子的预测能力。
进一步的,我们排除因子值大小的影响,使用RankIC来替代IC值进行分析。RankIC为当期因子值的排名与下一期因子值排名的相关性。
考虑预测能力的同时也要考虑因子预测能力的稳定性。 我们引入IR:
用IR来反映因子预测能力的波动性。 进一步引入IC_IR:
IC_IR用来表示单位波动性因子的预测能力,是收益与风险的权衡指标。
下面我们绘制因子1日、5日、10日、30日的RankIC时间序列图和月度均值图。
在从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 基准的净值收益曲线,具体下图所示。
由图可以看出,组合 1 能够明显跑赢组合 10,且各组收益呈现出单调性,符合单因子有效性的检验。
进一步分析,正交后的趋势强度因子在2017年以后跑输大盘,一方面是因为因子的有效性有所减弱,另一方面是趋势强度因子往往在牛市中表现出色,投资者在牛市中的交易情绪高涨,容易出现不理性行为。
另外,趋势强度因子的空头方一直表现稳定,虽然目前A股市场无有效的做空手段,但可以用趋势强度因子的空头方对策略股票池做负向排除,实现避免踩雷的效果。
上面几张表分析了每个投资组合的评价指标,根据年化收益、年化波动率、夏普比率及最大回撤分析,随并非严格单调,但也呈现出明显的下降趋势,基本上满足随着组合数的递增,收益能力上升且风险控制能力下降的趋势,由此符合单因子有效性的检验。空头方效果明显,即便如今也可以利用趋势强度因子的空头进行负向排除。
进一步构建多空对从组合,做多组合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时间序列图和月度均值图。
在从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多空对冲组合净值的时间序列对比图,对比如下图所示。
从图中我们可以得出,经过改进的反转因子的多空组合年化收益由 5% 提升至 7.2%,最大回测由 13% 下降到 8 % ,2017 年以来提升效果尤为明显,这充分说明改进反转因子的有效性提升。
2.2.4.5 正交因子分层收益
下面我们进一步对改进反转因子进行正交化,正交化即为剔除Barra风格因子的相关性,得到正交反转因子。为了验证正交因子的有效性,我们下一步构建10组分层组合,并进行分层回测分析。为了考察真是选股能力,本环节设置真实交易费率。
整个回测过程大约耗时1小时。
由图可以看出,多头组合整体上明显跑赢空头组合,各组收益呈现出一定的单调性趋势,符合单因子有效性的检验。 进一步分析,正交后的改进反转因子即便在2019年以后因子的多空和空头均依然具备一定的有效性,如第三组仅仅在单个改进反转因子且没有进行组合优化的情况下,依然可以跑赢大盘指数,多头方依然具备稳定的收益能力。同时改进反转因子同样在牛市中表现出色,投资者在牛市中的交易情绪高涨,容易出现不理性行为。 基于此,可以利用正交改进反转因子对策略进行Alpha正向增强,提升策略的整体表现。
由上表可以看出,正交因子10分位数组合净值表现呈现单调下降趋势,正交后的改进反转因子多空和空头均依然具备一定的有效性,可用作Alpha增强。
总结
最终,我们通过以上对日内动量因子的有效性分析以及分层回测检验,初步得到以下几个结论:
(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正向增强,提升策略的整体表现。
点击【】,查看研究原码。
高频量价因子在股票和期货中的表现 - 动量类因子相关推荐
- 高频因子在股票中的表现
引 言 随着大数据时代的来临,高频交易在股票市场的应用越来越广泛,日内交易数据也给我们带来了更多可供投资参考的信息.因此本文从收益率分布.成交量分布.价量复合.资金流和日内动量五个方面构造众多高频因 ...
- 【期货龙虎榜量价分析】红枣PVC创新高,多空大幅增仓博弈激烈
期货龙虎榜观点:资金总是最最聪明的,通过主力席位持仓的博弈变化,分析多空双方短期力量对比,对下一个交易日的涨跌走势有很强的参考价值.可作为弥补技术分析的重要补充. 1.[玉米期货量价分析]玉米期货 ...
- 手把手教你python实现量价形态选股知乎_怎样通过量价形态选股?量价选股技巧...
许多股民投资者对于成交量变化的规律不清楚,K线分析只有与成交量的分析相结合,才能真正地读懂市场的语言,洞悉股价变化的奥妙.成交量是价格变化的原动力,其在实战技术分析中的地位不言自明.今天小编就和大家介 ...
- 华泰单因子测试之估值类因子(因子数据获取分析处理)
华泰单因子测试之估值类因子 pe(price-to-earning ratio) 市盈率,PE = 流通市值/最近4个季度的净利润:最近 4 个季度的净利润按如下方法计算: 1-4 月,最近 4 个季 ...
- 机器学习因子:在线性因子模型中捕捉非线性
本文由BigQuant翻译来自于MSCI研究,原文标题为<机器学习因子:在线性因子模型中捕捉非线性> 作者:George Bonne, Jun Wang, Howard Zhang 发表时 ...
- 波动率因子在中国A股市场的表现——从波动率异象出发
引言 >>> 研究目的 本文参考民生证券因子专题研究四<低波动异象:解析.改进及成因实证>内容,对波动率因子进行探索.在量化投资的领域,波动率是最常见的选股因子之一.全球 ...
- 分享股票level2接口的量价趋势指标源码
分享股票level2接口的量价趋势指标源码: 价趋势:MA(C,3)LINETHICK2 COLORGRAY; AMOL:=LOG(MA(AMO/C/100,M)); AMOH:=LOG(MA(AMO ...
- 股票量价关系基础知识7----图解各阶段量价关系:价涨量缩
图解各阶段量价关系:价涨量缩 价涨量缩是指股价上涨,成交量却萎缩的一种价量背离走势.它通常反映上涨力道不足,预示股价可能反转向下. 一.上涨初期的价涨量缩 (一)形态分析 股价经过一轮下跌后止跌回升, ...
- 股票量价关系基础知识5
图解各阶段量价关系:价涨量增 价涨量增是指股价上涨的同时成交量也放大.它是最常见的多头进攻模式,说明价量配合良好,反映投资者买卖情绪高涨.成交量放大说明有资金流入,做多力量增强,后市看涨. 注意:1. ...
最新文章
- 为什么不推荐使用uuid或者雪花id作为主键?
- R语言gganimate包创建可视化gif动图、并使用anim_save函数保存可视化gif动图(gganimate export to gif)
- laravel的redis配置,一直报错Class 'Predis\Client' not found
- 双线性插值理论与代码实例
- Juniper Firewall多进单出配制实例
- PHPcms框架的Webshell
- 解决VMware Tools installation cannot be started manually while Easy Install is in progress.
- Windows访问Linux下的共享目录的配置方法(user安全级别)
- vue-cil解决开发环境的跨域问题
- C++程序设计课上机作业
- yii1 ajax,ajax - 在yii 1中使用ajax根据选定的单选按钮选项更新html字段值 - 堆栈内存溢出...
- 大数据风控系统主要功能分析
- itoa函数 -- 整数转为字符串
- 桂林山水甲天下,阳朔山水甲桂林
- Default encoder for format image2 (codec png) is probably disabled. Please choose an encoder manuall
- maven jar包瘦身
- android 定时响铃,Android 中利用广播接收器(BroadCastReceiver)来接收定时响铃的闹铃信息...
- 如何用NAS打造私有协同办公系统?
- 慕课网SSMOA办公系统
- android之文件上传
热门文章
- [Machine Learning] 线性回归
- c语言编译undeclared,c语言中undeclared identifier是什么意思?,undeclared identifier c语言错误 怎么改...
- 解决:Some selectors are not allowed in component wxss, including tag name selectors, ID selectors
- 让状态栏上有显示电池电量百分比
- 树莓派系统的安装(初级)及使用电脑端充当树莓派屏幕
- c++某种文件格式的读取与写入范例[stl]
- 显示杂谈(5)-DC调光与PWM调光
- Excel 2010 快速跳转至首行、末行 及 某数据上下段批量选取
- 小米的面试过程及面试题
- 网易云短信接口 ---- 短信验证码