深度剖析股价复权

发布于: 修改于: 雪球转发:4回复:21喜欢:29

关于股价复权,我们都知道是当股价进行分红、送股等情况后,进行股价调整,使股价可以更直观地反映涨跌情况。

但还有一些有趣的意外之事。

比如,你知道几年前的前复权股价是如何推算出来的吗?

你知道不同的股票软件,前复权的股价是不同的,甚至可能会有极大差异吗?

你知道想计算企业带给股东的历史收益率时,仅仅用复权股价就可以得到准确结果吗?而且前复权和后复权计算的结果是完全相同的?

接下来,我们就一起剖析一下股价的复权。

1 基础知识

首先,说一些除权、复权的基础知识。由于本文主要进行深度研究,所以基础知识讲解较少,不尽之处请自行搜索相关知识进行学习。

1.1 相关名词含义

除权,是指股票在分红(包括分配现金红利、股票红利)后,从股价中扣除掉分红的部分,体现在股价上就是股价下跌了。因为分红减少了每股净资产,所以股价下跌更准确的体现了内在价值的变动。

除权日,是指股价因分红除权下跌的那天。

复权,是对除权导致股价下跌的一种反向操作。因为在股价表和 K 线图上,并不能直接知道分红除权的细节。因此很容易将除权导致的股价下跌理解为市场对企业的看衰。所以,可以通过复权调整股价,以去除分红对股价的影响。

前复权,是指调整股价时,保持后面一天的股价不变,调整前面一天的股价。

后复权与前复权相反,是保持前面一天的股价不变,调整后面一天的股价。

不复权,是没有复权的原始股价,即现实中那一天的真实股价。

1.2 复权公式

1.2.1 前复权

当只有现金分红的时候,复权后股价 = 复权前股价 - 现金分红金额。

如某股票复权前股价为 10 元,每股分红 0.5 元,那么复权后股价 = 10 - 0.5 = 9.5 元。

当只有股份变动(如转增股、送红股)的时候,复权后股价 = 复权前股价 ÷(1 + 股份变动比例)。

如某股票复权前股价为 10 元,每 10 股转增 3 股,那么复权后股价 = 10 ÷(1 + 3/10)= 7.69 元。

当现金分红和股份变动同时进行,复权后股价 = (复权前股价 - 现金分红金额)÷(1 + 股份变动比例)。

如某股票复权前股价为 10 元,每股分红 0.5 元,每 10 股转增 3 股,那么复权后股价 =(10 - 0.5)÷(1 + 3/10)= 7.31 元。

1.2.2 后复权

后复权与前复权的调整方向相反,调整方法也是相反的。复权后股价 = 复权前股价 ×(1 + 股份变动比例)+ 现金分红金额。

2 前复权的具体流程

首先,因为我们习惯于看到准确的最新股价,不希望调整它。因此,向前调整股价的前复权方法更常用。

我们就以前复权为例,研究一下软件如何得出企业历史上的前复权股价。

我选用了雪球、腾讯自选股、Wind金融终端、新浪财经、富途牛牛、涨乐财富通 6 款股票软件进行前复权股价分析。

你可能会奇怪,怎么选这么多股票软件。原因正如本文开始所提,这些股票软件的前复权股价不是完全相同的!

由于贵州茅台的上市时间长,股价涨幅大,分红比例高,所以复权的数值变化比较明显。我就用贵州茅台作为研究的对象。

2.1 对最近一次分红除权的前复权调整

完成这篇文章的今天是 2022 年 3 月 23 日。

2021 年 6 月 25 日是距今最近的分红除权日。在这一天,每持有 10 股茅台可以获得现金分红 192.93 元。即每股分红 19.293 元。

由于从 2021 年   6 月 25 日至今没有发生过分红除权,因此这段时间内的前复权股价和不复权股价是一样的。其中 2021 年 6 月 25 日的是 2092.00 元。

从 2021 年 6 月 24 日之前的股价,需要进行前复权调整。

首先计算 2021 年 6 月 24 日的前复权股价。

根据前复权公式,6 月 24 日的前复权股价 = 6 月 25 日的前复权股价 2068.05 - 每股分红 19.293 = 2048.757 元。股价保留两位小数,所以是 2048.76 元。

2.2 继续向前调整没有分红除权的股价

然后,从 6 月 23 日开始继续向前推算之前的前复权股价。

我们先看一下,不复权时这几天的股价及涨跌情况。

由于分红除权日是 6 月 25 日,而在此之前的几天没有除权的情况,所以只需按照不复权时的每日股价变动,继续向前调整前复权股价,使复权后保持相同的股价变动

这里就出现了分歧。

股价变动分为涨跌值涨跌幅两种计量方法。

在不复权时,两者是对应的。比如 6 月 24 日的不复权股价是 2068.05 元。与 6 月 23 日的不复权股价 2038.00 元相比,其涨跌值为 2068.05 - 2038.00 = +30.05 元,涨跌幅为 2068.05 ÷ 2038.00 - 100% = +1.47%。也就是说涨跌值+30.05 元与涨跌幅+1.47%是有对应关系的。

但是当 6 月 24 日的股价经过前复权调整后,涨跌值与涨跌幅就不符合原来的对应关系了。

我们以 6 月 24 日的前复权股价 2048.76 元来向前推算 6 月 23 日的前复权股价。

如果保持涨跌值与不复权时一致,则 6 月 23 日的前复权股价为 2048.76 - 30.05 = 2018.71 元。此时的涨跌幅为 2048.76 ÷ 2018.71 - 100% = +1.49%,大于不复权时的 +1.47%。

而如果保持涨跌幅与不复权时一致,则 6 月 23 日的前复权股价为 2048.76 ÷(1 + 1.47%)= 2018.99 元。此时的涨跌额为 2048.76 - 2018.99 = 29.77 元,小于不复权时的 30.05 元。

可见,两种不同的前复权方法,会得到不同的前复权结果。保持涨跌值不变的方法,会使复权股价产生相对较大的变化;保持涨跌幅不变的方法,股价产生相对较小的变化。

对于两种前复权方法,不同的股票软件做出了不同的选择。我们来看看各款股票软件推算出来的前复权股价:

前面我们计算了,保持涨跌值不变的话,6 月 23 日的前复权股价为 2018.71 元;保持涨跌幅不变的话,股价为 2018.99 元。

因此,可以得知,腾讯自选股、富途牛牛、涨乐财富通 3 款股票软件使用的是涨跌值不变的方法;而Wind金融终端、新浪财经、雪球 3 款股票软件使用的是涨跌幅不变的方法。

3 款使用涨跌值方法的软件,前复权数值完全相同。3 款使用涨跌幅方法的软件,前复权数值有细微差异。

我认为细微差异是计算精度不同导致的。当使用涨跌幅向前推算股价时,运用的是除法运算,而除法的结果会出现除不尽的小数。但软件存储下来的股价数据,小数的位数是有限的,数据保留的位数不同,就造成了计算精度的不同。这也就造成了结果的细微差异。

而使用涨跌值向前推算股价时,是运用减法运算的,不存在除不尽的小数。因此使用涨跌值计算的结果是完全相同的。

另外,雪球推算的 6 月 24 的前复权股价,莫名其妙的得出 2048.79 元,而不是 2048.76 元,这导致了其全部的前复权股价都略有偏高。我也没弄清楚雪球的逻辑,估计可能是个小失误吧。

从这几天的前复权股价来看,虽然两种复权方法推算出来的股价不同,但差距不大。那么是否两种方法都可以使用呢?

我们再继续向前做股价前复权,看一看情况如何。

2.3 继续前复权中遇到的下一次分红除权

在继续向前推算前复权股价的过程中,我们会有一个新问题,即遇到了另一次分红及股价除权。这一天的股价怎么处理呢?

在 2020 年 6 月 24 日,茅台每 10 股分红现金 170.25 元。

这两天的相关股价数据如下:

首先,我们先不看 6 月 24 日的前复权股价。而是考虑一下,仅以这两天的不复权股价来看,如果将它们进行了前复权调整,调整之后它们之间的股价变动是怎样的呢?

6 月 24 日是分红除权日,所以复权后股价保持不变,仍为 1460.01 元。

由于 6 月 24 日每股分红现金 17.025 元,因此 6 月 23 日的前复权股价为 1474.50 - 17.025 = 1457.475 元。

那么进行前复权调整后,6 月 24 日相对 23 日的股价涨跌值为 1460.01 - 1457.475 = +2.535 元,股价涨跌幅为 1460.01 ÷ 1457.475 - 100% = +0.17%。

这两个前复权股价我们不再使用了。但这个涨跌值和涨跌幅我们接下来会用到,它们就是在进行前复权推算的时候,用来参照的股价变动。

因此,对 6 月 23 日的股价调整,就同其它没有分红除权的日期一样操作,通过保持涨跌值或涨跌幅不变,继续向前推算。

比如腾讯自选股的 6 月 23 日的前复权股价 = 1440.72 - 2.535 = 1438.18 元;Wind 金融终端的 6 月 23 日的前复权股价 = 1446.39 ÷(1 + 0.17%)= 1443.88 元。

这样,每一天无论是否进行分红除权,我们都能够进行合适的前复权调整。这就可以一直向前做前复权推算,直至企业上市之时了。

3 两种前复权方法的对比

那我们看一下,茅台在各款股票软件中,10~20 年前的前复权股价:

可以看到,使用涨跌值方法的 3 款股票软件腾讯自选股、富途牛牛、涨乐财富通的前复权数值比较接近。使用涨跌幅方法的 3 款软件 Wind 金融终端、新浪财经、雪球的数值也比较接近。

但是两种方法之间的差距就非常大了。

正如前面说过的,前复权会使股价的数值变小,那么未复权时的涨跌值和涨跌幅就不再呈对应关系了。

如果使用保持涨跌值不变的方法进行前复权调整,调整的幅度相对较大;如果使用保持涨跌幅不变的方法进行调整,调整幅度相对较小。

那么哪种方法更合理?

由于我们查看复权股价的目的,是计算投资收益率。即如果在某个时间点投资一笔钱,之后会收到多少倍的回报。因此,我们应该看看哪种方法的结果更接近真实回报率。

3.1 手动计算准确的投资收益

我们先使用老唐教的方法,手动列表格计算投资收益。

其中每一年在收到现金分红后,直接以当时价格(除权日的收盘价)买入股票。红利税、交易税全部忽略不计。

由于使用涨跌值方法的较早年份的股价是负值(如 2005 年末腾讯自选股里的前复权股价为-81.84 元),无法做收益率对比。因此我选取了茅台 2010 年末—2021 年末的时间段进行计算。

2010 年末,投入 100000 元买入 543.71 股茅台

2011 年 7 月 1 日,茅台派发红利,每 10 股派发 23 元现金,送 1 股。因此收到 1250.54 元现金和 54.371 股股票,再将 1250.54 元现金以当日收盘价 191.63 元买入 6.53 股股票,收盘后合计拥有 604.61 股股票,价值 115861.79 元。

以此类推,直到 2021 年末,共拥有 874.80 股股票,每股股价 2050.00 元,共价值 1793334.05 元。

因此可以得知,2021 年末的持股价值是 2010 年末的 1793334.05 ÷ 100000 = 17.93 倍。

3.2 使用前复权股价计算投资收益

我们再看一下各股票软件在这个时间段内的前复权股价及股价涨幅。

可以看到,使用涨跌值方法的 3 款软件的股价涨幅是 45.11 倍,明显高于手动计算的 17.93 倍;使用涨跌幅方法的 3 款软件的股价涨幅是 17.93 倍,和我们手动计算的数据完全一致!

这说明,使用涨跌幅方法推算出来的前复权股价,可以直接用来计算准确的投资收益!

这在原理上也是说得通的。我们分析企业,关注的是企业每年同比提高多少百分比,而不是增加多少钱。所以调节过去股价也是用代表幅度的涨跌幅方法才合理。

要注意的是,我们在进行前复权时没有考虑税收的影响,所以实际收益率会略低于该股价涨幅的数据。

但还有另一个因素。使用前复权数据计算的投资收益率,代表了分红再买入的情况。但如果投资者有能力更好地利用现金分红,比如买入更有价值的证券,则可以略微提高投资收益。

因此,这些因素对投资收益率的影响不大,且会进行一定程度的互相抵消。所以仍然可以充分相信这样计算的投资收益率是准确的。

4 后复权与不复权

4.1 后复权

当我们使用同样的步骤去推算后复权股价的话,我们会有惊奇的发现。

由于涨跌幅推算方法在整个过程中,都是以涨跌幅进行成比例的推算,所以使用后复权股价计算的投资收益,和前复权是一样的。

但使用涨跌值进行推算的方法,后复权和前复权的结果是不同的。前面说过,在前复权时,使用涨跌值法的调整幅度会相对较大。而在后复权时则刚好相反,股价的调整幅度会相对更小。

看一下茅台在 2010 年末—2021 年末的前复权、后复权股价及涨幅的对比:

可以看到,使用涨跌幅方法的 Wind 金融终端的前、后复权涨幅都是 17.93 倍;使用涨跌值方法的腾讯自选股的前复权涨幅是偏高的 45.11 倍,后复权涨幅是偏低的 15.02 倍。

所以,如果选择了一个使用涨跌幅进行复权的股票软件,那么使用前复权或后复权计算收益率,都是一样的。

甚至,由于后复权是向后调整股价的,还可以更直观地看出曾经的 1 元钱,现在变成多少钱了。

4.2 不复权

在计算收益率的时候,不复权股价也有独特的意义,但使用比较麻烦。

我们知道,利用复权股价计算收益率,代表了分红再买入的情况。

而在只有现金分红的情况下,利用不复权股价计算收益率,就代表了将分红收益扣除掉,只计算持股部分的收益率。

另外,如果将每年的持股部分收益率与分红收益率相加,就得出了当年的总体投资收益率。

如果除了现金分红,还有股份变动,那么需要按照股份变动的情况,将不复权股价进行调整,才能如上面所述的方法继续使用。

5 结论

将重点做一个总结。

1.除了最近一次分红除权的前复权调整,是根据前复权公式直接计算的。再之前的前复权调整,都是通过保持涨跌幅(或涨跌值)与复权前一致,一天天向前推算的。其中,如果遇到分红除权情况,需要利用前复权公式单独计算涨跌幅(或涨跌值)。

2.不同股票软件的复权股价不同,是因为一些软件使用涨跌幅方法推算复权股价,另一些软件使用涨跌值方法推算复权股价。

3.我们可以使用涨跌幅方法推算出来的前复权股价,直接计算出准确的投资收益。

4. 使用涨跌幅方法的后复权股价,和前复权股价一样好用。

PS:想知道一款股票软件使用的是涨跌幅方法还是涨跌值方法,只需要看一下早期的茅台前复权股价,正数的是涨跌幅,负数的是涨跌值。记住我们要选股价是正数的软件。

6 我的思考历程

虽然关于股价复权的结论,看起来很简单。但由于这方面的相关知识很少,我是从一片迷茫中,一点点摸索出来这些论点的。

这些思考,源于偶然看到的一个问题——为什么可口可乐的 ROE 很高,但股价上涨很少。

我于是想知道,前复权股价的收益率与现金分红之间有什么关系。

在思考的过程中我发现,将最近一次的分红除权进行前复权比较简单,但是在那之前的许多次分红除权,如何对它们进行前复权很难想清楚。

另外,可口可乐公司历史悠久,但它是一家美国公司,所以很多股票软件只有最近十余年的股价。我在寻找合适软件查看股价的时候,偶然发现不同软件的前复权股价是不同的。这又给我增加了一个疑惑。

于是,我带着这些问题,开始一点点分析,前复权到底是怎么操作的。

这些分析研究加上思路整理,大概花了一周的时间。幸而终于成文。

如果你有兴趣也花点时间,重走一下我的思考历程,可能也会给你带来一些收获。

精彩讨论

全部讨论

2022-07-02 11:34

这两天在研究复权的问题,为了验证我的看法,刚刚搜帖子来到这里,结论跟楼主完全一致,哈哈,巧了。先感谢楼主,谢谢写了这么详细的帖子分享!另外,补充两点:(1)前复权和后复权,楼主和Wind是用涨跌幅来算的,我个人创造了一个叫“前复权系数”或“后复权系数”的概念,这样就很好理解和计算了。例如前复权时,前复权系数=(除息日前一天股价-每股分红)/除息日前一天股价,往前推算时,只需直接乘以这个系数即可。后复权则相反,后复权系数=除息日前一天股价/(除息日前一天股价-每股分红),往后推算时,也只需直接乘以这个系数。(2)Wind的“前复权系数”精确位数在小数点后7位,至于楼主提出的雪球跟Wind的差异,我也没搞明白,应该不是小数点位数的问题。因为我从2位计算到十几位,都没有跟雪球一致的数字。而且,当精确到7位开始,结果就基本稳定了。

03-11 18:06

@海东望 我刚打赏了这个帖子 ¥6,也推荐给你。

而如果保持涨跌幅与不复权时一致,则 6 月 23 日的前复权股价为 2048.76 ÷(1 + 1.47%)= 2018.99 元。
这个2018.99不对吧?2048.76 ÷(1 + 1.47%)= 2019.08 元
所以表格里面的wind、雪球、新浪的后复权价格是不是都错了呢@海东望
第二个问题:按照涨跌幅去计算前复权价格,6.23,6.22,6.21日的股价是不是必须在后一天股价基础上除以(1+不复权的涨跌幅)呢?
PS:兄你应该是唐书院的朋友吧,我也是~~~

楼主用心了,谢谢!

好好好!

02-18 19:01

今天碰到雪球和东财的复权价格差异很大。才搜到楼主的文章。答疑解惑了。谢谢!

01-11 19:57

大神NB

2023-08-03 11:46

看完了,但还是有点不确定。比如现在看农行股,除权看,是处于历史的低位,但复权看,又是处于高位,那现在做判断应该是看除权,还是复权的呢?

2023-06-11 15:29

写的太好了

2023-01-17 22:33

前复权看完,总算有点理解了