matlab 复权数据,用Pandas计算前复权数据
得到大智慧的除权数据琢磨了好些日子,最后发现还是用Pandas来解决是最便捷的,后复权还没做,先在这里做个笔记,备忘。
以股票600725为例,除权数据赋予变量ea,数据为dataframe格式,结构如下:
present bonus price rationed
date
2016-12-28 10.0 0.00 0.0 0.0
2012-06-04 0.0 0.50 0.0 0.0
2011-05-20 0.0 1.00 0.0 0.0
2010-05-13 8.0 0.23 0.0 0.0
2009-05-15 0.0 2.00 0.0 0.0
2008-04-09 0.0 3.00 0.0 0.0
2007-04-12 0.0 1.00 0.0 0.0
2006-05-22 0.0 1.00 0.0 0.0
2006-02-10 3.5 0.00 0.0 0.0
2005-03-28 5.0 0.50 0.0 0.0
2003-03-26 0.0 2.00 0.0 0.0
2002-04-15 0.0 2.00 0.0 0.0
1997-06-05 0.0 2.00 0.0 0.0
如果做2016年11月1日到12月31日的复权,则对数据做切片:
ea = ea.ix[datetime.datetime(2016,12,31,0,0,0):datetime.datetime(2016,11,1,0,0,0)]
这样除权数据就只剩一条了:
present bonus price rationed
date
2016-12-28 10.0 0.0 0.0 0.0
接着取出2016年11月1日到12月31日期间600725的日K数据赋予变量df,同样是dataframe格式,虽然我这里现在只需要一条除权数据,但做成循环更好一些,拿出每条除权数据去计算。里面再嵌套K线数据的字段循环,完成所有字段的前复权处理:
for key,val in ea.iterrows():
date = key - datetime.timedelta(days=1)
for field in df.columns.values:
if field != 'volume' and field != 'amount':
df.ix[date:,field] -= val.bonus/10
df.ix[date:,field] += val.price*(val.rationed/10)
df.ix[date:,field] /= 1 + val.present/10 + val.rationed/10
PS:交易量和交易金额不需要做复权,所以加了个判断排除掉。后复权公式有点不同,但方法是类似的,方法上需要注意的就是时间切片这个问题。另外我喜欢用数据倒序使用,所以在前复权时key需要减一天,如果是正序是不用的。另在动态的情况下,对于除权数据的切片可以使用K线数据的头尾日期去切片,切完之后再做处理节约计算机资源。
matlab 复权数据,用Pandas计算前复权数据相关推荐
- matlab 主曲线,基于粒计算的复杂数据多粒度主曲线提取算法
引言 主曲线是第一主成分的非线性推广[,第一主成分是对数据集的一维线性最优描述.主曲线通过将高维数据映射到嵌入在高维空间中的低维流形,以一种新的方式表示数据,使数据分析任务更容易.更准确.由主曲线定义 ...
- Python pandas 计算行/列数据之和
import pandas as pd import numpy as np df=pd.DataFrame(np.arange(16).reshape(4,4),columns=["sh& ...
- 当网页数据到达用户计算机时 转换步骤是,当网页数据到达用户计算机时,数据进行转换步骤是()...
的是下列错误说法,当网达用的程宣告序判决关于. ,页数证气血两虚. 阻急性肠梗,据到进行证肠腑热结. 阻急性肠梗,户计证水结湿阻. 别行舶吨舶外国对于香港门特海关已征政区籍船.算机时数据澳收船税的,内 ...
- python逐行读取数据_python – Pandas按行读取数据
通常,数据以列为变量的形式呈现,但是,例如,我在.txt文件中有类似的东西 Data1,1,2,3,4,5 Data2,3,1,4 我可以使用pandas这样的方式构建数据框,就像我从中获得的一样 d ...
- EasyUI的datagrid删除后一页所有数据不自动显示前页数据
今天发现一个关于easyui的问题,一个用datagrid做的列表页面,删除最后一页所有数据后,发现刷新后列表为空,页码仍是这一页,正确的效果应该是加载上一页数据.于是看了代码,发现确认删除是会通过$ ...
- 前复权还是后复权,你真的用对了吗?
提到复权,炒股的小伙伴一定很熟悉.由于股票经常发生派息.配股.分拆或合并等事件,使得股价出现缺口,复权就是用来填补缺口的,分为前复权和后复权两种方法. 前复权保持当前价格不变,对历史价格进行增减,使得 ...
- 【量化交易】股票价格前复权与后复权的区别以及注意事项
时不时就会看到到底是用股票前复权还是后复权价格的讨论,比如下面就是一个很经典的问法: "我用前复权价格计算指标的时候,发现会出现负价格,就没法取log了,应该是分红太多导致的,请问这种怎么处 ...
- matlab如何导入多文本数据,将文本文件中的混合数据导入表
样本文件概述 样本文件 outages.csv 包含表示美国电力中断的数据.文件的前几行如下: Region,OutageTime,Loss,Customers,RestorationTime,Cau ...
- OAF_开发系列03_实现OAF如何在保存前判断数据是否存在变更(案例)
2014-06-26 Created By BaoXinjian 一.摘要 在OAF的开发中,可能有这样的需求,在选择保存按钮时,如果存在改动的数据,则提交事务,保存到数据库中: 如果不存在改动的数据 ...
- 除权、除息、复权、填权、填息、贴权、贴息、含权、含息、前复权、后复权到底什么区别(MD终于明白了用图解释)
除权.除息.复权.填权.填息.贴权.贴息.含权.含息.前复权.后复权到底谁是谁(MD终于明白了) 最常见常用的是复权,复权相关联的本质事件是为了拆股,原来一股10000块一股,很多人买不起啊,所以拆成 ...
最新文章
- 全球及中国制糖行业销售规模与运营态势研究报告2022版
- java fangfa_java 集合
- Mongodb千万级数据在python下的综合压力测试及应用探讨
- 素材网站|设计师下半年的工作流程至少减少了一半...
- springcloud工作笔记105---springboot2.x实现优雅的关闭服务
- java拦截器_Java拦截器
- 在线UTF-8转换成GBK工具
- Java学习之AWT绘图“奥运五环”
- linux格式化后恢复 vmdk恢复,根据flat.vmdk文件恢复磁盘(完善版)
- python12306抢票_Python3.6实现12306火车票自动抢票,并短信和邮件通知
- 懒人如何减肥肚子和腰 减腰腹最好的最快方法
- SSM+社区线上超市购物系统 毕业设计-附源码211704
- TM1637+stm32 HAL库
- CCS使用教程07:曲线图形显示工具
- python中幂运算_python中幂运算
- 02操作符(Operators)操作符
- java获取月末日期_Java获取给定日期的月初和月末两个日期
- MyBatis-plus的批量插入方式对比分析
- Java设计模式 - 建造模式(Builder Pattern)
- 微信小程序之画布绘制并管理多张图片