news 2026/10/11 16:21:37

一、Python量化交易入门:用Pandas做数据清洗与复权处理

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一、Python量化交易入门:用Pandas做数据清洗与复权处理

一、这篇解决什么问题

做量化研究,最枯燥、最不能省的一步是数据清洗。

股票分红、送股、配股会让价格出现向下的跳空,看起来像暴跌,实际只是除权。停牌日数据缺失,直接参与计算会污染因子。异常值不处理,模型会学到错误规律。

本文把 A 股数据最常见的四类问题——复权、停牌、缺失值、异常值——的处理方法整理清楚,每条给出代码实现。读完你可以得到:

  • 一份清洗干净的日频数据
  • 一份数据质量报告
  • 一个可复用的清洗脚本

二、复权:最重要的一件事

2.1 什么是复权

股票分红、送股、配股后,股价会向下调整。如果不处理,价格曲线会出现一个向下的跳空,看起来像暴跌,实际只是除权。

举个例子:

某股票前一日收盘 10 元,每 10 股派 5 元现金。除息日理论开盘价变成 9.5 元。如果你用不复权数据算收益率,会得到 -5% 的假信号。

2.2 三种复权方式

类型含义适用场景
不复权原始成交价看真实成交价格、算手续费
前复权以当前价格为基准,调整历史价格回测首选
后复权以上市首日为基准,调整后续价格长期收益分析

为什么回测用前复权:前复权保持了最新价格和真实价格一致,同时消除了除权跳空,收益率计算连续。

2.3 代码示例

importakshareasak# 前复权df_qfq=ak.stock_zh_a_hist(symbol="600519",period="daily",start_date="20200101",end_date="20241231",adjust="qfq")# 后复权df_hfq=ak.stock_zh_a_hist(symbol="600519",period="daily",start_date="20200101",end_date="20241231",adjust="hfq")# 不复权df_raw=ak.stock_zh_a_hist(symbol="600519",period="daily",start_date="20200101",end_date="20241231",adjust="")

2.4 复权的坑

  • 不同数据源的复权算法可能不同,同一只股票在两个平台的前复权价格可能有细微差异。回测时固定用一个数据源。
  • 前复权价格会随最新价格变化,今天下载的前复权数据和一个月后下载的,历史价格可能不一样。所以要么每次重新下载全量,要么存原始数据自己算复权。
  • 成交量不需要复权,只有价格需要。

三、停牌处理

3.1 停牌的表现

停牌期间,数据源可能:

  • 直接没有该日期的记录
  • 有记录但成交量为 0
  • 有记录且价格等于停牌前价格

3.2 处理原则

回测时:

  • 停牌日不能交易,买入信号遇到停牌应顺延到复牌日
  • 停牌日不应参与因子计算(否则 rolling 窗口会被污染)
  • 持仓股票停牌期间,仓位保持不变
# 标记停牌:成交量为0df['is_suspended']=(df['volume']==0)# 停牌日不生成信号df.loc[df['is_suspended'],'signal']=np.nan df['signal']=df['signal'].ffill()

3.3 长期停牌的处理

如果一只股票停牌超过一定天数(比如 20 个交易日),建议直接从股票池剔除,因为复牌后往往有大幅补涨或补跌,会干扰策略。

四、缺失值处理

4.1 缺失值的来源

  • 新股上市初期,均线等指标算不出来
  • 停牌日
  • 数据源本身的问题
  • 多数据源合并时的对齐问题

4.2 处理方式对比

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/10/11 16:21:16

银行卡号识别:模板匹配在金融图像处理中的工程实践

简介:本资源是一个基于OpenCV-Python实现的银行卡号识别实战项目,面向计算机相关专业学生(如软件工程、人工智能、电子信息等)及课程设计、毕业设计实践者,解决银行卡图像中数字区域定位与模板匹配识别的核心问题。压缩…

作者头像 李华
网站建设 2026/10/11 16:20:01

达梦DM8 API工程实践:跨语言ABI兼容与运行时避坑指南

简介:本资源是达梦数据库DM8官方《开发者手册:编程指南与API特性详解》,面向具备数据库基础、需深度掌握国产数据库开发能力的中高级开发者,聚焦企业级应用构建、高可靠后台服务开发及数据库交互性能优化等核心场景。手册系统覆盖…

作者头像 李华
网站建设 2026/10/11 16:19:55

SQL Server 2008 安装语言不匹配终极解决方案

简介:本资源是一份针对SQL Server 2008 R2安装过程中常见报错“setup media does not support the language of the OS”的深度排错指南,面向数据库初学者、系统运维人员及企业IT部署工程师。文档不仅指出常规的“控制面板→区域和语言→格式设为英语&am…

作者头像 李华
网站建设 2026/10/11 16:19:12

Spring Boot+Vue共享汽车租赁平台:数据库到部署的完整实战解析

Spring Boot Vue 共享汽车租赁平台是我在实践中梳理过比较完整的一套毕设级项目,源码、文档、调试、基础修改、答疑这一整套服务都有涉及。如果你正在选型做类似的项目,或者已经有了这套代码但不知道怎么快速上手,这篇文章应该能帮你少走不少…

作者头像 李华
网站建设 2026/10/11 16:18:32

Sherlock工业视觉平台:拖拽式流水线与产线级标定实战

简介:本资源是一份面向自动化检测工程师、机器视觉初学者及工业现场技术人员的Sherlock机器视觉软件入门教学课件,聚焦于零代码图形化开发场景下的核心功能实践与界面操作逻辑。课件系统讲解了Landmark位置标定、Calibration刻度校准、Search区域搜索及C…

作者头像 李华
网站建设 2026/10/11 16:16:22

ob10实战:从TNS配置到批量巡检的Oracle连接工具指南

简介:这款轻量级Oracle连接与管理工具采用免安装压缩包形式,解压即可运行,适合数据库开发、测试和运维人员在日常工作中快速连接数据库、执行查询以及完成数据导入导出。工具整体界面比较直观,操作逻辑贴近常见数据库客户端&#…

作者头像 李华