【量化学堂】量化方法在价值投资中的应用--F-SCORE方法在A股中的实证

2018 年 4 月 12 日 优矿量化实验室 充满智慧的👉


本篇文章主要参考Piotroski在2002年发表的学术论文《Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers》中提出的F-SCORE方法对企业的财务面进行分析进而构建了F-SCORE因子。然后,对F-SCORE因子进行了详细的分析。我们通过计算和分析剖析了 F-SCORE 因子的截面特征、因子预测能力以及因子选股能力。最后我们对F-SCORE因子进行了多头回测,并最终得到了回测结果。


因在因子分析过程中,涉及到大量代码,为了更好的阅读体验,我们在第四部分的因子分析部分将代码省略掉了,仅列出了一些结果。有兴趣的读者可以点击文末“阅读原文”,进行克隆测试。



1前言:价值投资是一种信仰


“我的声誉——无论是一直以来的,还是最近被赋予的,似乎全都与“价值”这个概念有关。但是,我事实上真正感兴趣的仅仅是其中用直观而且确凿的方式呈现的那一部分,从盈利能力开始,到资产负债为止。至于每个季度的销售额增长率变动,或者所谓的‘主营业务收入’包含还是不包含某些具体副业,类似模棱两可的事情,我从来不放在心上。最重要的是,我面向过去,背对未来,从来不做预测。” 格雷厄姆说完这句话后,价值投资像一艘巨帆,带领着无数价值投资者走向辉煌。价值投资在过去一百年间俨然已成为一种信仰。


价值投资甚至可以用一句话概括–买入被低估的股票。然而在纷杂的信息中,判断公司是否被低估的第一部就是判断公司的价值。而格雷厄姆上面那句话清晰地表明了立场,公司的价值是现在的价值,而不是未来的价值。所以我理解的价值投资是寻找基于已知信息情况下,市场定价偏低的股票。


价值投资获得已知信息的来源是通过公司财务报表分析,纵观格雷厄姆整本《证券分析》,基本上是对财务报表的分析。个人一直倾向于价值投资,在进入量化领域初期就有着用量化方法实现价值投资的初心。所以,本人就一直在思考如何用量化的方法在财报中提取出有用的信息以反映公司的价值。


基于价值投资的理念,在去年11月份我曾经分享过一篇《ROE选股策略的思考与验证》。那篇分享的主要策略是用量化的方法寻找历史上稳定高ROE,估值较低的股票。今天的分享是基于Piotroski 提出的FSCORE体系在A股中的表现。主要参考Piotroski在2002年发表的学术论文《Value Investing: The Use of Historical Financial Statement Information to Separate Winners from Losers》。



2F-SCORE 方法简介


Poitroski 的 F-SCORE 方法通过以下9个标准来考察公司的财务状况:

  1. 正的现金净流量(Positive net income)

  2. 正的经营性现金流(Positive operating cash flows)

  3. 正的资产增长率(Higher return on assets than the previous year)

  4. 营运现金流大于净利润(Operating cash flows greater than net income)

  5. 负的杠杆率同比增长率(Lower debt than the previous year)

  6. 流动比率同比增长率为正(Higher current ratio than previous year)

  7. 相比前一年度更低的股票稀释(Less stock dilution than the previous year)

  8. 正的毛利率同比增长率(Higer gross margin than the previous year)

  9. 正的资产周转率同比增长率(Higher asset turnover than the previous year)

F-SCORE 是对公司以上9条进行判断,每满足一条得一分,通过对比不同公司的得分可以得到投资价值比较高的公司。


对F-SCORE方法进行分析,可以看到第一、二、四条在评价公司的现金流,这是一个风险控制条件,因为现金流是一个公司健康运营的保障,公司的破产很大部分是由于现金不足引起的。


第三条是用来判断公司是在扩张还是在收缩,一般认为,由于规模效应等因素,公司规模越大,公司状况越好,未来的回报也会越大。


第五条是在说公司的杠杆应该逐年降低,这里的假设是赚的钱优先偿还贷款,如果亏损,为了维持公司运营那么杠杆就会越来越大。


第六条流动比率是流动资产对流动负债的比率,用来衡量企业流动资产在短期债务到期以前,可以变为现金用于偿还负债的能力。一般说来,比率越高,说明企业资产的变现能力越强,短期偿债能力亦越强;反之则弱。这里要求流动比率每年都要增加,即公司的偿债能力越来越强。


这里不考虑第七条,第八条中毛利率反映的是一个商品经过生产转换内部系统以后增值的那一部分。也就是说,增值的越多毛利自然就越多。比如产品通过研发的差异性设计,对比竞争对手增加了一些功能,而边际价格的增加又为正值,这时毛利也就增加了。因此第八条反映的是公司的竞争能力持续增强。


第九条中资产周转率是考察企业资产运营效率的一项很重要指标,体现企业经营期间全部资产从投入到产出的流转速度,反映企业全部资产的管理质量和利用效率。这里考察的是公司资产利用效率是不是逐年提高。



3根据F-SCORE方法构建F-SCORE因子


根据以上的分析,需要在考虑将以上各个条件情况下构建可以进行对比的因子。注意到需要构建的因子是考虑将各个子因子等权相加,所以所有的子因子都要同向。

  • 现金流:对现金流量考虑用每股经营活动产生的现金流的同比增长率和经营活动产生的现金流量净额与营业收入之比。
    经营活动产生的现金净流量与营业收入之比能反映公司销售收入中多少是以现金的形式实现的,侧面反映了公司产品的销售状况,这一项也同时能保证公司现金流为正。每股经营活动产生的现金净流量同比增长率这一指标反应了公司现金流的增长情况。

  • 公司发展:这一项采用净资产收益率和净资产收益率的同比增长率。
    净资产收益率便于在公司中寻找质地较好的公司,因为净资产增长率反映的是每单位资产能够产生多少利润。而净资产收益率增长率则对应上面的第三条。

  • 公司的流动性:这一项采用流动比率同比增长率,对应F-SCORE的第六条。

  • 公司竞争力:这一指标采用销售毛利率的同比增长率,对应第八条。

  • 资产周转率同比增长率:这一指标采用固定资产周转率同比增长率,对应于第九条。

  • 杠杆率:由于需要所有的指标为正项指标,这里用股东权益比率增长率来反映企业的杠杆率的变化。企业杠杆率越低,那么股东权益比率就越高,因此增长率为正的情况下,企业的杠杆率在降低。而固定资产同比增长率剔除了流动资产的影响,更清晰地反映企业资产的利用效率。


总结下来,这里取的八个基本因子是:

  1. ROE(净资产收益率)

  2. dROE(净资产收益率同比增长率)

  3. CRS(经营活动产生的现金流量净额与营业收入之比)

  4. dCFO(每股经营活动现金流同比增长率)

  5. dLEVER(权益比率同比增长率)

  6. dLIQUID(流动比率同比增长率)

  7. dMARGIN(销售毛利率同比增长率)

  8. dTURN(固定资产周转率同比增长率)



4计算F-SCORE因子


下面主要是计算因子,步骤是先计算八个因子,并对每个因子进行去极值,中性化和标准化处理,然后等权加和得到FSCORE因子。

(完整版请点击文末“阅读原文”获取)


下面写了一些在计算各个因子时需要用到的小工具。

(完整版请点击文末“阅读原文”获取)


下面一组代码计算了八个因子,并进行等权组合得到Fscore因子。

(完整版请点击文末“阅读原文”获取)


下面计算从2008年1月1日到2017年12月31日的FSCORE因子,并保存在本地。

(完整版请点击文末“阅读原文”获取)



5对F-SCORE因子进行分析


在这部分,我们主要从因子的截面特征、因子的预测能力、因子的选股能力三个方面来对F-SCORE因子进行分析。


1 、F-SCORE 因子的截面特征

在考察F-SCORE 因子的截面特征时,我们的做法是先计算每只股票在每个月月末的F-SCORE 因子值,然后按照因子值的大小将股票从小到大分为10组,考察每组因子均值大小。下图画出了第一组、第五组和第十组的因子分布情况。

(完整版请点击文末“阅读原文”获取)


我们看到,由于年报按季度更新,以及公司的基本面情况短期变化较小,根据年报中公司基本面计算的F-SCORE因子在各分位上变动幅度较为平缓。



2、F-SCORE 因子对股票的预测能力分析

考察因子对股票的预测能力,我们的做法是计算因子值与未来一月收益率的秩相关系数即计算 Rank IC,但是考虑到基本面因子比较偏向价值投资,一般是长期持有效果才能逐渐显现,因此我们这里计算因子值与未来60个交易日(大约三个月)的秩相关系数。


计算结果如下:

Rank IC的均值为:  0.01,Rank IC的标准差为: 0.03,Rank IC的中位数为:  0.013。


我们计算了 118期的横截面秩相关系数,其中有87期为正值。但相关系数比较小,且显著性不太明显,但我们认为因子仍然有正向的预测能力。

(完整版请点击文末“阅读原文”获取)



3、F-SCORE因子的选股分析

3.1 F-SCORE因子的选股的超额收益特征

我们首先考察了不同F-SCORE因子值的股票的超额收益特征。具体做法是在每期将股票按照F-SCORE因子值的大小分成10组,计算每组股票的未来60个交易日的平均超额收益,然后求每组所有期数的超额收益率的平均值。其中超额收益是相对于股票池中所有股票在未来60个交易日收益率的平均值。计算结果如图所示:

(完整版请点击文末“阅读原文”获取)


我们可以看到,因子在选股时六分位的超额收益最大,也并不是因子值越大,超额收益就越高。这表明因子的选股能力有待提高。


3.2 F-SCORE 因子选股的市值分布特征

这部分主要考察的是不同分位上股票的市值特征。我们的具体做法是先计算每只个股在每个月末的 F-SCORE 因子值,然后按照 F-SCORE 的因子值的大小,将股票分为10组,再分别计算每组中个股在全部股票池中的市值排名除以股票池的股票数目得到市值百分位,最后对每组中的个股的上述市值百分位求平均,以此来反映F-SCORE因子在市值上的暴露情况,结果如下:

(完整版请点击文末“阅读原文”获取)


我们看到,因子倾向于中市值暴露,因子值最小的股票市值也比较小,而因子值在二分位到五分位的股票则倾向于大市值,中市值公司的F-SCORE因子值较大。


3.3 F-SCORE因子选股的换手率分布特征

这部分我们同上部分的做法一样,分别计算了每只股票在月末的 F-SCORE 的因子值,按照因子值大小对股票排序,分为10档。然后计算每档股票的换手率的平均值,以此来反映不同的F-SCORE因子值的股票的换手率特征。结果如下图所示:

(完整版请点击文末“阅读原文”获取)


我们看到,F-SCORE因子值较大的分组,股票的平均换手率较低,而F-SCORE因子值较小的个股,股票的平均换手率较高。


3.4 F-SCORE因子的20交易日反转特征

我们依然按照之前的做法,将股票按照 F-SCORE 因子值的大小分为10组,计算每只股票在过去20个交易日的超额收益情况,然后按照分组求每个组的平均超额收益率。超额收益也是相对于股票池的平均收益而言的。结果如下图所示:

(完整版请点击文末“阅读原文”获取)


上述分析表明,F-SCORE因子值较大的股票在过去20个交易日超额平均收益较高,F-SCORE因子值较小的个股在过去一个月的超额收益率较低,而且分组效果非常明显。同时,我们也计算按F-SCORE因子值分组的股票在过去60个交易日的收益情况:

(完整版请点击文末“阅读原文”获取)


我们看到根据因子值选取的个股在过去60交易日的超额收益与因子值负相关,即选出过去60交易日收益较差的个股。



6F-SCORE因子的历史回测


下面来考察F-SCORE因子选股能力在历史回测中的表现:

  • 回测时间段为2012年1月1日到2017年4月30日

  • 股票池为全部A股

  • 组合每月调仓,交易费率设为双边万分之二

  • 调仓时选择股票池中F-SCORE因子最大的20%的股票


(完整版请点击文末“阅读原文”获取)


近5年回测结果表明:

  • 因子的年化收益率较高,达到26.1%,长期来看,因子选股的收益率可观,这也符合价值类因子的特征。

  • 因子的最大回撤很高,收益波动率也较大,因此该因子具有较高的风险。

  • 在回测过程中对股票采用的是等权买入方式,可以通过对选择的股票进行组合优化,来对组合的进行风险控制。


(完整版请点击文末“阅读原文”获取)


  • 上面第一张图片是按照 F-SCORE 因子在不同分位数处选股,一到五分位中,五分净值走势最好。

  • 第二张图片是对ZZ500指数做对冲的净值走势曲线。

  • 两张图均表明因子的辨识度不大,这和之前分析结果相同。


(完整版请点击文末“阅读原文”获取)


分析上表可以发现:

  • 对冲后五分位的年华收益为 11%,收益波动率为 4.8% ,可以有效控制风险。而且1.7的夏普比率远高于对冲前的0.7。

  • 五分位即每次调仓均买入F-SCORE因子较大的值的各项指标表现均较出色。



7总结与改进


1、总结

本文中,我们做了以下几件事情:

  • 简要介绍了 F-SCORE 方法,以及基于 F-SCORE 体系制定了因子的构建方案

  • 根据因子的构建方案,通过挖掘财报数据,计算并得到了 F-SCORE 因子

  • 对因子进行详细的分析和回测 因子分析和回测结果表明:

  • 该因子选股能力比较出色,近五年的年化收益率达到 26%

  • 因子的回撤较大,最大回撤是 49%,并且波动率也很大为 28.6%,因子的其他指标也比较出色。

  • 分组回测结果表明,因子虽然对股票有一定的区分度,但区分能力有限。

  • 对冲后,风险可以得到有效的控制。


2、改进思考

  • 该因子是根据 Poitroski 的 F-SCORE 方法改进得到的,由于国外判断公司的观念可能与国内不同,所以可以通过寻找财报中表现较好的价值类因子来改进此因子。

  • 从因子的分组情况可以看到,因子在一分位和五分位的表现差别明显外,其他差别并不明显。可能是在构建因子时,用到了因子的具体值,而因子具体值并没有那么重要。例如在用到ROE增长率的时候,我们可以用以下逻辑在给出这个因子的暴露。如果ROE同比增长率大于零,则给1,否则给0。对每个因子都用这种方式评分,可能会改进因子对股票的区分度不显著的问题。


---  the end ---


Read More:


优矿是由通联数据出品,覆盖研究、回测、模拟、实盘交易全流程的量化平台。优矿不仅拥有通联海量的金融数据、动态丰富的策略框架,同时还通过知识库信号库提供持续的知识输出,满足用户在研究过程中高效获取、迅速验证、多维度挖掘、多策略并行的迫切需求,为投资决策提供重要支持。

扫二维码,立即预约试用!


↓↓↓ 点击"阅读原文" 【查看源码】  

登录查看更多
2

相关内容

【干货书】数值计算C编程,319页pdf,Numerical C
专知会员服务
67+阅读 · 2020年4月7日
【综述】金融领域中的深度学习,附52页论文下载
专知会员服务
163+阅读 · 2020年2月27日
金融时序预测中的深度学习方法:2005到2019
专知会员服务
166+阅读 · 2019年12月4日
【综述】关键词生成,附10页pdf论文下载
专知会员服务
52+阅读 · 2019年11月20日
ExBert — 可视化分析Transformer学到的表示
专知会员服务
31+阅读 · 2019年10月16日
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
你用 Python 做过什么有趣的数据挖掘项目?
计算机与网络安全
4+阅读 · 2018年2月11日
IDG资本杨飞:从价值投资谈2017中国现象
IDG资本
4+阅读 · 2017年12月22日
人工智能时代的量化投资策略
七月在线实验室
8+阅读 · 2017年12月19日
刘志明 | 知识图谱及金融相关
开放知识图谱
13+阅读 · 2017年12月18日
投资,重要的是未来
雪球
5+阅读 · 2017年12月17日
量化投资与建模基于贝叶斯系列
量化投资与机器学习
15+阅读 · 2017年7月12日
Arxiv
6+阅读 · 2019年8月22日
Arxiv
3+阅读 · 2018年3月5日
VIP会员
相关VIP内容
相关资讯
【年度系列】使用LSTM预测股票市场基于Tensorflow
量化投资与机器学习
19+阅读 · 2018年10月16日
你用 Python 做过什么有趣的数据挖掘项目?
计算机与网络安全
4+阅读 · 2018年2月11日
IDG资本杨飞:从价值投资谈2017中国现象
IDG资本
4+阅读 · 2017年12月22日
人工智能时代的量化投资策略
七月在线实验室
8+阅读 · 2017年12月19日
刘志明 | 知识图谱及金融相关
开放知识图谱
13+阅读 · 2017年12月18日
投资,重要的是未来
雪球
5+阅读 · 2017年12月17日
量化投资与建模基于贝叶斯系列
量化投资与机器学习
15+阅读 · 2017年7月12日
Top
微信扫码咨询专知VIP会员