请 [注册] 或 [登录]  | 返回主站

量化交易吧 /  量化平台 帖子:3364720 新帖:7

JQData | A股投资指南-单因子选股的有效性验证

K线达人发表于:5 月 10 日 05:54回复(1)

关于选股这个话题,相信每个投资者都有自己的一番心得。
技术派会提到均线、换手率等价格因子,而基本面派则更多会关注ROE、ROA等财务因子。
那么,在如此众多的因子中,什么因子真正有效呢?

本文试图构建一个通用的因子选股回测模型,来验证因子的有效性。

什么是有效因子

在构建因子选股回测模型之前,我们总结了一个有效因子的三个重要特征,它们是:

超额收益:一个有效因子,应当能筛选出好的股票组合,创造出跑赢大盘的超额收益。

持续性:一个有效因子,应当是在一个较长的时间段内持续有效,而不是仅仅在一个季度、一个年份有效。

稳定性:一个有效因子,不仅是对一个市场有效,而是在所有市场都有效,能够跨市场通用的因子才是好因子。

针对以上三个特征,我们将回测周期设定在从2012-01-01至2019-01-31的时间段内,选取沪深300和中小板指代表两种不同风格的市场,通过因子选股的回测收益,来验证因子的有效性。

回测对象

1.股票池:通过聚宽数据出品的本地量化数据接口JQData,我们找到了获取任意指数成分股的方法:详见get_index_stocks()函数,在传入000300.XSHG和399005.XSHE两个指数代码后,我们获取了每一个交易日沪深300和中小板指数的股票池。

2.因子:紧接着,我们使用get_factor_values方法从聚宽因子库的数百个因子中选取了两个较常用的因子:operating_profit_ttm营业利润TTM(过去12个月营业利润之和)以及net_profit_growth_rate净利润增长率((今年净利润(TTM)/去年净利润(TTM))-1)。

Img

因子分层回测模型

为了验证每一个因子的有效性,我们构建了一个通用的因子选股回测模型,整体思路如下:

①每个交易日取出股票池中股票的因子值,按从小到大进行排序,将排序后的股票池等分成N个股票组合。(本文采用5等分股票池)

②等额买入每个等份的股票组合,月底重复①②两步并重新调仓,最后计算平均收益。(本文默认按月调仓)

③在总的时间区间上,每个调仓周期结束后进行一个复利的计算,最后将每组股票的累计收益绘制出来进行对比。

模型构建完毕后,我们传入回测区间和股票池,通过各个股票组合之间的收益对比以及和沪深300基准收益进行对比,我们能够清楚的找到能够带来超额收益Alpha的有效因子。

- 01.按营业利润TTM在沪深300股票池下的投资结果 -

按照模型思路,我们对沪深300股票池中的300只股票按照营业利润TTM因子值由小到大排序,再将其按顺序分成5等份,买入持有,月末调仓,每个等份分别回测出2012-01-01至2019-01-31按月调仓的累计收益,并绘制成图。

Img

可以看到,第0组~第4组之间总体分层较为明显,说明营业利润TTM在沪深300股票池中的表现是非常优秀的。它能够将沪深300中好的股票和差的股票在长达7年多的回测区间中大体区分开来。

Img

进一步的,沪深300中营业利润最高的组合在2012-01-01~2019-01-31的时间段内,收益高达【88.74%】,而同期沪深300的收益仅有【36.49%】,说明营业利润TTM因子的选股能力很强。

- 02.按营业利润TTM在中小板指股票池下的投资结果 -

沪深300总体都是白马蓝筹股,那么营业利润是否有不错的稳定性呢?它在其他风格中的市场中表现如何呢?以下是营业利润TTM在中小板指股票池中的表现:

Img

可以看到,它的表现并不是那么乐观,五组分层结果也不是那么明显。说明营业利润TTM因子更加适用于白马蓝筹,而在小市值股票中的表现却很一般。

Img

观察具体收益值,预期表现应该最好的第4组甚至只优于第0组的表现,同时和基准收益【12.59%】也没能很好地区分开来。

- 03.按净利润增长率在沪深300股票池下的投资结果 -

同样的思路,我们按照净利润增长率因子值由小到大将沪深300股票池中的300只股票排序,再将其按顺序分成5等份,月末调仓,每个等份分别回测出2012-01-01~2019-01-31的按月调仓后的累计收益,并绘制成图。

Img

由图中可以看出,净利润增长率在沪深300股票池中的大体表现差强人意,分层表现不算特别明显。

Img

再看具体收益,只有第3组跑赢了基准,但没有大幅跑赢,而本应收益最高的第4组却跑输了基准,说明净利润增长率并不适用于沪深300这种基本面较好的股票池。那么,在我们的印象中,净利润增长率这种一直表现较好的因子它的发挥之处在哪呢?请看下面的测试部分。

- 04.按净利润增长率在中小板指股票池下的投资结果 -

由下面的分层回测图可以看出,用净利润增长率对中小板指进行筛选,表现非常亮眼。分层结果也相对清晰。

Img

可以看出,在2015年牛市期间,这种高成长的小市值股票更是带来了巨大的超额收益Alpha。

Img

从收益来看,净利润增长率将中小板股票池划分的较为明确,区分度也很高。尤其2015年的牛市期间,高成长的小市值股票明显带来了相当可观的收益。


小结

1.印象中好的因子,实际测试却未必有效,通过因子选股回测模型,我们能更加科学地验证因子的有效性。

2.需要注意的是,同样一个因子,在不同时间段、不同股票池却有着截然不同的表现。因子的有效性,是否存在这种天然的局限性,值得我们进一步深思。

感谢本文作者:CP;感谢夏鲁迅提出的宝贵建议。

- 福利时间 -

盼望着,盼望着,牛市来了,为了满足大家的因子选股需求,JQData现推出聚宽因子库免费试用和优惠活动,详情咨询JQData管理员,微信号:JQData01

- 关于JQData -

JQData本地量化数据接口由聚宽数据出品,提供一站式超好用本地量化金融数据。适用于从事量化投资的金融机构,学术团体和量化研究者,助您轻松完成本地化的量化研究与投资决策。点击 我也要用 立刻申请JQData一年使用权限。


- 延伸阅读 -

A股行业投资指南——好的投资,首先要选好行业

A股投资指南——基于估值波动周期的择时策略

JQData | 教程集合帖 - 由小伙伴们贡献,不断更新

全部回复

0/140

量化课程

    移动端课程