数据:模型吃进去什么,往往比模型名字更重要

同一个因子公式,如果一份数据偷偷用了后来修订的财报,另一份只保留今天还上市的公司,最后的“研究结果”可能差得离谱。数据工作不是下载 CSV 那一刻结束,而是从确认来源、时间和样本边界开始。

约 14 分钟AI 量化交易初探 · 第 3 课核心:数据完整性
数据库、时钟和单据表示数据来源、时间与版本
学习目标
  • 区分价格、订单簿、基本面和新闻数据记录的不同信息
  • 理解事件时间、发布时间、抓取时间和修订时间不能混用
  • 识别幸存者偏差和前视偏差
  • 理解可访问数据与允许使用数据是两回事
能下载不等于能直接回测

股价一天“暴跌 50%”,但其实只是拆股,你的策略会看到什么?

复权价格会根据拆股、分红等公司行动调整历史序列,使跨期收益比较更接近经济上的连续变化。忽略这些处理,回测会把公司行动误认成市场行情。

Data Debugging Lab

策略突然回测 +300%,先别庆祝:找数据问题

下面六条记录都“像正常数据”。逐条判断最可能的问题。真实研究里,时区、缺失K线、拆股、未复权、陈旧报价和单位错误都可能制造虚假的收益。

2026-03-09 09:30,策略把这一根当成北京时间开盘第一根。

这条记录最值得先查什么?

分钟序列 10:14 后直接跳到 10:17,但系统按连续三根K线计算。

这条记录最值得先查什么?

某股一夜从 120 变 12,成交量同步放大约10倍。

这条记录最值得先查什么?

15:58、15:59、16:00 三个时间点的报价完全相同,且 source timestamp 停在15:57。

这条记录最值得先查什么?

黄金一列写 4350,另一列写 139.9,系统直接相减。

这条记录最值得先查什么?

日线序列有明确交易日、时区、复权字段和source timestamp。

这条记录最值得先查什么?

排错正确: 0/6

数据 QA 应该在策略表现之前。一个异常漂亮的回测首先是排错信号,而不是先宣布发现 alpha。

先问它到底记录什么

K 线、订单簿、财报和新闻,都是“数据”,但回答的问题完全不同

K 线

时间区间的价格摘要

开高低收把中间路径压缩掉,不能替代逐笔成交。

订单簿

某一瞬间的可见挂单

下一秒可能撤单或移动,不等于未来可成交数量。

基本面

公司在特定报告期和发布时间披露的信息

后来可能修订或重述,历史研究必须知道当时版本。

新闻

带来源和发布时间的文本事件

发布时间和数据库抓取时间不同,不能提前使用还没公开的内容。

过去只能知道当时知道的事

今天看到的“历史数据”,不一定是历史当时真的能看到的版本

公司可能后来重述财务数据,指数成分会变化,经济数据也会修正。如果用今天整理好的最终版本回测多年前的决策,就可能无意中把未来信息塞回过去。

时间含义
事件时间事情实际发生或对应的报告期
发布时间市场第一次可以知道这条信息的时刻
抓取时间你的系统什么时候取得数据
修订时间后来什么时候改变了原始值
幸存者偏差

只研究今天还活着的公司,会让历史世界看起来比真实世界更漂亮

假设十年前有 120 家公司,其中 20 家后来破产、退市或被剔除。如果今天的数据接口只返回剩下的 100 家,再拿它们回测十年前,就把一批失败者从历史里删掉了。这就是典型的幸存者偏差。

没有元数据就很难复现

来源、许可、时间、版本、字段和样本范围要一起保存

  1. 1来源与许可谁提供、从哪里取得、允许用于什么。公开可见不等于可以任意抓取或再分发。
  2. 2时间与版本发布时间、抓取时间、修订记录和数据快照版本。
  3. 3字段口径时区、币种、复权、单位、频率、标识符和缺失值处理。
  4. 4样本边界纳入、排除、退市和无法获取的对象都要有记录。
知识检测

检验你是否真正理解

只检验数据来源、时间和样本偏差。

第 1 题,共 3 题

用今天修订后的财务数据去模拟修订前的历史决策,主要有什么风险?

第 2 题,共 3 题

只用今天仍上市的公司回测过去,最可能出现什么问题?

第 3 题,共 3 题

网页数据无需登录即可查看,能否直接推出可以任意抓取和再分发?

认识你的学伴

卡住了?让 Mira 帮你拆解

正在检查登录状态...