经常有朋友问我 股票复权 相关的问题。
同学们的提问
(资料图片)
通过这些提问,我发现大家对复权是真的不了解,比如:
1 复权是什么,前复权、后复权又是什么?
2 到底怎么计算准确的复权价?
3 不同软件的复权价怎么不一致?
4 期货数据需要复权吗?
………………
本文就针对这些问题,完完整整的讲清楚股票 复权的所有细节。 并附上计算代码,尽量让大家能100%理解。
我们从两个案例开始:
xx药业4月17日暴跌39.29%
xx科技4月9日暴跌46.83%
上面两只股票在一天内的跌幅都 远超过了A股10%的限制 。暴跌的当天发生了什么?
我查了一下这两家企业在当天的公告:
xx药业公告
分红 :每10股派1.35元。
转增 :每10股转增6股。
xx科技公告
分红 :每10股派5元。
转增 :每10股转增8股。
什么是分红和转增?它们又是怎么影响股价的?我举两个例子说明。
1 分红案例
分红就是派发现金,A公司每10股派10元,意味着你每持有10股股票,就会给你10元现金。
假设你在分红前持有A公司股票10000股,每股股价10元,分红前你的总资产是10万元。
分红后会变成什么样呢?看下图:
分红后首先你额外得到了1万元的现金,但别开心的太早,你持有股票的股价也会 自动从10元调整 为9元。
因为 股价反映了公司的价值 ,公司把一部分钱分给你了,价值自然就变低了。
所以 你的总资产还是10万元(9万元股票+1万现金),并未发生变化 。
而股价从10元变为9元,表面上看跌了10%,但你的总资产并未亏损,所以并不能认为股价下跌10%,真实涨跌幅应该是0%。
2拆股的案例
再来看一个拆股的案例:特斯拉在今年6月的公告中称,要对公司股票进行拆分,把原来的1股拆成5股。
特斯拉拆股当日K线
拆股和转增股份差不多,都会让整体股票变多。
假设在拆股的前一天,你持有1万股的特斯拉,每股价格2200元,那总价值就是2200万。拆股之后会有什么变化呢?看下图:
拆股之后,你手上持有的特斯拉就会从1万股变为5万股。
但 千万别觉得你的资产瞬间翻了5倍 ,因为股价也会 自动调整 为原来的1/5。即你的总资产没有发生任何变化。
在拆股后股价从2200元变为440元,看似暴跌了80%?其实不然,你的总资产始终都是2200万,没有发生任何变化,所以 股价的变化其实是0% 。
3 分红送股的影响
通过以上的两个例子我们知道, 分红、送股、拆股、配股 等行为都会导致股价的异常变动,但资产的 实际价值并未发生变化 。
股价悬崖式下跌,实际资产并未发生变化
但是 股价的异常会对投资造成很大的影响, 比如我想看看特斯拉从上市到现在涨了多少,就不能简单的用 现在的价格 / 上市的价格。
价格异常对我们量化投资也会有很大的影响 。
股价的剧烈变动会影响很多我们经常使用的财务指标或量价指标。比如下图中,特斯拉在拆股之后,常见的 RSI指标 和 布林指标 就发生了明显的异常。
股价变动导致RSI指标和布林指标异常
如果这时我们继续用异常的 指标 来分析走势或开平仓,显然是不明智的。
为了避免这种价格“暴跌”的影响,我们需要对股票的 价格进行修复 ,这一过程就叫做 复权 。
利用复权后的股价来 重新计算各类指标 ,才能避免指标异常,导致错误的决策。
复权前
复权后
复权被分为 前复权 和 后复权 ,很多同学不清楚两者的区别。
先来看一张K线图:
分红送股当日,股价暴跌46.8%(蓝线部分),以这一日为界限,K线图分为 分红送股前 和 分红送股后 的两个部分。
我们都知道股价的跌幅其实没有那么夸张,所以需要对K线(股价)进行修正。
以什么作为修正的基准呢?
如果我们以 分红送股后的股价作为基准 ,将 分红送股前的股价整体往下移动 ,对股价进行修正,这个过程就被称为 前复权 。
前复权
如上图所示,在复权前,涨跌幅为-46.8%,将分红送股前的K线整体向下移动后,涨跌幅被修正为-3.3%。
后复权也是通过移动股价来实现价格修复的,只不过 后复权是将分红送股后的K线整体向上移动 。
后复权
如上图所示,复权前的涨跌幅为-46.8%,将分权送股后的K线整体向上移动后,涨跌幅被修正为-3.3%。
看到这你应该明白什么是 前复权 和 后复权 了,前复权其实就是对 分红送股前 的股价进行修正,后复权是对 分红送股后 的股价修正。
并且细心的同学已经发现,不管是前复权还是后复权,它们 修复的其实是分红、送股当天的涨跌幅 ,而不是股价,准确的 涨跌幅才是复权的核心 所在。
正因为复权的核心是涨跌幅,所以想要正确地计算复权价,首先要计算复权当日的涨跌幅。
此时就需要一个关键的数据“ 前收盘价 ”来帮助我们。
很多同学可能不知道什么是“ 前收盘价 ”,我们来看一个例子:
这是一组包含 前收盘价 的股票数据。顾名思义,前收盘价就是前一天的收盘价。
图中可见,4月3日到4月8日的 前收盘价 都等于 前一个交易日的收盘价 。
但是4月9日的前收盘是26.90,而上一个交易日的收盘价是48.92, 两者相差甚远 ,这是为什么呢?
这是因为股票在4月9号发生了 分红送股等 行为,导致股价自然回落。那应该回落到多少呢?
此时交易所会根据 分红送股的内容 计算出一个价格并公布出来,我们称这个价格为 前收盘价 ,4月9号的26.90就是前收盘价。
有了交易所官方提供的“ 前收盘价 ”,第二天的交易在这个基础上就可以继续进行了。
并且通过这个价格,我们简单地套用公式:
涨跌幅 = (收盘价 - 前收盘价) / 前收盘价
就能计算出当日的涨跌幅:
所以如果你拿到的股票数据 没有包含前收盘价这个字段,那基本上是不能使用的 。
我平时自己使用的交易数据就包含了前收盘价:
包含前收盘价的数据
这份数据包含了从 90年至今 A股 所有股票的历史数据 ,5000+只股票,非常的完备,并且也都是可以 分享给大家的。
有些数据虽然没有前收盘价,但是也直接提供了涨跌幅。不过在使用这些数据的时候一定要检查一下涨跌幅是否有误, 尤其是分红送股当天 。
比如下图中4月9号的数据明显就存在错误。
涨跌幅数据一定要验证是否有误
有了涨跌幅之后,应该如何计算复权价呢?我们需要引入“ 复权因子 ”的概念。
复权因子可以理解为,在一只股票刚发行的时候买入1块钱(假设)。之后随着市场波动,这一块钱的价值每天都在发生变化,这个 价值就是这只股票的复权因子 。
复权因子的涨跌幅和股价的涨跌幅(修正后)是一致的 ,所以我们可以利用:
复权因子 = (1 + 涨跌幅) × 前一交易日复权因子
计算复权因子:
上图中4月2日涨跌幅为10.01%,如果我们买入1元,那么在收盘后就变为1.1001元,也就是复权因子的大小。
第二天的涨跌幅为10%,收盘后的价值是在1.1001的基础上上涨的,所以变为1.21011。以此类推,将之后的涨跌幅累乘就能得到复权因子。
有了复权因子就能计算复权价了,不过复权价分为 前复权价 和 后复权价 ,我们分开来讲。
1 前复权价格
先回忆一下这张图:
前复权 其实是将 分红送股前 的K线 整体下移 ,这意味着 最近一个交易日的价格是固定不变的 。
所以4月13号的 收盘价 就等于 前复权收盘价 ,只要在这个基础上往前修复价格就可以了。
因为复权因子是对每日涨跌幅的刻画,所以 复权价的涨跌幅 和 复权因子的涨跌幅 是相同的,这意味着:
我们将上面的公式稍作变换就能得到:
等式右边的都是已知项,因此可以计算出前复权收盘价:
例如上图中4月10日的前复权价格就是这么计算的:
1、先用4月13日的前复权收盘价除以复权因子得到固定值:
23.65 / 1.087465 ≈ 21.748
2、将21.748与4月10日的复权因子相乘,得到当天复权价:
21.748 × 1.208429 ≈ 26.28
其他日的 前复权收盘价 只要用 复权因子 乘以 常数C 就能计算出来了。
聪明的同学可能已经发现, 前复权价 其实就是把 复权因子等比例放大 了21.748倍。
2 后复权价格
后复权价的计算方法也类似。
后复权将 分红送股后 的价格 整体上移 ,所以 最早交易日(4月2日)的价格是不变的,收盘价等于后复权收盘价 :
对于后复权,存在以下关系:
对这个公式稍作变换:
等式右边的三项都是知道的,所以后复权的收盘价也可以算出来:
看到这里大家应该明白, 只要计算出复权因子,不管是前复权价格还是后复权价格,只不过是复权因子的等比例放大或缩小 。
不过还是有很多同学会问,已经知道收盘价的复权价如何计算,那 开盘价、最高价、最低价的复权价该怎么计算呢?
问这个问题的同学请自觉面壁思过5分钟,因为这个问题只要稍微思考下就能知道答案。
复权只是对股票价格做整体抬升,每根K线开高收低之间的比例并不会改变。
开盘价、最高价、最低价复权计算公式
例如上图中7月30号的复权开盘价就可以这么计算:
已知 开盘价 =10.51, 收盘价 =10.4, 收盘价复权 =10.97
则 开盘价 / 收盘价 =10.51/10.4=1.0106
由于 开盘价 / 收盘价 = 开盘价复权 / 收盘价复权
所以 开盘价复权 = 收盘价复权 ×1.0106
开盘价复权= 10.97×1.0106=11.86
同理,我们只要按照比例对其他价格进行缩放就能得到其他的复权价格了。
我也为大家准备好了计算复权的代码,方便大家在处理数据的时候使用, 这个代码也都是可以分享给大家的。
计算复权的代码
计算复权后的数据
热门