大家知道复权是因为股票分红或者转股送股的原因,转股和送股的区别主要是前者是用的资本公积金,后者用的是未分配利润。对复权计算是一样的,另外送股和分红是要交税的,根据你持有的时间交税还不一样,这里我们假定都不交税了。在复权中大家知道有前复权和后复权,前复权就是保持最新的价格不变,往前推算复权价格;后复权就是保持最前面的一个日期对应的价格不变,往后推算复权价格。复权有个原则,就是不管怎么复权,应该是K线形状保持不变,或者说每天的涨幅保持不变,但实际上很多系统由于种种原因,不管前复权还是后复权,价格计算都是错的,几乎很少能见到复权真正正确的系统。因为复权的价格影响很多计算特别是量化策略的回算,所以这里详细来讨论一下。
我们举沪市代码第一股浦发银行为例子,从现有的数据来看,浦发在99年11月10日的收盘价是27.75元,16年7月8日收盘价是15.45元。其中一共有17次分红转送股,每10股合计分红44.42元,转送股22股。除息除权日当天复权后的涨幅=(当天不复权收盘价*(1+每股送股数量)+每股分红金额)/上一个交易日的不复权收盘价,计算出每天的涨幅后再按照当天的复权收盘价=上一个交易日的复权收盘价*(1+复权涨幅)计算出每天的复权收盘价。
先对比一下我们精确复权和系统后复权的差异,都是从99年11月10日的27.75开始往后复权,我们的精确复权结果后,最新的16年7月8日的后复权价格是143.01元,系统后复权价格是122.18,差异在哪里呢?经过仔细查找,发现了问题。比如说15年8月26日到27日,不复权价格分别是13.02,13.98,涨幅是7.37%,但通达信后复权则变成95.25、101.00元,涨幅变成6.04%,少了1.33%。类型的情况还非常多,这里不一一列举了。
我们再来看前复权,经过我们精确复权,从99年11月10日 到16年7月8日实际涨幅是415.34%,最新价是15.45元,那么前复权后99年11月10日的前复权价格=15.45/(1+415.34%)=3元,这才是真正的前复权价格,保持每天的增幅不变,到16年7月8日前复权后变成15.45元,每天每年的收益率完全和精确复权一样,但很多系统竟然前复权成负数了,比如通达信的前复权价格,在01年到06年竟然前复权成负数甚至变成0了,这显然是错误的。
我们再来用现金流量法核对一下,我们上面用的精确复权方法,其实和净值法是类似的,17年浦发总涨幅是415.34%,那么年化收益率=(1+415.34%)^(1/((date(2016,7,8)-date(1999-11,10)/365.25))-1=10.34%,而按照通达信提供的前复权、后复权数据计算出来的年化收益率分别是16.94%和9.31%。网上有人说前复权好,因为不影响当今的价格;有人说后复权好,因为前复权用了未来函数。在我看来其实前复权后复权本质都是一样的,只要确保每天的涨幅不变,计算准确,都是可以的,可惜目前我看到的系统几乎没有一个复权准确的。包括基金的复权也是类似,半年的时候我去网上查了一下半年排名,结果排名在前面很多网站都是错误的,主要还是因为复权计算的问题。
因为复权不准会影响非常多,所以在此做一个详细的讨论,抛砖引玉,希望得到大家的重视。
备注:详细的计算模板在下面,大家可以按照自己的需求下载后改成其他股票或者基金来精确计算复权和对应的收益率,其中有类似净值法和现金流量法的Xirr公式。
本文发表后雪球上@晨小哥 指出其实在通达信里面有精确复权选项,在设置-系统设置-设置1-“各类复权均使用等比方式” 上打钩就可以精确复权了,复权的结果和我计算的结果非常接近了,感谢@晨小哥 !
我们举沪市代码第一股浦发银行为例子,从现有的数据来看,浦发在99年11月10日的收盘价是27.75元,16年7月8日收盘价是15.45元。其中一共有17次分红转送股,每10股合计分红44.42元,转送股22股。除息除权日当天复权后的涨幅=(当天不复权收盘价*(1+每股送股数量)+每股分红金额)/上一个交易日的不复权收盘价,计算出每天的涨幅后再按照当天的复权收盘价=上一个交易日的复权收盘价*(1+复权涨幅)计算出每天的复权收盘价。
先对比一下我们精确复权和系统后复权的差异,都是从99年11月10日的27.75开始往后复权,我们的精确复权结果后,最新的16年7月8日的后复权价格是143.01元,系统后复权价格是122.18,差异在哪里呢?经过仔细查找,发现了问题。比如说15年8月26日到27日,不复权价格分别是13.02,13.98,涨幅是7.37%,但通达信后复权则变成95.25、101.00元,涨幅变成6.04%,少了1.33%。类型的情况还非常多,这里不一一列举了。
我们再来看前复权,经过我们精确复权,从99年11月10日 到16年7月8日实际涨幅是415.34%,最新价是15.45元,那么前复权后99年11月10日的前复权价格=15.45/(1+415.34%)=3元,这才是真正的前复权价格,保持每天的增幅不变,到16年7月8日前复权后变成15.45元,每天每年的收益率完全和精确复权一样,但很多系统竟然前复权成负数了,比如通达信的前复权价格,在01年到06年竟然前复权成负数甚至变成0了,这显然是错误的。
我们再来用现金流量法核对一下,我们上面用的精确复权方法,其实和净值法是类似的,17年浦发总涨幅是415.34%,那么年化收益率=(1+415.34%)^(1/((date(2016,7,8)-date(1999-11,10)/365.25))-1=10.34%,而按照通达信提供的前复权、后复权数据计算出来的年化收益率分别是16.94%和9.31%。网上有人说前复权好,因为不影响当今的价格;有人说后复权好,因为前复权用了未来函数。在我看来其实前复权后复权本质都是一样的,只要确保每天的涨幅不变,计算准确,都是可以的,可惜目前我看到的系统几乎没有一个复权准确的。包括基金的复权也是类似,半年的时候我去网上查了一下半年排名,结果排名在前面很多网站都是错误的,主要还是因为复权计算的问题。
因为复权不准会影响非常多,所以在此做一个详细的讨论,抛砖引玉,希望得到大家的重视。
备注:详细的计算模板在下面,大家可以按照自己的需求下载后改成其他股票或者基金来精确计算复权和对应的收益率,其中有类似净值法和现金流量法的Xirr公式。
本文发表后雪球上@晨小哥 指出其实在通达信里面有精确复权选项,在设置-系统设置-设置1-“各类复权均使用等比方式” 上打钩就可以精确复权了,复权的结果和我计算的结果非常接近了,感谢@晨小哥 !
0
学习受教了,长期以来后复权是我个人用来观察大多数股票到底是高估了还是低估了的重要方法之一,没有想到软件也会出错,楼主非常严谨,应该来说精确复权对投资者还有很有意义的,可以看清楚个股最原始的本质面貌。
0
股利无关理论认为是否分红不影响股票价值,其基本假定为,假设市场公允反应股票价值,且无税,分红与否不会影响企业运营(就是不出现不该分强分导致企业资金困难或该分不分导致资金闲置),不分红的股票的持有者可以卖出部分股票来获得回报,而分红的股票的持有者可以通过分红买入新的股票产生于不分红等效的结果。
那么按此理论,假设十元股票市值分1元,那么分红后的价格的10/9倍是复权价,即9块钱相当于分红前的10块钱,18块钱相当于分红前的20块钱。
不过这个理论也是有缺陷的,没有完美的复权价。
短期投机软件复权法效果也不差。至于长期,长期是按现金流量折现计算投资收益率的,跟股票价格关系不大(
那么按此理论,假设十元股票市值分1元,那么分红后的价格的10/9倍是复权价,即9块钱相当于分红前的10块钱,18块钱相当于分红前的20块钱。
不过这个理论也是有缺陷的,没有完美的复权价。
短期投机软件复权法效果也不差。至于长期,长期是按现金流量折现计算投资收益率的,跟股票价格关系不大(
0
换个角度考虑这个问题,鉴于绝大部分投资者(姑且用这个尊称吧)投资一只股票的时间不长于三年,还有真正的长期投资者用分红进行再投资了。加之企业自身3-5年的发展变化,譬如招行的马蔚华和田慧宇的经营理念相差较大,研究复权是否精准,对大部分投资者没有太大的意义。
1
赞同来自: 云潇123
真的有打破砂锅问到底的精神。
大智慧的用户可以在复权选项中选择“等比复权”,这样通过它下载数据做分析的时候,就不会出错了。
普通前复权非常容易导致策略的历史收益虚高(分红导致历史价格降低,但涨跌金额不变,导致涨跌浮动变大,而我们计算收益一般是按照涨跌幅来做的)
还是建议做ETF的,使用标的指数的历史数据,而不是ETF来做策略回测。
大智慧的用户可以在复权选项中选择“等比复权”,这样通过它下载数据做分析的时候,就不会出错了。
普通前复权非常容易导致策略的历史收益虚高(分红导致历史价格降低,但涨跌金额不变,导致涨跌浮动变大,而我们计算收益一般是按照涨跌幅来做的)
还是建议做ETF的,使用标的指数的历史数据,而不是ETF来做策略回测。