历史逐笔成交数据(historical tick data)
历史逐笔成交数据是过去各个时段被归档下来的逐笔成交记录,由券商、数据商或本地缓存提供,每一笔带时间、价格、手数和方向。它是逐笔重放和订单流规则回测的输入;某个登录账号上有没有它,是与实时逐笔数据分开的一项权限。
Senzoukria · 术语表 · 更新于 2026 年 9 月
它从哪里来
常见的来源有三种。像 Rithmic 这样的券商或清算连接,在账户被授权时可以从自己的归档里提供历史逐笔。像 Databento 这样的数据商按交易所、按产品授权已录制的数据集,实时与历史分开校验。应用本身也可以把实时收到的数据缓存下来,于是今天看过的时段,明天不必再下载一次就能用。
每一种来源各有自己能回溯多远、各有自己的缺口,对主动方也各有自己的约定。一次回测如果在测试窗口内混用了多个来源,就会把这三套差异一并继承下来。
先看覆盖率,再看结果
在一个缺了若干天的窗口上算出来的结果,是另一个窗口的结果,而不是你要的那个。评估一条规则之前,应当先数清实际存在的时段、列出缺失的时段,然后要么把运行限制在已覆盖的区间内,要么把缺口明确标注出来。历史为空并不能证明市场当时没开:它也可能是一次被拒绝的请求、一个回溯不到那么远的归档,或者一个该账户并不持有的合约。
- 列出所请求区间内存在和缺失的时段。
- 请求被拒绝时,把券商的响应码保留下来。
- 每一份结果都记录来源、合约月份和时段边界。
在 Senzoukria 里
Replay 界面逐笔重放过去的某个 CME 时段,首次加载时从券商拉取逐笔,之后保存在磁盘上;界面会显示磁盘上有多少个时段、占用多少空间,单个时段可以删除后重新下载。自动回测在运行之前先度量覆盖率:面板会报告缺了多少个时段,并提供「就用现有的数据跑」的选项。它的提示语区分三种情况:券商在该窗口上没有提供任何 K 线、券商以权限码拒绝了请求、券商没有返回任何逐笔;其中拒绝提示写明——历史 K 线属于券商权限,不是应用里的某个设置。
在连接管理器中,Databento 被列为为回测和重放提供 CME 逐笔历史与深度的来源,按数据集授权,并且是可选项。
常见的错误
- 因为实时数据流能用,就以为归档也包含在内。
- 因为拿不到逐笔,改用 K 线回测一条足迹规则,却仍把结果报告成逐笔级别的结论。
- 忽略换月:历史逐笔属于某个具体的合约月份,把几个月份拼起来是一个必须说明的决定。
相关内容
其他语言版本
常见问题
- 为什么重放能用,自动回测却被拒绝历史?
- 因为两者发出的请求可能不同。手动重放加载的是某一个时段的历史逐笔;自动回测可能请求的是某个区间的历史 K 线,而一个账户完全可能被授权其中一项、没被授权另一项。Senzoukria 的回测面板会指出被拒的是哪种请求以及返回码,好让你拿着它去向券商确认缺的是哪项权限。
- 历史逐笔数据包含订单簿吗?
- 不包含。历史逐笔只有成交:什么被执行了、在什么时间、什么价格和手数、属于哪一侧。挂着的委托及其变化属于历史深度,那是另行授权的数据,而且无法从成交里重建出来。