你不点个赞吗
话接上篇网页链接
先提个问题:格力电器近7年的年化收益是多少?
我一直是用东方财富网的终端来看股票数据的,最近在算一些公司的历史收益率,发现和用雪球网上的数据算出来的出入很大,按东方财富的数据算出来的收益率明显偏高,非常具有蒙蔽性。算不清收益还搞什么投资?
举个例子:格力电器(下面提到的复权都是前复权)
按照东财的数据,20130314的复权收盘价是5.4,这样算下来2013-2020的收益率为8.4倍。
在看看雪球网的数据,20130314年的复权价为9.79,这样算下来2013-20的收益率为 5.8倍,差出来近三倍。这是年化30%与年化40%的区别。
横向比较了一下,雪球与tushare上的数据比较接近,通达信和东财的数据接近,通达信用等比复权之后,与tushare的数据变的接近。结论:东财的数据是很有问题的。。
雪球,tushare,通达信(等比复权)
东财, 通达信(正常设置)
问题来了,究竟是哪里(在什么时间)不一致了呢?
我们把两组数据画出来比较一下:
第二幅图是 tushare - 东财。很明显东财的数据在2015年往前突然变小了,15年之后的都吻合的还不错。
所以,按照东财的数据算出来的收益率偏高。
不论是前复权还是后复权,都是分红再买入之后的收益。
复权的基本道理是为了让股价在复权前与复权后的比例保持不变,即:
> price[t] / (price[t+1] * (1 + 配股比例 ) + 分红) = adjprice[t] / adjprice[t+1]
> 距离目前最近的一次分红之后的 adjprice[t] = price[t]。
根据上面两个公式,price[t]是已知的,然后就可以递推得到前面所有时间的adjprice。
正确的复权算法:以中国建筑为例,
1) 分红: 最近的一次分红在20190614,分红0.168。不复权的价格如下:
price[20190614] = 5.73
price[20190613] = 5.92
div = 0.168
这样,我们可以得到20160613(股权登记日的,派息前一天)的复权因子
a1 = (5.73 / (5.73 + div))
复权后的股价 adjprice[20190613] = 5.92 * a1 = 5.75
adjprice[20190614] = 5.73
2) 分红加配股: 再往前数2018年的派息日20180629,每股派息0.215, 并派股0.4股
p[20180629] = 5.46
p[20180628] = 7.73
div = 0.215
这样我们得到20180628日的复权因子:a2
a2 = 5.46 / (5.46 * (1 + 0.4) + 0.215)
复权后的股价 adjprice[20180628] = 7.73 * a1 * a2 = 5.22
adjprice[20180629] = 5.46 * a1 = 5.30。
这样计算出来的与通达信,雪球网的数据是完全一致的。而东财的数据为adjprice[20180628] = 5.20。
留个问题:东财的数据具体是怎么算出来的? 为什么在2015年以前的累计误差会突然变大?
附录:
@持有封基 的帖子:
同时也参考了baostock的说明:
中国建筑的数据对比图:(2015年前的差异很明显)
$中国建筑(SH601668)$ @今日话题 @晕娜 @寻道大道 @luckzpz
进入2020以来,疫情的影响通过资本市场被放大,美股高位震荡。2020又是艰难的一年。
但不知为何我有些兴奋。
你不点个赞吗