2. 数据基础
历史数据回放与规则策略仿真的可信度,首先取决于数据基础是否扎实。很多策略在回测中表现优异,实盘却迅速失效,根源往往不在规则逻辑,而在数据本身:类型选错、来源混淆、频率错配、字段理解偏差,或数据质量未经验证。本节围绕数据类型、来源、频率、字段含义与质量评估五个维度,建立可落地的数据基础方法论。
一、核心原理:数据是仿真的“物理约束”
回放仿真的本质,是在历史时间轴上重演信息到达与决策执行的过程。数据在这里不是背景素材,而是约束条件:它决定了策略能看到什么、何时看到、以什么精度看到。因此,数据基础的核心原理可以概括为三点:
- 时序一致性:任何字段都必须带有明确的时间语义,包括事件时间、采集时间与可用时间。若忽略“可用时间”,就会引入未来函数。
- 粒度匹配性:策略决策频率与数据频率必须匹配。用日频数据仿真日内规则,或用逐笔数据仿真周频调仓,都会造成失真。
- 语义可解释性:字段含义必须可追溯、可验证。价格是成交价还是中间价?成交量是单边还是双边?这些差异会直接改变策略盈亏。
关键判断:在回放系统中,数据质量问题的破坏力通常大于规则逻辑错误。因为逻辑错误容易通过复盘发现,而数据错误往往被“合理”的盈亏结果掩盖。
二、数据类型、来源与频率:建立数据地图
金融与业务数据可按结构分为三类:结构化数据(行情、财务、订单表)、半结构化数据(日志、JSON报文、公告文本)、非结构化数据(新闻、研报、语音)。回放仿真主要依赖结构化数据,但半结构化数据常用于事件驱动规则。
按来源划分,常见包括:交易所行情、券商柜台、第三方数据商、企业内部业务系统、公开网络数据。不同来源的可靠性与延迟差异显著,必须在数据字典中标注。
频率方面,从低到高依次为:低频(日、周、月)、中频(分钟、小时)、高频(秒级、逐笔、快照)。频率越高,数据量越大,对存储与回放引擎的要求也越高。
| 数据类别 | 典型来源 | 常见频率 | 回放关注点 |
|---|---|---|---|
| 行情快照 | 交易所、数据商 | 3秒、1秒、逐笔 | 时间戳对齐、买卖盘口重建 |
| 成交明细 | 交易所 | 逐笔 | 成交方向、撤单识别 |
| 财务数据 | 上市公司公告 | 季度、年度 | 公告可用时间、追溯调整 |
| 业务订单 | 企业内部系统 | 实时、日批 | 状态流转、字段口径 |
| 宏观指标 | 统计部门、数据商 | 月、季 | 发布延迟、修订版本 |
三、字段含义:从“有数据”到“懂数据”
字段含义是数据基础中最容易被低估的环节。以行情数据为例,同一列“price”可能是最新成交价、买一价、卖一价或中间价;同一列“volume”可能是单边成交量或双边成交量。若不在数据字典中明确,回放结果将不可比。
建议为每个字段建立最小元数据描述,至少包含:字段名、业务含义、数据类型、单位、精度、空值规则、时间语义、来源系统。例如:
字段名: last_price
业务含义: 最新成交价
数据类型: decimal(18,4)
单位: 元
空值规则: 集合竞价前为空
时间语义: 交易所事件时间
来源系统: 交易所行情网关
在规则策略中,字段含义直接影响信号计算。例如“涨跌幅”若基于前收盘价,需确认前收盘是否经过除权调整;“换手率”若基于流通股本,需确认股本数据是否为最新。任何口径不一致,都会在回放中放大为系统性偏差。
四、数据质量评估方法:可执行的检查清单
数据质量评估不是一次性工作,而应嵌入数据接入与回放前准备流程。推荐从完整性、准确性、一致性、时效性、唯一性五个维度展开,并形成可自动化的检查清单:
- 完整性:检查时间序列是否存在缺口,字段空值率是否超过阈值。
- 准确性:抽样比对不同来源,验证价格、数量是否在合理区间。
- 一致性:检查同一实体在不同表中的编码、口径是否统一。
- 时效性:验证数据到达时间是否晚于策略可用时间,避免未来函数。
- 唯一性:检查主键是否重复,防止回放时重复触发规则。
实操建议:将质量检查脚本化,每次回放前自动运行,输出质量报告。报告应包含异常记录数、异常比例、影响范围与建议处理方式。
常见误区:只检查“有没有数据”,不检查“数据对不对、什么时候可用”。很多回测中的“稳定盈利”,其实来自使用了未来才发布的数据。
五、案例与复盘:一次频率错配导致的仿真失真
某团队用日频收盘价回放日内突破规则,结果回测收益极高。复盘发现:规则在日内触发,但回放引擎只在每日收盘时读取价格,导致所有触发都被延迟到收盘执行,实际成交价与真实盘中价格严重偏离。修正方法是引入分钟级行情,并按事件时间逐笔推进。修正后收益大幅回落,但更接近真实。
该案例说明:数据基础不是“准备数据”这么简单,而是要与规则的时间语义严格对齐。频率、字段、来源三者必须形成闭环验证。
回放前检查命令示例:
python check_data_quality.py \
--input data/market_1min.csv \
--time-col timestamp \
--price-col last_price \
--volume-col volume \
--report reports/quality_report.json
综上,数据基础决定了回放仿真的上限。建立清晰的数据地图、严格的字段字典与自动化的质量评估流程,是后续规则策略仿真可信的前提。