指数估值计算说明
理杏仁指数以及行业估值计算说明文档
作者:Bing 最后编辑于:2020-03-22
- 当前市面上主要的指数估值公司中,CSIndex(中证官网)和wind计算值为何有差异,我们该如何取舍。
- 指数以及行业的估值种类和计算方法。
- 指数以及行业计算过程中的特殊情况处理方式。
中证官网的计算和wind产生差别的主要原因
中证官网和wind都只提供了加权平均值(这里的加权平均值称之为市值加权值,理杏仁在2019-12-08日这天将加权平均值改成了市值加权值,因为还有权重值加权,市值加权值这个概念更加准确。为避免产生歧义,我们下面将使用市值加权值这个概念。),这里我们以PE-TTM(滚动市盈率)市值加权值为例来说明一下两者的差别所在。
首先PE-TTM的市值加权值 = ∑市值 / ∑净利润,这个定义没问题,相信大家都看的明白。但每一家上市公司的市值和利润如何定义,csIndex和wind就产生了差别。中证认为指数的计算采取的是市值分级靠档(这个详细的计算方法,可以参考官方的文档说明——沪深300指数编制方法)的计算方式,所以如果一家公司既有A股又有H股,那么该家公司的总市值应该是A股总市值,对应的净利润也就是:公司净利润 * A股总市值 / (A股当前收盘价 * 总股本)。其实不复杂,也就是对公司的市值和净利润按照其A股市值进行了加权,那么其公式就变成了:∑A股市值 / ∑A股净利润。wind的处理方式站长没有看到说明,但依照站长的计算推算,wind依旧是:∑市值 / ∑净利润。
到了这里,我相信大家再来看官方的PE-TTM计算说明文档,应该也就比较好理解了。
其次,如果一家公司的市盈率是负数怎么办?仔细读了上面官方文档的人,应该马上就能看到,中证官网直截了当的告诉你——计算过程中剔除。好了,问题来了,如果整个行业亏损怎么办?中证官网还是非常直接了当的告诉你,不予计算,显示值为NaN(大家以后无论是csIndex还是cnIndex看到这个值,就不要再惊讶了)。wind的处理方式站长没有看到说明,依照站长的的计算推算,wind是考虑了亏损股票的。
最后,比如现在2017-04-16,一个指数里有些公司发布了年报,有些公司一季报也发布了,而有些公司连年报都没有发布。那么样本的利润应该怎么算?
- 中证官网简单明了——等所有公司年报和一季报发布完后的5月1号开始统一采用一季报;而在此之前统一采用2016年的三季报。
- 国证官网和中证官网给出的计算方法一致。
- wind的处理方式站长没有看到说明,依照站长的的计算推算,wind采取的是及时策略,也就是只要公司的财报有更新,就采取最新的数据,所以wind的数据在年报预告这段时间里,其PE-TTM值与理杏仁有一定的区别。
当然这里又有人问,如果公司只出了预报还没有出财报怎么办?确实应该按预告计算,预报的数据只有营收和净利润,可以提前计算PE-TTM和PS-TTM,但是无法提前计算PB,不过问题是预报的数据往往和最终财报数据也有出入,如果提前采取预报数据,后面又面临修正计算的问题。但是预告数据我们现在还未采集,遇到预告区间段的数据又很头疼,所以暂不做考虑。
中证官网和wind的数据应该如何取舍
站长用N个日日夜夜都对他们的算法进行了验证,也和大量网友进行了讨论,最后还是决定按总市值做加权,不剔除亏损公司,采用及时策略做计算。理由如下:
- 按照A股市值加权值,这个不公允。因为它违背了同股同权的基本道理。我想我可能得再强调一遍同股同权是估值核心(以张裕B为例),我不会因为张裕有B股(2017-04-16收盘价A股36.30元、B股20.97港币;股本A股4.53亿股,B股2.32亿股),而判断张裕A的时候认为市值只有207.3个亿(4.53 * 36.30 + 2.32 * 20.97 * 0.88 (港币对人民币汇率)),而不是248.8个亿((4.53 + 2.32) * 36.30);我也不会因为张裕B有A股,而认为张裕B的市值是有207亿,而不是126.4亿((4.53 + 2.32) * 20.97 * 0.88)市值。分开考虑股权的模式会在计算PE的时候,会让A股的投资者舒服一点,因为市值变小了,但在大股东眼里,不因为贵会更有价值,也不会因为便宜而没有价值,在大股东眼里只有股权比例,所以2015年的中信大股东卖A买H,这才是核心。
- 剔除亏损股,有失公允。比如一个行业,我们以煤炭行业2015年5月为例,煤炭行业90%的股票亏损,只有中国神华盈利不错,而极少部分还在赚钱,其余全部亏损,如果剔除亏损股,那么结果是什么?PE和中国神华差不多。这个不合理是其一;其二,我们买的是指数,指数已经包含所有这些企业,指数并不剔除亏损股,已经反应市值,为什么计算PE要剔除亏损股?
- 净利润和净资产不采取及时策略,有失公允。财报和年报是从1月份到4月底陆续发布的,比如沪深300里面中国平安的财报出来,其估值对应的价格马上会反应到指数中,而财报数据需要等到5月1号后再做更新,这样估值数据其实是有延后。根据站长的测试,当指数按照及时策略——即财报发后马上更新指数估值数据,PE-TTM加权值的曲线要明显更加平滑。
PS: 如果有人用iFund或者使用iChoice看到了部分数据,然后发现不一样,就不要问站长了,他们的数据站长不知道怎么算的,也没兴趣知道。至于有些程序员业余做的计算或者大V的贴出来的数据如果出现不一致,站长的建议是忽略他们算的数据,因为理杏仁的计算经过长年累月的发展,计算已经考虑到了几乎所有普通用户难以考虑到的各种情况(下面会有详细介绍),并趋向于成熟,站长和wind仔细比对过市值加权值,很多都趋于一致,有差别的,也几乎都在3%以内。
指数以及行业的估值种类和计算方法
指数以及行业常见的估值种类包括三种:PE-TTM、PB、PS-TTM、股息率;每种估值包含5个数据:市值加权值、等权值、正数等权值、平均值、中位数。当然理杏仁上也提供了指数以及行业的股息率、ROE、营收增长率、净利润增长率、净资产增长率等等一系列财务数据来作为辅助参考信息。以下∑表示所有公司的累加。
- PE-TTM 滚动市盈率。很简单,∑市值 / ∑滚动净利润,没必要多做解释了。更多关于PE-TTM的详细信息,请参考为何选择PE-TTM?
- PB 市净率。这个概念大家都比较好理解,指数以及行业的计算公司为,∑市值 / ∑归属于母公司的净资产。因为净资产是个动态的概念,每季度逐次变化,并不像净利润每年初始归零,因而并不存在滚动的概念。当然计算PB是个非常复杂的过程,具体请参考如何精确计算PB
- PS-TTM 滚动市销率。很简单,∑市值 / ∑滚动营业收入。
- 股息率。∑市值 / ∑股息派发。股息派发的计算对于一年分红两次、三次以及还有特别股息的情况比较复杂,理杏仁采取了比较智能的算法,是其尽可能接近预期,这里就不展开说明了。
下面我们再看看5个估值:市值加权值、等权值、正数等权值、平均值、中位数,以PE-TTM为例(其中N为样本总数):
- 市值加权值 计算公式: ∑市值 / ∑净利润。该指标意味着您按公司市值将投资资金拆分成N份投出去,最终得到的一篮子股票的PE-TTM值。
- 等权值 计算公式: N / ∑(1 / (市值 / 净利润))。该指标意味着您将投资资金拆分成N等份,然后投资于N家公司,最终得到的一篮子股票的PE-TTM值。
- 正数等权值 计算公式: M / ∑(1 / (市值 / 净利润))。该指标意味着您将投资资金拆分成M等份,然后投资于M家公司,最终得到的一篮子股票的PE-TTM值。其中M = N - 亏损公司的数量。对于不同的指标有着不同的剔除规则:
- 当计算PE-TTM的时候,意味着剔除所有不赚钱的企业。
- 当计算PB的时候,意味着剔除所有净资产为负数的企业(多见于ST或者快退市的企业,港股和美股有部分长期大比率分红而导致净资产为负数的企业)。
- 当计算PS-TTM的时候,意味着剔除所有营业额为0的企业(可见于极少部分即将退市的企业,以及少部分港股的投资公司)。
- 当计算股息率的时候,意味着剔除所有不分红的企业。
- 算术平均值 计算公式: ∑(市值 / 净利润) / N。该指标仅仅具有统计学上的意义,用以反应绝大部分正常公司的估值状态。
- 中位数 计算公式:所有公司PE-TTM按由小到大排序,如果总数为奇数,取中间的那个数;如果总数为偶数,取中间两个数,加和除以2。 该指标仅仅只有统计学上意义,用以反应整个市场的估值状态。
最后老有人问这么多数据,我应该看哪个?站长答曰:仔细阅读了以上数据的计算方式和意思,我相信用户自然可以做判断。
另外有个问题,不少人也在问,什么分位点?分位点在估值里面是个非常常见的概念,反应的是当前估值在历史中的估值中的高低,越低代表越有价值,可以看这篇文章——分位点详细解释。
等权值为何不应该剔除负数?
四种算法中等权PE-TTM的公式有一定的争议,理杏仁也曾两次调整算法。这里站长用尽量通俗易懂的话来讲解这个这个公式的意义所在。
以PE-TTM为例,有三家公司,PE分别为PE1、PE2、PE3,对应的市值分别是M1、M2、M3,净利润分别是NP1、NP2、NP3。我们投入3万元给三家公司,每家公司各投1万元,那么我这分组和的PE应该是多少?每家公司投入1万元,对应的每家公司产出的净利润是NP1 / M1、NP2 / M2、NP3 / M3,那么这份组合的PE-TTM就是:3 / (NP1 / M1 + NP2 / M2 + NP3 / M3) = 3 / (1 / PE1 + 1 / PE2 + 1 / PE3)。这便是这个等权值的意义。我们既然是买指数,尤其是等权的指数,比如养老产业,里面有亏损的公司我们一样是买了的,所以负数不应该剔除。
对于养老产业和医药100,因为样本经过挑选,数据基本上没有极端值,所以没有影响;但是回到沪深A股,这类反应整体市场的估值数据,就出了问题。比如我们见过一家公司的PE-TTM为-0.1,退市前因为市值跌到1亿不到。那么我们再看等权值的算法3 / (1 / PE1 + 1 / PE2 + 1 / PE3),分母就会出现一个超级大的负数,进而造成估值出现不可避免的极端值,而造成失真。
综合类指数等权值失真后理杏仁的解决办法
我们在2020-03-12做了相关讨论,有兴趣的朋友可以看看指数【等权平均值】改进建议。结果很简单,新增一个指标【正数等权值】; 于PE-TTM,就是剔除亏损公司(对于PB,PS-TTM以及股息率的剔除请见上节)。理由如下:
- 简单,可量化。
- 能够反应整体赚钱公司的估值、整体资产为正数的估值、有营业收入的公司的估值、以及分红的公司估值。
算术平均值中的极值处理
按照我们的上面的定义,算术平均值反应的是指数中绝大部分正常公司的估值情况,所以极值是要被剔除的。那么如何剔除呢?
- PE-TTM为负数,代表一家公司亏损,其实是一个远远大于正数的公司,剔除。
- 如果出现一些超大的PE怎么办(比如有的公司PE-TTM达到一两千)?站长通过大量实践,最后选取了四分法作为剔除算法,简单有效。大家可以看这篇文章详细了解四分法的计算方式——如何用四分法剔除极值。对于指数的计算,PE-TTM的剔除率大约在3%到8%,PB和PS-TTM大约在0%到6%之间,剔除后的曲线锯齿结构也比较少。
- 被剔除后的样本计算公式(∑(市值 / 净利润) / N)中的N需要做相应减少,以反应样本被剔除的情况。
指数以及行业计算过程中的特殊情况处理方式
指数以及行业计算过程中有太多的情况需要处理,这里站长将这列罗列出来供大家参考。还是以指数的PE-TTM计算为例,一般有如下一些情况需要考虑:
- 样本公司停牌怎么处理?用停牌前的市值除以停牌前的净利润,但如若停牌时间超过1年,则不参与计算。选择1年的时间主要基于以下几点考虑:
- 指数一般6个月更新一次样本,央视50是1年更新一次,只有非常少量的行业指数,比如证保以及银行,可能会有一段时间没有新公司纳入,更新频率会超过1年。而一般情况下这种长期停牌的公司会在指数更新样本的时候被剔除。
- 对于因为突如其来的重大事件,比如财务造假一类,指数往往临时剔除,换上备用公司。
- 长达一年停牌时间的,往往意味着对公司的重大事件的影响,并且公司至少有一次年报,加上市场本身的波动,停牌前的估值不足以反应当前的估值,所以继续沿用其停牌前估值数据意义不大,计算时按剔除处理。
- 这里就又会出现一个特殊情况,如果在停牌的这段时间公司出了新的财报,还为什么用停牌前的净利润?站长对此特殊情况思虑良久,还是决定采用停牌前的净利润以及净资产作为估值依据。主要有以下几个原因:
- 指数的点位计算用的是公司停牌前的价格及市值,所以为准确反应估值本身,采用停牌前的估值。
- 新的财报净利润会在公司复牌后被市场迅速消化,其变化会影响指数点位,也涉及到套利操作,不适合提前反应停牌期间的估值。
- 采用停牌前的估值数据,理杏仁的从算法上考量也要简单的多。
- 公司并购后财报同时对上期财报进行处理,以反应真实情况,需要处理吗? 答曰:不处理。并表修正是事后事件,并不对过期数据造成影响,只是证监会要求,更好的反应并购后收入、净利润、资产等的真实情况。
- 如果公司有业绩修正怎么处理? 答曰:暂时不处理。正确的处理方式应该是:修正报告发出来以前用修正报告前的数据,修正报告发出来使用修正报告后的数据,即应该采取历史视角的算法。
总结
指数以及行业的计算过程整体简单,但计算过程需要的数据繁多,细节无数,计算量大,也容易出错。理杏仁的在计算方面也持续做了大量改进,尽量将数据做到最为精准,并将其数据图形化展示给大家;另外提供了对比各类估值和指数走势查看拟合度,还有大量的财报数据、样本信息等帮忙提供决策依据。