前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >量化投资中关于复权的处理 | 【量化小讲堂】

量化投资中关于复权的处理 | 【量化小讲堂】

作者头像
数说君
发布于 2018-04-04 08:04:28
发布于 2018-04-04 08:04:28
2.9K02
代码可运行
举报
文章被收录于专栏:数说工作室数说工作室
运行总次数:2
代码可运行

【量化小讲堂-Python、pandas技巧系列】量化投资中关于复权的处理

作者:邢不行

原文链接:

http://bbs.pinggu.org/thread-3924170-1-1.html

(本【量化小讲堂】系列已获作者授权转载,如需转载请与原作者联系)


最近惊讶的发现很多同学对如何在量化投资的实战中如何处理复权、除权等问题,其实不是非常了解,耽误很多事情,所以本文专门来详细的讲一下这个问题。

【复权计算方法】

股票会时不时的发生现金分红、送股等一系列股本变动,这会造成股价的非正常变化,导致我们不能直接通过股价来计算股票的涨跌幅。例如一个股票是10元,当他10送10的时候,它的价格会变成5元,但是我们并不能认为这个股票下跌了5 / 10 - 1 = 50%。 下面举一个具体的例子来说明如何计算除权价格以及复权涨跌幅:

易事特(SZ300376)在2015年6月5日的收盘价是89.00元,当天晚上每股分红0.184元,并且每10股转增4股,那么这个股票除权之后的收盘价应该是(89.00 - 0.184) * 10 / (10 + 4) = 63.44元。下一个交易日6月8日的收盘价是57.10,真实涨跌幅应该是57.10 / 63.44 - 1 = -9.993695%,而不是57.10 / 89.00 - 1 = -35.842697%。 其中真实涨跌幅57.10 / 63.44 - 1 = -9.993695%也被称为是复权涨跌幅。

【复权涨跌幅最重要】

因为以上除权问题的存在,很多研究量化的同学在寻找股票数据的时候,很在意是否能得到复权之后的价格数据。我想说的是,股票的复权价格并不是最重要的,最重要的是要得到股票复权之后的涨跌幅。 若你有了股票每天的复权涨跌幅,那么知道了股票第一天的价格,通过简单的连乘计算,自然就可以计算出之后每一天的复权价,这个叫做后复权价。例如股票第一天的价格是10元,之后每天的复权涨跌幅是1%、-2%、3%...那么之后每天的复权价格分别是10 * (1+1%)、10 * (1+1%) * (1-2%)、10 * (1+1%) * (1-2%) * (1+3%)...

同样的,知道了股票最后一天的价格,那么自然也就可以计算出之前每一天的价格,这个叫做前复权价。行情软件中的前后复权价格,其实也是这么算出来的。 若股票数据中只给出了复权价格,这对计算收益的准确性是有很大影响的。例如给出的是前复权价格,那么很久之前的股票价格往往很小的数字,一般又都是精确到两位小数,所以会变成0.45,0.47这样类似的数字。例如万科A(SZ000002)在2006年2月8日的前复权收盘价是0.56,2月9日的前复权收盘价是0.48,那么2月9日的收益是0.48/0.56 - 1 = -14.29%,但是实际上8号、9号的真实收盘价是5.26、5.06,真实的涨幅是-3.80%,与-14.29%相差巨大。

【同花顺、通达信等各家的复权方式不同】

查看来自不同数据源的数据的时候,会发现它们的复权价格或者复权涨跌幅会有微小的差异,这往往是由不同的复权方式导致的。 例如,复权时对于分红产生的个人所得税,各家的处理方式是不一样的。同花顺、通达信中的复权是不考虑所得税的。上文提到的易事特(SZ300376)每股分红0.184元10股转4股,不考虑所得税的除权公式是(89.00 - 0.184) * 10 / (10 + 4) 。

但是实际上,这0.184元不会全部到投资者的口袋里,而是会扣掉10%的所得税(不同投资者扣得税还不一样),所以投资者得到的分红只有0.184 * (1 - 10%),那么更加准确的分红方式应该是:(89.00 - 0.184 * (1 - 10%)) * 10 / (10 + 4) 。一些专业的数据库,例如wind、国泰安,就是这么复权的。

【其他】

对于分钟或者更小级别的数据,我个人认为是没有必要进行复权的,直接用原始数据就可以了。复权之后反而会对数据准确性造成非常大的影响。

不要过分追求准确性。复权其实挺复杂的,之前的例子只提到了分红、转增,其实还有增发、配股、可转债等非常复杂的情况。所以哪怕非常贵的、非常专业的数据库,我都曾发现过它们复权计算中的错误。一开始这让我挺头疼的,但后来也释然了,不再去追究这些细小的误差。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-12-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数说工作室 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
rest_framework自定义认证
rest_framework自定义认证,简单两步即可实现 下面是所有views urls models 的代码 #views.py from django.shortcuts import render from django.http import HttpResponse,JsonResponse from rest_framework.views import APIView from rest_framework.request import Request from rest_framewor
kirin
2020/06/11
3250
第一季 | ModelBackend 自定义用户验证,实现用户名、手机号、邮箱登录
Django REST框架构建Web API。Django网络应用开发的5项基础核心技术包括模型(Model)的设计,URL 的设计与配置,View(视图)的编写,Template(模板)的设计和Form(表单)的使用。
小团子
2020/04/08
1.6K0
Django用户认证系统组与权限(一)
apps.User.utils.mycustombackend.custombackend.CustomBackend
Autooooooo
2020/11/09
7730
【愚公系列】2022年01月 Django商城项目09-注册界面-注册功能实现
文章目录 一、注册业务逻辑 1.使用django自带的用户登录模型配置 2.UsernameMobileModelBackend校验函数源码 3.定义models类 4.登录的业务逻辑 一、注册业务逻辑 1.使用django自带的用户登录模型配置 # 允许自定义用户模型类 AUTH_USER_MODEL = 'users.User' # 修改默认的认证后端 AUTHENTICATION_BACKENDS = [ # 'django.contrib.auth.backends.ModelBacken
愚公搬代码
2022/01/14
3830
【愚公系列】2022年01月 Django商城项目12-登录界面-登录和退出功能实现
登录和退出功能取决与是否有cookie,在页面加载时vue会自动获取cookie数据进行判断用户是否登录,进行相应展示。
愚公搬代码
2022/01/17
4400
【愚公系列】2022年01月 Django商城项目12-登录界面-登录和退出功能实现
自定义认证后台
Django auth 应用默认支持用户名(username)进行登录。但是在实践中,网站可能还需要邮箱、手机号、身份证号等进行登录,这就需要我们自己写一个认证后台,用于验证用户输入的用户信息是否正确,从而对拥有正确凭据的用户进行登录认证。 Django 验证用户合法性的方式 Django 对用户登录的验证工作均在一个被称作认证后台(Authentication Backend)的类中进行。这个类是一个普通的 Python 类,它有一个 authenticate 方法,接收登录用户提供的凭据(如用户名或者邮
追梦人物
2018/04/17
9050
学习猿地 python教程 django教程10 Django中的用户认证
Django带有一个用户认证系统。它处理用户帐户,组,权限和基于cookie的用户会话。本文档的这一部分解释了默认实现如何开箱即用,以及如何[扩展和定制](https://docs.djangoproject.com/en/1.11/topics/auth/customizing/)它以适应您的项目需求。
学习猿地
2020/03/24
1.2K0
使用Django实现微信公众号用户openid登录认证
最近在用Django做一个小项目,需要将微信的用户与网站的用户进行关联,由于是微信的订阅号,没有oauth网页授权的权限,只能退而求其次,在响应中获取用户的openid,来唯一的标识用户。
SingYi
2022/07/13
2.2K0
Python Web 聊天室开发(三):用户认证和登录
在第一篇文章中,我们借助 Django 3 + Channels + Redis 实现了一个WebSocket 连接的 Web 在线聊天室。
州的先生
2021/09/08
2.1K0
Django之用户认证组件
  只要登录过的用户,访问任何视图的时候都可以使用request.user对象,这就是一个user对象,request.user.name就可以拿到用户的名字,request.user.email就可以得到用户的邮箱,还可以拿到用户的其他信息。除此之外,user对象还拥有以下方法:
py3study
2020/01/21
6140
Django 用户认证(Auth)组件
我们在开发一个网站的时候,无可避免的需要设计实现网站的用户系统。此时我们需要实现包括用户注册、用户登录、用户认证、注销、修改密码等功能,这还真是个麻烦的事情呢。
HammerZe
2022/03/25
9580
Django 用户认证(Auth)组件
Django REST framework+Vue 打造生鲜超市(六) 七、用户登录与手机注册
七、用户登录与手机注册 7.1.drf的token (1)INSTALL_APP中添加 INSTALLED_APPS = ( ... 'rest_framework.authtoken
zhang_derek
2018/04/16
6.1K2
Django REST framework+Vue 打造生鲜超市(六)
		七、用户登录与手机注册
Django + Vue 快速实现前后端分离的用户认证
Web 后端在主流场景下,注定成为了仅仅提供 API 接口和进行一些需要消耗服务器性能和后端计算载体;
州的先生
2021/07/20
5.4K0
Django + Vue 快速实现前后端分离的用户认证
Django 用户认证系统使用总结
本文按默认配置讲解Django认证系统的用法。如果默认的认证无法满足项目,Django提供了对认证系统的扩展与定制。
授客
2020/09/22
1.9K0
Spring Security 自定义用户认证
在 Spring Boot 集成 Spring Security 这篇文章中,我们介绍了如何在 Spring Boot 项目中快速集成 Spring Security,同时也介绍了如何更改系统默认生成的用户名和密码。接下来本文将基于 Spring Boot 集成 Spring Security 这篇文章中所创建的项目,进一步介绍在 Spring Security 中如何实现自定义用户认证。
阿宝哥
2019/11/15
1.4K0
django2.2.6 check_password 验证失败解决办法
python3.6, django 2.2.6 AUTHENTICATION_BACKENDS 里添加自定义认证 CustomBackend(邮箱、手机号等),
KEVINGUO_CN
2020/03/17
9650
Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块
中间件的调用只需要在配置文件中添加,如果不使用某个中间件,只需要在配置文件中将对应的字符串注释掉就可以,这种调用执行某一代码的方式是不是很方便呢?下面我们就利用Django对中间件的调用的思想,将自己的功能也实现和中间件一样的调用方式。
GH
2019/12/16
9200
Django对中间件的调用思想、csrf中间件详细介绍、Django settings源码剖析、Django的Auth模块
django 用户认证(电视业务认证失败怎么办)
一般在公司内部都会使用ldap系统进行用户认证。 安装 pip install django-auth-ldap 主要在settings.py的配置
全栈程序员站长
2022/08/01
8970
Django之auth模块(用户认证)
auth模块简介 auth模块是对登录认证方法的一种封装,之前我们获取用户输入的用户名及密码后需要自己从user表里查询有没有用户名和密码符合的对象, 而有了auth模块之后就可以很轻松的去验证用户的登录信息是否存在于数据库中。 除此之外,auth还对session做了一些封装,方便我们校验用户是否已登录 auth里的方法 如果想使用auth模块的方法,必须要先导入auth模块 from django.contrib import auth django.contrib.auth中提供了许多方法,这里主要介
人生不如戏
2018/04/13
1.7K0
Django之auth模块(用户认证)
Django+Vue开发生鲜电商平台之7.用户登录和注册功能
Github和Gitee代码同步更新: https://github.com/PythonWebProject/Django_Fresh_Ecommerce; https://gitee.com/Python_Web_Project/Django_Fresh_Ecommerce。
cutercorley
2020/07/30
4.5K0
Django+Vue开发生鲜电商平台之7.用户登录和注册功能
推荐阅读
相关推荐
rest_framework自定义认证
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验