请选择 进入手机版 | 继续访问电脑版
楼主: 邢不行
1162 0

[交易策略] 复权不复权,天差与地别 | 量化投资中如何最准确的计算股票前后复权价(附代码)【中】 [推广有奖]

院士

5%

还不是VIP/贵宾

-

威望
1
论坛币
26743 个
通用积分
135.0908
学术水平
485 点
热心指数
505 点
信用等级
456 点
经验
44525 点
帖子
547
精华
26
在线时间
1111 小时
注册时间
2010-4-30
最后登录
2024-4-1

邢不行 在职认证  发表于 2020-11-19 16:17:52 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

引言:


邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。

【必读文章】:《10年400倍策略分享-附视频逐行讲解代码》

                     《EOS期现套利,一周时间,15%无风险收益》

【历史文章汇总】:https://bbs.pinggu.org/thread-3950124-1-1.html


个人微信:xingbuxing0809,有问题欢迎交流


接上篇


02

前复权与后复权


复权被分为前复权和后复权,很多同学不清楚两者的区别。


先来看一张K线图:

09.png

分红送股当日,股价暴跌46.8%(蓝线部分),以这一日为界限,K线图分为分红送股前和分红送股后的两个部分。


我们都知道股价的跌幅其实没有那么夸张,所以需要对K线(股价)进行修正。


以什么作为修正的基准呢?


如果我们以分红送股后的股价作为基准,将分红送股前的股价整体往下移动,对股价进行修正,这个过程就被称为前复权。

10.gif

如上图所示,在复权前,涨跌幅为-46.8%,将分红送股前的K线整体向下移动后,涨跌幅被修正为-3.3%。


后复权也是通过移动股价来实现价格修复的,只不过后复权是将分红送股后的K线整体向上移动。

11副本.gif

如上图所示,复权前的涨跌幅为-46.8%,将分权送股后的K线整体向上移动后,涨跌幅被修正为-3.3%。


看到这你应该明白什么是前复权和后复权了,前复权其实就是对分红送股前的股价进行修正,后复权是对分红送股后的股价修正。


并且细心的同学已经发现,不管是前复权还是后复权,它们修复的其实是分红、送股当天的涨跌幅,而不是股价,准确的涨跌幅才是复权的核心所在。



03

如何计算涨跌幅


正因为复权的核心是涨跌幅,所以想要正确地计算复权价,首先要计算复权当日的涨跌幅。


此时就需要一个关键的数据“前收盘价”来帮助我们。


很多同学可能不知道什么是“前收盘价”,我们来看一个例子:

企业微信截图_fa9deb47-d11f-46fa-8259-24b552b87278.png


这是一组包含前收盘价的股票数据。顾名思义,前收盘价就是前一天的收盘价。


图中可见,4月3日到4月8日的前收盘价都等于前一个交易日的收盘价。


但是4月9日的前收盘是26.90,而上一个交易日的收盘价是48.92,两者相差甚远,这是为什么呢?


这是因为股票在4月9号发生了分红送股等行为,导致股价自然回落。那应该回落到多少呢?


此时交易所会根据分红送股的内容计算出一个价格并公布出来,我们称这个价格为前收盘价,4月9号的26.90就是前收盘价。


有了交易所官方提供的“前收盘价”,第二天的交易在这个基础上就可以继续进行了。


并且通过这个价格,我们简单地套用公式:


涨跌幅 = (收盘价 - 前收盘价) / 前收盘价


就能计算出当日的涨跌幅:

12半.png

所以如果你拿到的股票数据没有包含前收盘价这个字段,那基本上是不能使用的。


我平时自己使用的交易数据就包含了前收盘价:

20.png

这份数据包含了从90年至今A股所有股票的历史数据,4000+只股票,大小1GB


有些数据虽然没有前收盘价,但是也直接提供了涨跌幅。不过在使用这些数据的时候一定要检查一下涨跌幅是否有误,尤其是分红送股当天。


比如下图中4月9号的数据明显就存在错误。

14.png

04

如何计算复权价


有了涨跌幅之后,应该如何计算复权价呢?我们需要引入“复权因子”的概念。


复权因子可以理解为,在一只股票刚发行的时候买入1块钱(假设)。之后随着市场波动,这一块钱的价值每天都在发生变化,这个价值就是这只股票的复权因子。


复权因子的涨跌幅和股价的涨跌幅(修正后)是一致的,所以我们可以利用:


复权因子 = (1 + 涨跌幅) × 前一交易日复权因子


计算复权因子:

15.png

上图中4月2日涨跌幅为10.01%,如果我们买入1元,那么在收盘后就变为1.1001元,也就是复权因子的大小。


第二天的涨跌幅为10%,收盘后的价值是在1.1001的基础上上涨的,所以变为1.21011。以此类推,将之后的涨跌幅累乘就能得到复权因子。


有了复权因子就能计算复权价了,不过复权价分为前复权价和后复权价,我们分开来讲。


1 前复权价格

先回忆一下这张图:



前复权其实是将分红送股前的K线整体下移,这意味着最近一个交易日的价格是固定不变的
16.png

所以4月13号的收盘价就等于前复权收盘价,只要在这个基础上往前修复价格就可以了。


因为复权因子是对每日涨跌幅的刻画,所以复权价的涨跌幅和复权因子的涨跌幅是相同的,这意味着:

企业微信截图_986cd53e-ff13-4d78-893a-6c02c39e1c6b.png

我们将上面的公式稍作变换就能得到:

企业微信截图_0e3efae0-3bc0-4a7e-a51f-f05a729af70f.png

等式右边的都是已知项,因此可以计算出前复权收盘价:

17.png

接下篇



二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:量化投资 复权价 thread python pinggu A股 股市 复权 编程 Python

不管去哪里 只要在路上
您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-18 13:27