行业轮动的黄金律:日内动量与隔夜反转
一、引言
>>> 研究目的
本文参考方正证券《行业轮动的黄金律:日内动量与隔夜反转》,对研报里面的结果进行了分析,并对比了传统动量因子策略和将传统动量因子拆分后日内涨跌幅因子和隔夜涨跌幅因子的效果。
>>> 研究内容
不同的交易者群体,会有不同的行为模式。在交易日内的不同时段,交易者的成分可能存在系统性差异,因而会导向不同的市场行为特征,最终形成各式各样的日内模式(intraday patterns)。按照这个思路,为了研究动量效应的日内精细规律,本文将行业指数的每日收益率拆解为日内收益率(今收/今开-1) 和隔夜收益率(今开/昨收-1)。
1)将过去 15 个交易日的日内收益率加总,命名为日内涨跌幅因子 M0;将过去 15 个交易日的隔夜收益率加总,称为隔夜涨跌幅因子 M1。
2)将这两个效应结合在一起,构建新的行业轮动模型。在具体操作上,我们将 N 个行业指数按照 M0 因子值从低到高分别打 1 分至 N 分,按照 M1 因子值从高到低分别打 1 分至 N 分,将两项打分相加,得到每个行业的总得分,此因子命名为黄金律因子 M_gold。
3)行业轮动的回测框架如下:
测试时段: 2006 年 1 月-2017 年 11 月;
样本空间: 申万一级行业指数(共 28 个);
调仓方式: 在每个月初,将行业指数按总得分排序,划分为五组,分别持有至月末;得分最高的组合为多头组合,得分最低的组合为空头组合。
>>> 本文所用因子构建细节
根据研究内容,我们列出本文所用的四个因子构建细则:
传统动量因子:前十五天涨跌幅
日内涨跌幅因子M0:前十五日内收益率加总,其中日内收益率为今收/今开-1
隔夜涨跌幅因子M1:前十五日隔夜收益率加总,其中隔夜收益率为今开/昨收-1
黄金律因子M_gold:将日内涨跌幅因子和隔夜涨跌幅因子根据打分法等权加总构成黄金律因子,其中日内涨跌幅因子由于动量效应采取从低到高分别打1-N分,而隔夜涨跌幅因子由于反转效应由高到底分别打1-N分
>>> 研究结论
1)本文将传统的动量因子(即前十五日涨跌幅)进行分拆,对交易者的行为模式进行进一步细化,可以发现交易者存在不同的日内交易模式,这为构建新的因子提供思路。
2)可以发现行业指数存在“日内动量”与“隔夜反转”的黄金律:即日内涨跌幅因子 M0(前15天的日内收益率加总) 呈现显著的动量效应,因子越大的组合能够带来更大的收益,而隔夜涨跌幅因子 M1(前十五日隔夜收益率加总)则呈现反转效应,因子值越小的组合超额收益更加明显。
3)将两个因子按照打分法等权结合得到的黄金律因子构建行业轮动组合,可以发现顶部组合年化收益约有 7%的提升,同时最大回撤情况也有明显改善。对比传统的动量因子夏普比率 0.68,黄金律因子的夏普比率可达 0.87。
>>> 研究耗时
1)数据准备部分:大约需要 20min,数据采集部分需要注意,目前平台暂无提供直接的 API 获取行业数据,以下的内容都是调用了聚源数据库进行的操作,具体数据源可以参考这个链接https://www.joinquant.com/help/data/data?name=jy#nodeId=17
2)策略构建部分:大约需要 30min,主要对模型进行调整。
二、导入数据
目前平台暂无提供直接的 API 获取行业数据,以下的内容都是调用了聚源数据库进行的操作,具体数据源可以参考这个链接https://www.joinquant.com/help/data/data?name=jy#nodeId=17,我们利用 get_SW_index 这个函数提取每一个申万二级行业指数的数据,利用 index_list 确定提取指标,如收盘价“ClosePrice”等,其中 codelist 为申万二级指数的代码汇总,我们可以利用 get_SW_index 函数提取出交易数据。
设置开始回测的开始时间和结束时间,将 index_list 设置为收盘价与开盘价,利用 get_SW_index 分别提取出所有申万二级指数的收盘价和开盘价。
三、黄金律:日内动量+隔夜反转
不同的交易者群体,会有不同的行为模式。在交易日内的不同时段,交易者的成分可能存在系统性差异,因而会导向不同的市场行为特征,最终形成各式各样的日内模式(intraday patterns)。按照这个思路,为了研究动量效应的日内精细规律,报告将行业指数的每日收益率拆解为日内收益率(今收/今开-1) 和隔夜收益率(今开/昨收-1)。在本篇报告中,我们将过去 15 个交易日的日内收益率加总,命名为日内涨跌幅因子 M0;将过去 15 个交易日的隔夜收益率加总,称为隔夜涨跌幅因子 M1。
首先我们设置回测的一些参数,即开始回测时间和年份。
下面的 def_alpha 函数是我们根据之前说的因子计算逻辑计算出四个因子,即M-传统的动量因子,M0-日内涨跌幅因子,M1-隔夜涨跌幅因子,M_gold-M1 和 M2 的复合因子。
同时后续会利用 report 这个函数对比这四个因子的选股效果,report 函数计算得到了年化收益率,最大会回撤等指标,可以对策略收益进行量化衡量,我们同时给出如计算得到的传统动量因子,如下所示:
在这里,利用 resample 这个函数,写出 get_month 这个函数从而根据因子索引得到月末时间点和月初时间点,输出月末时间点如下所示。
同时在本文中我们利用打分法进行选股,get_alpharank 就是用于做因子排序,输入因子和日期,我们可以将那一天的排序值输出。
下面可以对调仓时候的净值进行计算,如 group1,a1 就是传统动量因子的分组一的结果。下图展示了传统动量因子(以 15 日涨跌幅替代) 在行业轮动上的应用效果,测试对象为申万二级行业指数。可以看出五分组净值曲线之间的区分度不太理想。
我们给出了多空净值(第 1 组-第 5 组)的走势,结论是上升趋势不够稳定且回撤较大。也就是说,直接基于指数前期 涨跌幅构建的动量轮动策略,效果是难以令人满意的。
为了考察因子对行业指数未来收益的预测能力,我们分别按照 M0、M1 由高到低将行业指数排序分成 5 组, 在每个自然月的月末进行调仓。下图给出了两种因子下各组合的年化收益率。我们的结论是:日内涨跌幅因子 M0 呈现显著的动量效应,而隔夜涨跌幅因子 M1 则呈现反转效应。
四、基于黄金律的行业轮动模型
按照前文所述,行业指数存在“日内动量”与“隔夜反转”的黄金律,下面我们尝试将这两个效应结合在一起,构建新的行业轮动模 型。在具体操作上,我们将 N 个行业指数按照 M0 因子值从低到高分别打 1 分至 N分,按照 M1 因子值从高到低分别打 1 分至 N 分,将两项打分相加,得到每个行业的总得分。
行业轮动的回测框架如下:
测试时段: 2006 年 1 月-2017 年 11 月;
样本空间: 申万一级行业指数(共 28 个);
调仓方式: 在每个月初,将行业指数按总得分排序,划分为五组, 分别持有至月末;
得分最高的组合为多头组合,得分最低的组合为空头组合。
下图为各分组的净值走势曲线。
五、结论
>>> 研究结论
本篇报告重点讨论动量因子的行业轮动应用。基于“日内不同时段交易者行为模式存在差异”的考虑,我们将传统动量因子进行拆分,首次提出了“日内动量+隔夜反转”的行业轮动黄金律。
通过对比传统动量因子和改进后的动量因子,我们发现明显的有一些策略业绩的提升:从顶部组合来看,传统动量因子的年化收益率只有 20.37%,但经过改进后的因子有 26.17%。同时从收益波动来看,经过改进后的因子的最大回撤也从 70%降低为 64%左右。即不管是盈利能力还是盈利稳定性,改进后的因子都超过了传统的动量因子。
>>> 未来展望
研究结果为我们提供了一定的思考方向,即对一些传统因子的改进,可以提升其效果。同时我们在这里将传统动量因子的参数默认为 15 天,这也是一个值得探讨的影响要求,参数可能会对因子效果产生一定的影响。同时本篇报告并没有将换手因素加入,即没有考虑交易费用所带来的影响。这都是之后值得研究的问题。
点击【阅读原文】,查看完整研究源码~
行业轮动的黄金律:日内动量与隔夜反转相关推荐
- 行业轮动(股票)——Python量化
行业轮动策略 目录 行业轮动策略 1. 原理 行业轮动现象 行业轮动的原因 行业轮动下资产配置 1. 美林时钟:大类资产配置 2. 策略设计 2. 策略思路 3. 策略代码 4. 回测结果分析与稳健性 ...
- 行业轮动从动量因子说起
量化的人研究行业轮动也很多年了,虽然积累了不少模型,但是样本外有效的极少.为什么会出现这个现象呢?因为行业的数量少,量化的优势在广度不在深度,比如股票市场的广度就很大,现在已经有4000多只个股,而最 ...
- xstream 数字映射不上去_基于股票因子映射的行业轮动方法
首发于 优矿金工 2020-06-22 A. 研究目的:本文基于优矿提供的因子数据构建个股因子并探索将个股因子映射到行业构建行业轮动模型的方法,文中部分方法参考光大证券<基于股票因子映射的行业轮 ...
- python选股源代码_【一点资讯】Python实现行业轮动量化选股【附完整源码】 www.yidianzixun.com...
1.背景 大量研究表明,A股行业有明显的轮动现象,并且与A股相反,行业指数通常呈现动量特征,即前期涨幅高的行业,会延续上涨的趋势,比前期涨幅低的行业有明显超额收益. 此外,也有大量研究表明,A股市场存 ...
- python量化选股策略 源码_【一点资讯】Python实现行业轮动量化选股【附完整源码】...
1.背景 大量研究表明,A股行业有明显的轮动现象,并且与A股相反,行业指数通常呈现动量特征,即前期涨幅高的行业,会延续上涨的趋势,比前期涨幅低的行业有明显超额收益. 此外,也有大量研究表明,A股市场存 ...
- Python实现行业轮动量化选股【附完整源码】
编者荐语: 所谓山不转水转,行业中的动量也存在一定的轮换效应.今天给大家分享一篇来自<量化小白上分记>的研报复现文章,基于因子动量.波动率.偏度.峰度来刻画行业轮动,对于构建行业轮动量化选 ...
- 行业轮动策略(思想+源码)
一.行业轮动策略简介 行业轮动是利用市场趋势获利的一种主动量化投资交易策略,其本质是利用不同投资品种强势时间的错位对行业品种进行切换以达到投资收益最大化的目的.通俗点讲就是根据不同行业的区间表现差异 ...
- 行业轮动策略(附策略源码)
行业轮动策略简介 什么是行业轮动策略? 行业轮动是利用市场趋势获利的一种主动交易策略,其本质是利用不同投资品种强势时间的错位对行业品种进行切换以达到投资收益最大化的目的.通俗点讲就是根据不同行业的 ...
- 量化交易——动量策略vs反转策略
一.动量策略和反转策略介绍 1.动量效应&反转效应 动量效应(Momentum effect):股票的收益率有延续原来的运动方向的趋势,即过去一段时间收益率较高的股票在未来获得的收益率仍会高于 ...
最新文章
- Megengine量化
- MySQL 配置文件优化
- 【快速安装Docker服务及Docker配置、Docker常用命令。】
- c语言声明第一个学生的成绩,C语言课程设计报告--学生成绩管理系统
- 双指放大_便携超小手机显微镜1000倍放大!让你玩转微观世界,惊艳朋友圈
- Apache 虚拟主机
- html css 走马灯,纯css 实现跑马灯效果
- Ubuntu 中如何使用 PPA 安装应用程序
- Python实现装饰模式的一段代码
- ffmpeg批量合并ts文件为一个视频
- 基于AT91SAM7se512的串口通讯的实现
- 10000marker_嘉美生物-精准的DNA分子量标准 Marker。
- AGPS定位基本原理浅析
- 一级计算机ppt切换效果怎么做,PPT翻页效果、倒计时怎么做?一分钟变电脑大神...
- win8 安装 iis 笔记
- 《三国群英传2网络版》英勇兵资料大汇总,看这一篇就够了
- [乐意黎翻译]JavaScript命令之Console大全
- 逻辑学辅修计算机,带你认清大学逻辑学专业的真面目
- 计算机专业最好考的职称一览表,中级职称计算机三个模块比较容易考?
- flv文件格式分析FlvParse.exe