关于股价复权,我们都知道是当股价进行分红、送股等情况后,进行股价调整,使股价可以更直观地反映涨跌情况。
但还有一些有趣的意外之事。
比如,你知道几年前的前复权股价是如何推算出来的吗?
你知道不同的股票软件,前复权的股价是不同的,甚至可能会有极大差异吗?
你知道想计算企业带给股东的历史收益率时,仅仅用复权股价就可以得到准确结果吗?而且前复权和后复权计算的结果是完全相同的?
接下来,我们就一起剖析一下股价的复权。
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 日开始继续向前推算之前的前复权股价。
我们先看一下,不复权时这几天的股价及涨跌情况。
![](https://xqimg.imedao.com/17fb68495e525ed3fead93bd.png!800.jpg)
由于分红除权日是 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 元。
可见,两种不同的前复权方法,会得到不同的前复权结果。保持涨跌值不变的方法,会使复权股价产生相对较大的变化;保持涨跌幅不变的方法,股价产生相对较小的变化。
对于两种前复权方法,不同的股票软件做出了不同的选择。我们来看看各款股票软件推算出来的前复权股价:
![](https://xqimg.imedao.com/17fb684187326583fab47d80.png!800.jpg)
前面我们计算了,保持涨跌值不变的话,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 元。
这两天的相关股价数据如下:
![](https://xqimg.imedao.com/17fb683979d25713fcb1d4f5.png!800.jpg)
首先,我们先不看 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 年前的前复权股价:
![](https://xqimg.imedao.com/17fb6853441265c3fe6d4237.png!800.jpg)
可以看到,使用涨跌值方法的 3 款股票软件腾讯自选股、富途牛牛、涨乐财富通的前复权数值比较接近。使用涨跌幅方法的 3 款软件 Wind 金融终端、新浪财经、雪球的数值也比较接近。
但是两种方法之间的差距就非常大了。
正如前面说过的,前复权会使股价的数值变小,那么未复权时的涨跌值和涨跌幅就不再呈对应关系了。
如果使用保持涨跌值不变的方法进行前复权调整,调整的幅度相对较大;如果使用保持涨跌幅不变的方法进行调整,调整幅度相对较小。
那么哪种方法更合理?
由于我们查看复权股价的目的,是计算投资收益率。即如果在某个时间点投资一笔钱,之后会收到多少倍的回报。因此,我们应该看看哪种方法的结果更接近真实回报率。
3.1 手动计算准确的投资收益
我们先使用老唐教的方法,手动列表格计算投资收益。
其中每一年在收到现金分红后,直接以当时价格(除权日的收盘价)买入股票。红利税、交易税全部忽略不计。
由于使用涨跌值方法的较早年份的股价是负值(如 2005 年末腾讯自选股里的前复权股价为-81.84 元),无法做收益率对比。因此我选取了茅台 2010 年末—2021 年末的时间段进行计算。
![](https://xqimg.imedao.com/17fb685a29726613fe0d4ac4.png!800.jpg)
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 使用前复权股价计算投资收益
我们再看一下各股票软件在这个时间段内的前复权股价及股价涨幅。
![](https://xqimg.imedao.com/17fb6860b1b25f83feb5071e.png!800.jpg)
可以看到,使用涨跌值方法的 3 款软件的股价涨幅是 45.11 倍,明显高于手动计算的 17.93 倍;使用涨跌幅方法的 3 款软件的股价涨幅是 17.93 倍,和我们手动计算的数据完全一致!
这说明,使用涨跌幅方法推算出来的前复权股价,可以直接用来计算准确的投资收益!
这在原理上也是说得通的。我们分析企业,关注的是企业每年同比提高多少百分比,而不是增加多少钱。所以调节过去股价也是用代表幅度的涨跌幅方法才合理。
要注意的是,我们在进行前复权时没有考虑税收的影响,所以实际收益率会略低于该股价涨幅的数据。
但还有另一个因素。使用前复权数据计算的投资收益率,代表了分红再买入的情况。但如果投资者有能力更好地利用现金分红,比如买入更有价值的证券,则可以略微提高投资收益。
因此,这些因素对投资收益率的影响不大,且会进行一定程度的互相抵消。所以仍然可以充分相信这样计算的投资收益率是准确的。
4 后复权与不复权
4.1 后复权
当我们使用同样的步骤去推算后复权股价的话,我们会有惊奇的发现。
由于涨跌幅推算方法在整个过程中,都是以涨跌幅进行成比例的推算,所以使用后复权股价计算的投资收益,和前复权是一样的。
但使用涨跌值进行推算的方法,后复权和前复权的结果是不同的。前面说过,在前复权时,使用涨跌值法的调整幅度会相对较大。而在后复权时则刚好相反,股价的调整幅度会相对更小。
看一下茅台在 2010 年末—2021 年末的前复权、后复权股价及涨幅的对比:
![](https://xqimg.imedao.com/17fb686681b24fb3f9332045.png!800.jpg)
可以看到,使用涨跌幅方法的 Wind 金融终端的前、后复权涨幅都是 17.93 倍;使用涨跌值方法的腾讯自选股的前复权涨幅是偏高的 45.11 倍,后复权涨幅是偏低的 15.02 倍。
所以,如果选择了一个使用涨跌幅进行复权的股票软件,那么使用前复权或后复权计算收益率,都是一样的。
甚至,由于后复权是向后调整股价的,还可以更直观地看出曾经的 1 元钱,现在变成多少钱了。
4.2 不复权
在计算收益率的时候,不复权股价也有独特的意义,但使用比较麻烦。
我们知道,利用复权股价计算收益率,代表了分红再买入的情况。
而在只有现金分红的情况下,利用不复权股价计算收益率,就代表了将分红收益扣除掉,只计算持股部分的收益率。
另外,如果将每年的持股部分收益率与分红收益率相加,就得出了当年的总体投资收益率。
如果除了现金分红,还有股份变动,那么需要按照股份变动的情况,将不复权股价进行调整,才能如上面所述的方法继续使用。
5 结论
将重点做一个总结。
1.除了最近一次分红除权的前复权调整,是根据前复权公式直接计算的。再之前的前复权调整,都是通过保持涨跌幅(或涨跌值)与复权前一致,一天天向前推算的。其中,如果遇到分红除权情况,需要利用前复权公式单独计算涨跌幅(或涨跌值)。
2.不同股票软件的复权股价不同,是因为一些软件使用涨跌幅方法推算复权股价,另一些软件使用涨跌值方法推算复权股价。
3.我们可以使用涨跌幅方法推算出来的前复权股价,直接计算出准确的投资收益。
4. 使用涨跌幅方法的后复权股价,和前复权股价一样好用。
PS:想知道一款股票软件使用的是涨跌幅方法还是涨跌值方法,只需要看一下早期的茅台前复权股价,正数的是涨跌幅,负数的是涨跌值。记住我们要选股价是正数的软件。
6 我的思考历程
虽然关于股价复权的结论,看起来很简单。但由于这方面的相关知识很少,我是从一片迷茫中,一点点摸索出来这些论点的。
这些思考,源于偶然看到的一个问题——为什么可口可乐的 ROE 很高,但股价上涨很少。
我于是想知道,前复权股价的收益率与现金分红之间有什么关系。
在思考的过程中我发现,将最近一次的分红除权进行前复权比较简单,但是在那之前的许多次分红除权,如何对它们进行前复权很难想清楚。
另外,可口可乐公司历史悠久,但它是一家美国公司,所以很多股票软件只有最近十余年的股价。我在寻找合适软件查看股价的时候,偶然发现不同软件的前复权股价是不同的。这又给我增加了一个疑惑。
于是,我带着这些问题,开始一点点分析,前复权到底是怎么操作的。
这些分析研究加上思路整理,大概花了一周的时间。幸而终于成文。
如果你有兴趣也花点时间,重走一下我的思考历程,可能也会给你带来一些收获。
精彩讨论
全部讨论
这两天在研究复权的问题,为了验证我的看法,刚刚搜帖子来到这里,结论跟楼主完全一致,哈哈,巧了。先感谢楼主,谢谢写了这么详细的帖子分享!另外,补充两点:(1)前复权和后复权,楼主和Wind是用涨跌幅来算的,我个人创造了一个叫“前复权系数”或“后复权系数”的概念,这样就很好理解和计算了。例如前复权时,前复权系数=(除息日前一天股价-每股分红)/除息日前一天股价,往前推算时,只需直接乘以这个系数即可。后复权则相反,后复权系数=除息日前一天股价/(除息日前一天股价-每股分红),往后推算时,也只需直接乘以这个系数。(2)Wind的“前复权系数”精确位数在小数点后7位,至于楼主提出的雪球跟Wind的差异,我也没搞明白,应该不是小数点位数的问题。因为我从2位计算到十几位,都没有跟雪球一致的数字。而且,当精确到7位开始,结果就基本稳定了。
而如果保持涨跌幅与不复权时一致,则 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:兄你应该是唐书院的朋友吧,我也是~~~
今天碰到雪球和东财的复权价格差异很大。才搜到楼主的文章。答疑解惑了。谢谢!
看完了,但还是有点不确定。比如现在看农行股,除权看,是处于历史的低位,但复权看,又是处于高位,那现在做判断应该是看除权,还是复权的呢?