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

JQData | A股投资指南-单因子选股的有效性验证
关于选股这个话题,相信每个投资者都有自己的一番心得。
技术派会提到均线、换手率等价格因子,而基本面派则更多会关注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因子更加适用于白马蓝筹,而在小市值股票中的表现却很一般。

你可能感兴趣的:(JQData | A股投资指南-单因子选股的有效性验证)