Senzoukria · 术语表

撮合引擎

撮合引擎是交易所的软件:它持有每只合约的订单簿,按该产品的撮合算法把到达的订单和挂着的订单配对,并把由此产生的成交和订单簿变化发布出去。足迹图、DOM 和热力图上显示的一切,都是这个引擎的输出经由一条行情数据源送到你面前的结果。

更新于 2026 年 9 月首次发布:2026年9月25日

本页目录
  1. 定义
  2. 算例
  3. 从引擎到屏幕
  4. 为什么要紧
  5. 在 Senzoukria 里
  6. 常见错误
  7. 相关内容
  8. 同一栏目
  9. 其他语言版本
  10. 常见问题

定义

芝商所期货的撮合引擎运行 CME Globex,托管在芝商所集团位于伊利诺伊州奥罗拉的数据中心。订单经由下单网关到达,先被校验(价格带、保护、订单类型规则),然后要么成交、要么停进订单簿。每一次变化都会作为执行报告回送给订单的所有者,并作为行情数据发给所有其他人。

同一价位上挂着的那些订单怎么分配一张到达的订单,由该产品的撮合算法决定,并在每只合约的定义里公布:E-mini 股指期货和许多其他产品是先进先出,另一些产品用按比例分配,或者组合式的分步算法,比如先给主做市商一个份额,或者在先进先出和按比例之间分成两段。所以「我排在第几位」这个问题的答案,取决于你交易的是哪个产品。

算例

卖方一侧在 5,000.25 挂 5 手、在 5,000.50 挂 10 手。一张 12 手的市价买单到达。引擎先在 5,000.25 成交 5 手,再在 5,000.50 成交 7 手,5,000.50 上还剩 3 手。

买方的均价是(5 × 5,000.25 + 7 × 5,000.50)÷ 12 = 60,004.75 ÷ 12,约 5,000.40。主动方是买方,最优卖价移到 5,000.50、剩 3 手,而一张足迹图会把这 12 手卖价成交量分摊记在两个价位上——5,000.25 记 5 手、5,000.50 记 7 手。这就是为什么足迹图上一个价位的数字不等于某一张订单的规模。

从引擎到屏幕

  • 引擎按严格的顺序发出事件;数据源给它们编号,这样消费方可以检测到缺口。
  • 交易所的数据源可以按价位报告一次撮合,也可以按每一张被动订单分别报告;数据商可能只转发其中一种。
  • 你的平台收到的是某家数据商的版本,再叠加网络和处理延迟,然后才画出来。
  • 你自己订单的确认和你屏幕上的行情走的是两条不同的路径,到达的先后顺序可能是任意的——确认先到并不代表行情慢了,反之也一样。

为什么要紧

知道引擎是唯一发生成交的地方,能让解读保持诚实:DOM 显示的是它所发布的挂单簿,逐笔成交显示的是它所发布的成交。一个价位在没有成交的情况下消失了,那是在引擎里被撤单或者被隐含订单抵掉了;一笔因为你的数据源滞后而没看到的成交,它在它自己的那一刻确实发生了。

这个原则还有一个实用推论:任何声称能显示「交易所没有发布的东西」的功能,都值得怀疑。订单流软件能做的是把引擎发布的东西重新组织成人能看懂的形状,不能凭空补出引擎没说的部分。

在 Senzoukria 里

软件画的是引擎发布的输出,按它的数据源交付的样子:成交画在足迹图和逐笔成交上,挂着的深度画在 DOM 阶梯和热力图上。它没有任何通往引擎本身的通道;它度量的下单确认延迟——从点击到网关确认——里面包含了券商到引擎的那一段路径。

这也是为什么同一只合约在两个平台上的足迹图可能略有差别:差别不在引擎那边,而在两条数据链路对同一批事件的聚合方式和到达时间上。

常见错误

  • 以为一个平台能显示引擎没有发布过的东西。
  • 在簿很薄的时候,还以为一张市价单会在单一价位上成交。
  • 把自己订单确认的延迟算成行情的延迟,或者反过来。

同一栏目

其他语言版本

常见问题

芝商所的撮合引擎在哪里?
CME Globex 托管在芝商所集团位于伊利诺伊州奥罗拉的数据中心,那里也是主机托管客户放置自己服务器的地方。
撮合引擎知道我是谁吗?
为了发执行报告和执行风控,它知道订单的所有者;但公开的行情数据是匿名的:其他参与者看到的是价格和数量,不是身份。
NEXT

继续阅读