8.2 多因子量化选股策略
多因子选股策略, 需要学习Pyhon 或者MATLAB 等各种语言,对于没有编程基础的朋友来说,从头开始学习编程,从入门到上手,可能也要半年时间。我们也有笨方法解决, 但是需要大量的手动计算。比如可以在问财直接搜索,符合条件的股票跳出来后,再手动回测。我在初期就是用这种笨方法,一只股票一只股票,一种想法一种想法地回测出来的。
8.2.1 症结在于回测
其实在格雷厄姆的《聪明的投资者》一书中,给出的所有组合条件,都属于多因子量化选股策略。例如激进型投资者寻找条件适合的股票,第一步当期市盈率小于9 ,第二步市净率小于等于1.3 ,同时流动比率大于等于1.5 。最后找出当期净利润高于5 年前的净利润,并且5 年内没有亏损记录的股票。第一步和第二步,可以通过问财直接搜索,最后一步问财的搜索功能不是那么方便,所以只能手动操作。
选股其实非常简单, 只要给出条件, 大部分工作都可以通过工具解决。问题的难点在于我们可能不太相信格雷厄姆给出的条件,或者我们相信恪雷厄姆,但是这些条件被拿到中国市场的时候是不适用的。所以我们总想着要做一下回测,如果效果好,我们才敢用。所以问题的症结在于回测,而不是即时选股。
想要回测,就必须学习编程, 而编程内容并不是本书的主要内容,并且一本书既写理念,又写方法,再写编程,体量也不够。回测的方法, 只能由你自己想办法。如果你有志于此, 现在学习编程也不晚。种树最好的时间有两个,一个是十年前,一个是现在。
8.2.2 格雷厄姆的防御型多因子策略
价值投资是一项非常严谨的工作,并不是撞大运。按一般的理解,这种工作基本是定性分析,就像中医,个体差异大,有时要同病异泊,有时要异病同泊,抓证不抓症。
实际情况是,价值投资更多的时候都采用定量分析的方法。各项财务数据是否达标是一个硬性指标。既然是定量分析,那有哪些数据指标需要考量呢?
对于防御型投资者, 格雷厄姆给了7 条方法论。
1. 适当的企业规模。防御型投资者不冒更多的风险,不付出更多的精力,诉求也不高。所以企业规模越大,安全系数越高。虽然现在很多小企业都在逆袭,挑战传统大企业,甚至对大企业造成了相当程度的困扰,但取而代之并且成为普遍现象,是目前无法想象的。这一条的目的就是过滤掉那些不太能经受住风险的小企业。至于什么样的规模才算得上是适当的规模,按下FI0 键后,有行业分析。那里面有各种企业在该行业中的排行。至少挑选其前三名或前五名吧。
2. 强劲的财务状况。本条还是基于风险量化考虑的,要求流动资产应该至少是流动负债的2 倍; 要求长期债务不应该超过流动资产净额。我们把它写成公式。
要求1: 流动比率>2 。
流动资产/ 流动负债>2。
要求2: 流动资产净额>长期债务。
流动资产- 流动负债>长期负债。
流动资产>流动负债+ 长期负债。
流动资产>负债总额。
3. 利润的稳定性。过去10 年中, 每年都有一定的利润。本条过滤了那些受经济背景影响大的企业, 不论经济背景如何, 都能够盈利, 这样的企业盈利能力让人放心。
4. 股息记录。至少有连续20 年支付股息的记录,这条在中国没有参考性。基本可以忽略。
5. 利润增长。过去10 年内, 每股利润的增长至少达到三分之一。10 年间,用最初的3 年和最后的3 年进行比较。如果后3 年比前3 年高出33% , 就算满足条件。
6. 适度的市盈率。不能高于7 到10 年平均市盈率的20 倍, 不能高于当期市盈率的25 倍。在这里格雷厄姆又给出一个新的条件, 不过我们可以把它们看成是互为补充的。
要求当期股价不能高于过去3 年平均市盈率的15 倍。
这里要给那些不会算账的朋友们讲一下,如果过去3 年每股收益分别为1 元、1.5 元、2 元, 当前股价为10 元.3 年平均市盈率是多少?先演示一下错误的算法。第1 年市盈率: 10/1 = 10。第2 年市盈率: 10/ 1.5=6.67 。第3 年市盈率: 10/2=5 。3 年平均市盈率: (10+6.67+5) /3=7.22。
正确的计算方法: 3 年平均市盈率: 10/〔( 1+1.5+2 ) /3〕=5.99 。
7. 适度的股价资产比。股价资产比之前也说过如何计算,股价资产比=当期股价/ (总资产-无形资产) 。
要求股价资产比不能超过1.5 倍,这有些苛刻了。为了弥补这个条件, 格雷厄姆给了另一个条件。市盈率与价格账面值之比的乘积不应该超过22.5 倍。
写成公式: 市盈率×价格账面值之比≤22.5
(价格/每股收益) x (价格×总股本/账面价值)≤22.5。
纵观这些条件,它力求找到大型的、知名的企业。它力求找到财务稳健、不会因为债务而破产的企业。官力求找到不会受到经济周期影响而出现赤字的企业。它力求找到盈利能力在10 年间至少增长三分之一的企业,它力求找到满足以上条件,但价格低廉的股票。
这是什么意思? 避险。李笑来先生在他的专栏中,一语道破价值投资的天机,投资的刚需是避险。在非常安全的位置投资, 等待价格回归带来的收益。在操作层面上怎么办? 3000 多只股票,我怎么能一只股票一只股票地计算呢?其实要不了那么大的工作量。你可以在同花顺软件中,找到"问财选股" 。也可以直接搜索"问财选股",加入选股条件,可以进行初步筛选。
几个条件可以一次性输入,为了表示工作量会逐步减少,我们进行分段输入的演示。
加入条件1 : 2016 年5 月18 日流动资产〉负债总额。筛选后的结果是1 999只股票符合条件。为什么是5 月18 日?因为这是我女儿的生日, 我每年都会在这一天给她选股票。你可以自己定义时间。不过我认为把时间放在每年的4 月到5 月之间较好,因为那时候年报刚刚出来。
加入条件2 : 流动比率大于2 。符合条件的股票为1129 只。
加入条件3: 连续10 年盈利。符合条件的股票为351 只。
经过三次筛选,工作量减少了将近90% 。剩余的工作,只能手动了。
不过不要忘了,格雷厄姆对于防御型投资方法还给过一个限制条件,资产负债率不得高于50% 。如果把这一条也加上的话,再筛选一轮,只剩下316 只股票符合条件了。
关于股价资产比, 每次都要计算总资产与无形资产的差,是相当麻烦的,有些时候我们可以忽略无形资产,直接按股价×股本/ 总资产也是可以的。那股价×股本/ 总资产是什么?其实它就是市净率。你可以在F10 中直接找到市净率的数据。这样计算起来更方便了。
这一条的公式可以改为:市盈率×市净率≤22.5 。在符合条件的案例中随便找几只股票来测试一下。
案例1: 高乐股份。10 年内前3 年平均净利润为3264.31 万元。后3 年平均净利润为5560.58 万元。算术增长率70% 。为什么不用每股收益来计算,而用净利润来计算?因为在这10 年间夹杂着两次转送,如果用每股收益计算的话,还得再把它按转送比例逆行计算,这就太麻烦了。
既然有这个教据是变化的,那么变化的堂的居后面有没有不变的如居呢?净利润不会变,所以用净利润更加方便。增长率没问题。市盈率:却16 年5 月28 日的除权价为6.5元。如果按这个计算, 3 年平均市率为6.5/ [ (0.12+0.1+0.14) /3 ] =54.17 倍。
问题是这个市盈率到底对不对。2016 年5 月18 日使用的年报数据是2015年的,但在2016 年股份结构发生了变化, 10 送1 转9 派0.5 。要知道这是2016 年的行为,而我们用以考查的数据是基于2015 年的,所以必须把2016年5 月18 日的除权价进行复权。6.5 x 2+0.5=13 .5 。那么真实的市盈率是13.5/[ ( 0.12+0.1+0.14 ) /3] =112.5 倍。
这就太高了。如此一来,市净率必须低于0.2 ,才能考虑购买,可这基本上是不可能的。当期市净率为5.25 倍,以我们的量化标准来看,暂时不符合条件。
案例2: 双莺药业。10 年间, 前3 年平均净利润为13350.35 万元, 后3 年平均净利润为61584.32 万元。算术增长率为36 1.29% ,2015 年5 月28 日除权价为28.66 元2016 年10 派2 元,未转送配。复权后为28.46 元。3 年平均市盈率为28.46/ [ ( 0.84+ 1.52+ 1.26) /3 ] =23.52 倍。
当期市净率为1.67 。两者相乘23 .52 x 1.67=39.28 ,以我们的量化标准来看,暂时不符合条件。
案例3 : 海螺型材。10 年间前3 年平均净利润为10707.5万元,后3 年平均净利润为11422.6 万元。算术增长率为6.68% ,以我们的量化标准来看,暂时不符合条件。
别看到3000 多只股票,想选出5 到10 只符合条件的股票还是非常困难的。这也正说明了价值投资的稳健性。如果要随便选一只股票,可能在某一阶段也能获得不小的利润。
例如第一个案例高乐股份,若2016 年5 月l8 日购买,到今天已经上涨了18% 。同期上证综指也只不过上涨了11% 而已。但海螺型材却亏了1.3% 。双莺药业亏了7.26%。随机正收益概率只有三分之一, 当然只有做一个引玉的砖,样本太小, 并不足以完全说明问题。
价值投资可能没有那些纯粹赌运气冒风险的方法赚得多,但绝对更安全。格雷厄姆说大致可分为两种方法, 一种是预测法,一种是保护法。预测法要努力去准确预测出未来几年企业会有多大的成就。而保护法关注的重点在于,确保自己获得的现值足够大于市场的价格,这一差额可以吸纳未来不利因素所造成的影响。所以保守法通常不看未来,因为未来是未知的. 不要去预测。
8.2.3 一些多因子选股策略
除了格雷厄姆给出的防御型投资方法和激进型投资方法外,还有很多种多因子选股策略, 甚至某个脑洞大开的想法,也可以拿出来试试。不过本节,我们只做一些策略展示。
策略1: 格雷厄姆认为, 当每股流动净资产高于股票价格时,即可买入。什么是流动净资产?流动资产与流动负债的差,再除以总股本。如果这个比值高于股票价格, 买入是非常安全的。因为企业除了流动净资产外,还有非流动净资产。在企业破产清算时,流动净资产可以打八折处理,而非流动净资产只有二折, 也就相当于流动净资产等于企业的最后清算资产。每股清算资产高于股票价格,还不安全吗?这里用到的因子为流动资产、流动负债、股票即时价格。
策略2: 盈利增长驱动股市收益。投资者投资都是为了获得利润,所以盈利增长是驱动股市收益最根本的诱因。小市值企业盈利增长很快,因为它们都有普遍的共性,高杠杆。所以按照企业的市值将所有上市企业分为若干份,回测不同市值情况下的每股收益对于股价的驱动力。理想状态下,市值越小,每股收益越大,股票上升空间越大。本策略用到的因子为股价、股本、每股收益。
策略3: 销售增长驱动股市收益。盈利的增长来向销售增长,高质量的销售增长会促进净资产收益率大幅上涨, 促使股价上涨。回测方法与策略2 相同。本策略用到的因子为股价、股本、营业收入。
策略4: 向由现金流驱动股市收益。盈利是为了赚钱,只有账面盈利,却没有现金入账,不是真正的盈利,所以当期能拿到多少自由现金流, 是更深一层的考量。回测方法与策略2 相同。本策略用到的因子为股价、股本、经营活动产生的资金流量净额、投资活动产生的资金流量净额。
策略5: 投入资本回报率。标普500 证券研究部和许多其他金融企业所提到的上佳的盈利性指标都是投入资本回报率。回测方法与策略2 相同,本策略用到的因子为投入资本回报率。计算方法如下。
投入资本回报率= (营业收入一管理费用- 折旧摊销- 特殊项目一现金营业税) / (股本+ 长期负债+ 优先股+ 少数股东权益) 。
看起来计算很麻烦, 不过好消息是,在问财中直接搜索投入资本回报率,有直接计算好的结果,或者可以直接搜索ROIC。
策略6: 投入资本回报率和市销率。可以回测两个组合因子,在第一轮筛选中找到最高一组投入资本回报率的股票,在这些股票中再搜索市销率最低的股票。市销率=股价×股本/营业收入。
策略7: 净资产收益率。杜邦分析中计算的核心就是净资产收益率。按市值分出若干份后, 找到净资产收益率最高的一组股票, 本策略用到的因子为净资产、总资产、股价、股本。
策略8: 净资产收益率和市净率。净资产收益率最高的股票,市净率最低,说明企业营运良好,但是股价低估。两层筛选,先找到净资产收益率最高的一组股票, 再从中筛选出市净率最低的再分组股票。本策略用到因子为净资产收益率、股价、股本、每股净资产。
..... .....
策略非常多,只要你能想到的任何算法, 都可以进行回测。策略并不是问题,关键是它的内在逻辑可以支撑得起整个策略。比如我有一个脑洞大开的算沽,看哪家企业最省钱,所以用管理费用除以营业收入, 得出的一组股票投资组合,竟然真可以跑赢大盘。但这太儿戏了, 虽然回测效果不错,我是不敢用它,因为它没考虑盈利能力、偿债能力和营运能力,整个想法算法缺乏逻辑支撑。
8.2.4 怎样才算一个有效的策略
肯先,最高分位非常明显好于所有样本股。例如我们选择沪深300 只股票做为样本,如果是单因子选股,在回测结果中,降序排列下,将300 只股票分为五组。第一组最高分位股票的收益,必须明显地高于整体300 只股票的平均收益。单因子最好超过全样本2% 的收益,而双因子或多因子则需要超过整体样本的4% 以上。
其次,最低分位非常明显地差于所有样本股。最后一组的60 只股票要低于整体样本组合。单因子, 要低于整体组合的2% ,而双因子或多因子要低于整体4%以上。
再次,第一组要优于第二组,第二组要优于第三组,呈线性分布,不能出现第三组或第四组最好的情况。
最后,收益随时间变化的稳定性。表现最好的第一组,应该在持有股票限制时间内都优于其他组。至少第一组表现最优的时间要超过60%。