小狐狸最近又发现一个好帖子,发在群里和大家分享分享,如果觉得有帮助的话,亲们可以点开链接一键克隆策略,自己跑个回测玩玩。
1. 概述
本文分析非流动性因子的选股效果:
将股票涨跌幅与成交金额联合考虑,研究了反映证券流动性的因子的选股能力按照非流动性;
因子选股的月度多空收益在 1.2%以上,得到了很显著的 alpha ;
纯多头组合在七年回测中年化收益达到 56.4%,夏普比率达到 1.84 ,信息比率高达 3.3 ,阿尔法年化达到 40.7%,贝塔仅为 0.916 ;
2. 非流动性因子构建
流动性是衡量证券变现能力的指标,流动性强,说明证券能够在折价较小的情况下,顺利卖出;相反,流动性弱,则表明交易证券需要在成交价格上做出较大让步;因此,流动性差也是风险之一。 按照风险与收益相匹配的特征,理论上市场会赋予流动性差的证券一定的收益补偿。
市场上,买卖价差、换手率、流通市值都是用来观测流动性的经典指标,但它们不完美,没法描述出流动性差导致买卖证券时候的价格让步。针对这一缺陷,此处尝试将成交量和价格的变动联系起来,反映流动性。这就是本文关心的非流动性因子 ILLIQ (illiquidity):
即对一段时间内(本文中的研究,设置 N 为 5 日),每日价格变化幅度绝对值和成交额的比值求平均, ILLIQ 反映了在单位成交额下,证券价格波动的大小。 ILLIQ 越小,表明在成交金额相同的情况下,证券价格受到的冲击较小,说明它的流动性好;相反, ILLIQ 越大,则说明流动性越差,所以 ILLIQ 表示证券的非流动性。按照上述的风险收益逻辑,我们下文将展示 ILLIQ 大的股票的表现。
PS :类似的通过流动性定义技术选股因子的例子,可以见追踪聪明钱 - A 股市场交易的微观结构初探
https://uqer.io/community/share/578f04e0228e5b3 …,不过该帖中是在分钟线级别计算,计算时,分子上为涨跌幅绝对值,分母上为成交量开根号。
下面给出本文中用来计算非流动性因子 ILLIQ 的程序代码
点击以下链接,移步社区查看源代码哟
https://uqer.io/community/share/57ba8b1e228e5b7 …
其中分别定义了计算本文关心的几个变量的函数,其中包括:
非流动性因子, getIlliquidityAll
历史收益率, getBackwardReturnsAll
未来收益率, getForwardReturnsAll
市值, getMarketValueAll
历史窗口日均换手率, getWindowMeanTurnoverRateAll
利用这五个函数分别计算我们需要的各种变量,保存为文件以备后用
3. 非流动性因子截面特征
3.1 首先加载计算好的数据文件:
下表中,展示了我们计算好的 illiq_data 数据文件的一部分,主要为了说明我们接下来使用的数据 dataframe 的结构:
每一行为日期,每个交易日均有计算数据,从 2009 年到 2016 年 8 月每一列为股票,股票池为全 A 股 3.2 ILLIQ 的预测能力初探接下来,我们计算了每一天的 ILLIQ 和之后 5 日收益的秩相关系数
下图可知, ILLIQ 和之后 5 日收益的秩相关系数在大部分时间为正, ILLIQ 对之后 5 日收益有预测性
4. ILLIQ 历史回测概述本节使用 2006 年以来的数据对于 ILLIQ 历史表现进行回测,进一步简单涉及 ILLIQ 选股的几个风险因子暴露情况。
点击以下链接,移步社区查看源代码哟
https://uqer.io/community/share/57ba8b1e228e5b7 …
4.1 ILLIQ 选股的分组超额收益
计算结果,给出了 2006 年开始,每天进行 ILLIQ 因子十分位选股后,每个分组内股票在未来五日内相对于市场平均收益的超额收益均值;
注意:十分位分组中, ILLIQ 因子由小到大排序,即第一组为 ILLIQ 因子最小的组;
下图展示, ILLIQ 因子十分位选股后,在未来一个月各个分组的超额收益(时间序列求平均),可以发现:因子多空收益明显,分组收益单调性很好;
下面的研究和回测中,我们将选择 ILLIQ 因子大的股票
4.2 ILLIQ 因子选股的市值分布特征
检查 ILLIQ 因子的小市值暴露情况
计算结果,给出了 2006 年开始,每天进行 ILLIQ 因子十分位选股后,每个分组内股票的市值百分位均值;
下图展示, ILLIQ 因子十分位选股后,各个分组的市值百分位历史均值: ILLIQ 因子选股多头组合有很大的小市值暴露,所以使用时候需要特别注意;
4.3 ILLIQ 因子选股的换手率分布特征
计算结果,给出了 2006 年开始,每天进行 ILLIQ 因子十分位选股后,每个分组内股票的前一个月日均换手率的均值;
下图展示, ILLIQ 因子十分位选股后,各个分组的 1 个月日均换手率均值: ILLIQ 因子对于低换手率有微弱风险暴露,换手率随组别上升而逐渐略微降低;
4.4 ILLIQ 因子选股的一个月反转分布特征
计算结果,给出了 2006 年开始,每天进行 ILLIQ 因子十分位选股后,每个分组内股票的前一个月超额涨幅(超出市场平均值)的均值;
下图展示, ILLIQ 因子十分位选股后,各个分组的前一个月超额涨幅均值: ILLIQ 因子对于一个月反转因子有一定风险暴露(多头组合即第十组中的股票前一个月平均跑输市场);
4.5 ILLIQ 因子选股的三个月反转分布特征
计算结果,给出了 2006 年开始,每天进行 ILLIQ 因子十分位选股后,每个分组内股票的前三个月超额涨幅(超出市场平均值)的均值;
下图展示, ILLIQ 因子十分位选股后,各个分组的前三个月超额涨幅均值: ILLIQ 因子对于三个月反转因子有一定风险暴露;
5. ILLIQ 因子历史回测净值表现
接下来,考察上述 ILLIQ 因子的选股能力的回测效果。历史回测的基本设置如下:
回测时段为 2009 年 1 月 1 日至 2016 年 8 月 1 日;
股票池为 A 股全部股票;
组合每 5 个交易日调仓,交易费率设为双边万分之二;
调仓时,涨停、停牌不买入,跌停、停牌不卖出;
每月底调仓时,选择股票池中 ILLIQ 因子最大的 10%的股票;
5.1 ILLIQ 因子最大 10%股票
点击以下链接,移步社区查看源代码哟
https://uqer.io/community/share/57ba8b1e228e5b7 …上图中,展示了我们之前在全 A 股股票池中进行的“ ILLIQ 最大的 10%股票周度调仓”回测的结果,其中的红色曲线显示出对冲中证 500 指数后的净值走势。
利用 ILLIQ 因子对全部 A 股选股,因子最大 10%股票组合在 2009 至今的年化收益率达 56.4%,大幅战胜中证 500 指数。夏普比率达到 1.84 ,信息比率高达 3.3 ,阿尔法年化达到 40.7%,贝塔仅为 0.916 。另外,该组合对冲中证 500 指数后,年化收益达到 33.1%。
5.5 ILLIQ 因子选股 —— 不同五分位数组合回测走势比较
点击以下链接,移步社区查看源代码哟
https://uqer.io/community/share/57ba8b1e228e5b7 …上面的图片显示“ ILLIQ-不同五分位数分组选股”的净值走势,其中下面一张图片展示出各组头寸对冲完中证 500 指数后的净值走势,可以看到:
不同的五分位数组对应的净值走势顺序区分度很高!
下面的表格展示出不同分位数组合的各项风险指标,每次调仓均买入 ILLIQ 最大的 20%股票的策略,即最大分位数的组合(组合 5)各项指标表现都非常出色:
组合 5 不对冲年化收益 53%,夏普比率 1.72 ,信息比率 3.50 ,相应贝塔仅为 0.93 组合 5 对冲中证 500 指数后年化收益 30.4%
总结:根据之前的回测,我们能够体会到 ILLIQ 非流动性因子展示出来的出色的选股能力,但我们也注意到,该因子具有比较大的小市值风险暴露,所以在使用时应该适当注意;后面得空,我把小市值因子的影响剔除一下,再测试一下 ILLIQ 的选股能力。
感兴趣的矿友可以在社区克隆后运行,看看收益如何。