一、协议基础认知:逐笔委托是什么?为什么需要逐笔协议?与快照数据的核心区别

大家好,我是你们这门课的老朋友。今天咱们聊聊最基础、也最容易被忽视的问题——逐笔委托协议到底是什么玩意儿。

说实话,我刚入行那会儿,也以为交易所的数据就是「行情软件上那些红红绿绿的数字」。直到第一次被老板叫去排查一个「盘口数据对不上」的线上问题,我才发现,原来我们平时看到的那些行情,背后藏着另一套完全不同的数据体系。

1.1 逐笔委托:最原始的「交易流水」

逐笔委托,说白了就是交易所系统里,每一笔订单的原始记录。

你想想看,当你在交易软件上点下「买入」按钮,这个指令会变成一条消息,发送到交易所的撮合引擎。这条消息长什么样?它包含了:

  • 委托方向:买还是卖
  • 委托价格:你愿意出多少钱
  • 委托数量:你想买多少股
  • 委托时间:精确到微秒的时间戳
  • 委托编号:交易所给这笔订单的唯一身份证

嗯,这就是逐笔委托。它记录的是「谁、在什么时候、想以什么价格、买卖多少」。每一笔都是独立的、原始的、未经加工的。

核心要点:逐笔委托 = 交易所撮合引擎的「输入」数据。它是所有行情数据的源头。

1.2 为什么需要逐笔协议?

你可能会问:「我平时看行情软件,K线图、五档盘口不都好好的吗?干嘛还要搞个逐笔协议?」

这个问题问得好。我当年也这么想过。

后来我在一家量化私募做系统对接时,发现一个现象:同样的股票,不同行情软件显示的「最新成交价」偶尔会差那么一两分钱。为什么?因为快照数据是「抽样」的,而逐笔数据是「全量」的。

逐笔协议存在的理由,主要有三点:

  1. 还原真实交易过程:快照只能告诉你「当前时刻的盘口长什么样」,但逐笔能告诉你「盘口是怎么变成这样的」。每一笔订单的进入、撤单、成交,都有迹可循。
  2. 高频交易的基础:做高频策略的人,需要知道每一微秒的订单流变化。快照数据更新频率再高(比如3秒一次),也远远不够。逐笔数据才是他们的「石油」。
  3. 数据一致性校验:我在项目中遇到过,某次行情源出了问题,快照数据里的「总成交量」和逐笔累加出来的对不上。如果没有逐笔数据做交叉验证,这种bug根本发现不了。

我的经验:如果你只做日频或分钟级策略,快照数据可能够用。但一旦涉及日内高频、订单流分析、市场微观结构研究,逐笔协议就是绕不开的坎。

1.3 逐笔委托 vs 快照数据:核心区别

这里我画了一张图,帮你直观理解两者的关系。

逐笔委托 vs 快照数据:核心区别 逐笔委托(Tick-by-Tick) 📝 数据粒度:每一笔订单 ⏱️ 更新频率:微秒级 📊 数据量:极大(每日数GB) 🔍 用途:订单流分析、高频策略 ✅ 特点:全量、原始、不可逆 快照数据(Snapshot) 📝 数据粒度:某一时刻的盘口 ⏱️ 更新频率:秒级(通常3秒) 📊 数据量:较小(每日MB级) 🔍 用途:行情展示、低频策略 ✅ 特点:聚合、加工、可压缩 快照数据 = 逐笔委托经过撮合引擎「加工」后的结果

这张图其实已经说得很清楚了。我再补充几个关键点:

对比维度 逐笔委托 快照数据
数据本质 原始订单流 盘口状态快照
更新方式 事件驱动(有订单就推送) 定时推送(固定间隔)
信息含量 包含所有订单的完整信息 只包含聚合后的买卖盘口
延迟要求 极低(微秒级) 较低(毫秒级即可)
典型协议 STEP、Binary、自定义二进制 FIX、MDH、UDP组播
解析难度 高(需要处理乱序、重传) 低(结构固定)

避坑指南:我曾经接手过一个项目,对方用快照数据做高频回测,结果策略在实盘时完全失效。原因就是快照数据丢失了「订单簿中间状态」——比如一笔大单撤单导致的价格跳跃,快照根本捕捉不到。逐笔数据才能还原这些细节。

1.4 一个简单的例子帮你理解

假设某只股票当前盘口是这样的:

  • 买一:10.00元,1000股
  • 卖一:10.01元,500股

这时候来了一笔逐笔委托:

委托编号:202410010001
委托方向:买入
委托价格:10.01元
委托数量:600股
委托时间:09:30:00.123456

这笔订单进入撮合引擎后,会发生什么?

  • 它会和卖一的500股成交,成交价10.01元
  • 剩下的100股变成新的买一,价格10.01元
  • 盘口状态发生变化

快照数据只会告诉你「09:30:03秒时,买一变成了10.01元,100股」。但逐笔数据告诉你:这100股是怎么来的——它是一笔600股的买入订单,先成交了500股,剩下的100股挂在了盘口上。

你看,这就是区别。快照告诉你「是什么」,逐笔告诉你「为什么」。

1.5 实际开发中要注意什么

嗯,聊到这里,我想给你几个实用的建议:

  1. 不要用快照数据反推逐笔:我见过有人试图从连续的快照数据中「还原」订单流,结果误差大得离谱。快照之间的订单变化是不可知的。
  2. 逐笔数据需要做时序对齐:不同交易所的逐笔协议,时间戳精度可能不同。有的精确到微秒,有的只到毫秒。做跨市场分析时,这个坑一定要填。
  3. 数据量是硬伤:A股一天的逐笔数据,压缩后大概几百MB到几个GB。你的存储和带宽要提前规划好。

我的习惯:在项目初期,我会先用快照数据做原型验证。等逻辑跑通了,再切换到逐笔数据做精细化分析。这样既能快速迭代,又能保证最终精度。

好了,这一章的内容就到这里。逐笔委托协议是后续所有章节的基础,理解它和快照数据的区别,能帮你少走很多弯路。下一章,我们会深入具体的协议格式,看看这些二进制数据到底是怎么组织的。


专注资料整理