本文主要复现国泰君安《基于短周期价量特征的多因子选股体系》这篇研报。大家会有这样两个疑问,什么是短周期价量特征因子,短周期因子能带来哪些优势?
首先,我先来介绍下什么是短周期价量特征因子:短周期量价因子,属于市场情绪类因子,从股票的日线数据出发,根据墨菲的《股票/期货市场技术分析》所描述的股价波动规律,进一步构造技术指标衍生因子。比如:动量、反转、开盘缺口、量价背离、成交量放大等。技术分析流派认为某些特定形态描述了投资者的行为,可以甄别未来走势。短周期意味着,这类因子利用过去较短的日线数据构建,所以对未来短期1~5日有预测作用。研报中指出很多国外量化机构通过大量构造因子,来实现策略盈利。故此研报在worldquant-Alpha101基础上,扩充了大量短期因子。
那么短周期因子都能带来哪些优势呢?首先,短周期因子可以弥补传统因子的短板,进一步解释特质收益,避免与其他财务、分析师因子的相关性。其次,短周期因子可以提高市场中策略的多样性,其适用于调仓频率高的交易者。最终,短周期因子对历史股价的特征挖掘,结合分析师对市场的理解,手工构造特征,更容易解释因子的物理含义。
本文主要参考了下列文章,实现短期因子,并复现因子测试:
国泰君安_20170615_国泰君安数量化专题之九十三_基于短周期价量特征的多因子选股体系.pdf
新华的文章如何使用quartz-signal模块快速测试Alpha101单因子
广发证券_20140902_多因子Alpha系列报告之(二十一):ALPHA因子何处寻觅,掘金海量技术指标.pdf
Technical.Analysis.of.the.Financial.Markets.1st.Edition.1999.Murphy.pdf
Technical Analysis for Algorithmic Pattern Recognition.pdf (Tsinaslanidis & Zapranis)
1为何使用短周期交易型因子
交易型因子来源于量价数据,我们认为其中包含了交易情绪,而这些交易情绪可能会带来超额收益。经过实验,这类交易型因子与风格因子相关性较低,可以带来增量信息。使用短周期交易型因子有以下好处:
超额收益来源:短周期交易型因子收益来源于交易行为,而不是股票的内在价值;
因子数据来源:短周期交易型因子数据来源于日频量价数据,而不是财报、研报数据;
因子有效周期:短周期交易型因子适用周期一般在1周以内,而不是传统因子的月、季度;
策略交易频率:短周期交易型因子适合以T+1~T+5日换仓,适合短期交易者;
受市场风格影响:短周期交易型因子与市场风格相关性较低。
2短周期价量因子实现
我们把191个信号计算的代码放在评论栏,大家可以复制到自己类库使用。
(https://uqer.datayes.com/labs/notebooks/gtja191.nb)
下面是一个优矿的Signal框架-单因子测试的用例,欢迎大家使用。但注意框架中面板数据的缺失值填充用的是fillna(method=‘ffill’),个人感觉还是各个股票取前N个交易数据的方式更合理。
(完整版请点击文末“阅读原文”获取)
3因子检验及相关特征
本节,按国泰研报方法,完成三项因子测试,后续因子都指对风格、行业中性化后的因子:
统计因子在不同预测周期下的收益率均值、收益率IR均值的方式,测试单因子有效周期;
通过IC统计测试因子预测能力;
测试因子个数与模型预测能力的关系 其中1&2涉及风格因子暴露/收益, 我们使用优矿风险模型。
3.1 因子体系的显著性检验及有效周期
这里通过回归单因子对下一期特质性收益的因子收益,判断是否有预测能力。实验结果显示,T+2期调仓,使得平均年化收益率最高;但我们也发现单因子收益会出现负值,而研报中全为正,故考虑设置观察期,回归收益,添加因子方向。
(完整版请点击文末“阅读原文”获取)
计算191个因子&中性化要跑2-3天。
预先读取依赖的优矿因子数据、量价数据、风险模型的特异性收益,缓存为pickle,支持断点续传,程序重跑时不用反复读取;
多线程计算191个原始信号,这块最耗时,预计2-3天,这里结果没有缓存为pickle;
针对原始信号进行中性化,支持断点续传,程序重跑时不用反复计算;
进行单因子测试,测试单因子收益、IR;
"FR Annualized Average Histogram"五张子图表示,T+1~T+5调仓的因子平均年化收益分布图,横坐标为收益值,纵坐标为个数;
"IR Annualized Average Histogram"五张子图表示,T+1~T+5调仓的因子平均年化收益IR分布图(反映收益稳定性),横坐标为收益的IR,纵坐标为个数。
(完整版请点击文末“阅读原文”获取)
通过上面实验,发现因子收益存在负值,因此我们考虑添加因子方向。
结论:发现因子收益分布与研报中更为一致,基本都大于0;但T+1调仓平均因子收益最高(研报中T+2调仓平均因子收益最高,稍有区别)。
(完整版请点击文末“阅读原文”获取)
3.2 因子合成后的预测能力
这里测试预测周期t=1的情况下,等权合成因子,利用过去250日的因子收益移动平均作为下一期预测值。通过判断因子收益预测值与真实值是否同号,判断胜率。
(完整版请点击文末“阅读原文”获取)
实验结果看,合成后的短周期因子收益有一定延续性及可预测性。
(完整版请点击文末“阅读原文”获取)
3.3 因子个数与模型预测能力的关系
按单因子IC排序由高到低,判断新加因子是否会导致解释能力变强。研报中结果是随着因子数目增加,模型预测能力依旧可以进一步提高。实验结果:
显示随着因子数目增加,模型预测能力未能体现出单调递增。这里与研报中不一致,可能是由于存在反向因子;
也可能是因子合成方式目前是等权,可以考虑IC,IC_IR等其他方式。
(完整版请点击文末“阅读原文”获取)
我们设置因子符号/考虑方向,重新跑这部分测试,如下:
结果看来,随着因子数量增加,我们对合成因子的下一期因子收益的预测能力,出现递减现象。可能是由于我们采用的是等权合成方式。
(完整版请点击文末“阅读原文”获取)
4考虑换手率的组合构建
这里借鉴磊少的《优矿组合优化介绍》(社区搜索标题即可阅读该篇内容),
结果看来,
我们添加手续费约束后,对行业风险的控制并不能达到行业无风险暴露。
回测结果,并未跑赢沪深300,可能是由于等权合成因子造成的。
研报中策略构建步骤,考虑手续费进行组合优化:
(完整版请点击文末“阅读原文”获取)
我们添加手续费约束后,对行业风险的控制并不能达到行业无风险暴露。
(完整版请点击文末“阅读原文”获取)
我们采用上述因子合成方式、考虑手续费的组合构建方法进行回测,回测结果并未跑赢沪深300,可能是由于等权合成因子造成的。
(完整版请点击文末“阅读原文”获取)
5总结与展望
考虑自动判断因子方向,对相关因子符号按IR取反;
发现有些因子与股价正相关,会选出茅台这类股票;
由于研报中因子,可能存在写法错误,我们对此进行了修改,会导致结论稍不一致;
继续挖掘日内信息。
--- the end ---
Read More:
优矿是由通联数据出品,覆盖研究、回测、模拟、实盘交易全流程的量化平台。优矿不仅拥有通联海量的金融数据、动态丰富的策略框架,同时还通过知识库信号库提供持续的知识输出,满足用户在研究过程中高效获取、迅速验证、多维度挖掘、多策略并行的迫切需求,为投资决策提供重要支持。
扫二维码,立即预约试用!
↓↓↓ 点击"阅读原文" 【查看源码】