2. 市场微观结构基础

在撮合队列位置与成交概率建模中,所有模型都建立在一个共同的地基之上:市场微观结构。它描述的是订单如何进入市场、如何排队、如何被撮合,以及价格和数量如何在毫秒级别发生变化。如果忽略微观结构,成交概率模型很容易退化为“用历史成交频率做统计”,无法解释为什么同一价位的两笔订单成交速度差异巨大。

一、核心原理:订单簿是市场的实时状态机

订单簿(Order Book)是交易所维护的、按价格优先和时间优先排序的买卖订单集合。它通常分为买方(Bid)和卖方(Ask)两侧,每一侧包含若干价格档位,每个档位下挂有若干订单。订单簿的本质是一个状态机:新订单进入、旧订单撤销、成交发生后,状态都会变化。

限价单(Limit Order)指定价格和数量,进入订单簿后排队等待成交。它提供流动性,但面临“排队靠后无法成交”的风险。市价单(Market Order)只指定数量,不指定价格,立即与对手方最优价格成交。它消耗流动性,成交确定性强,但面临滑点风险。

买卖价差(Spread)是最优买价与最优卖价之差,是衡量即时交易成本的核心指标。价差越窄,市场流动性通常越好。流动性(Liquidity)则是一个多维概念:能否快速成交、成交价格是否偏离、大额交易是否显著影响价格。市场深度(Market Depth)描述在某一价格附近可承接的订单总量,深度越厚,大单冲击成本越低。

订单簿结构与撮合关系示意 买方 Bid(提供流动性) Bid 100.02 × 800 队列位置 1 Bid 100.01 × 1500 队列位置 2 Bid 100.00 × 3000 队列位置 3 Bid 99.99 × 5000 深度更厚 卖方 Ask(消耗流动性) Ask 100.03 × 600 最优卖价 Ask 100.04 × 1200 第二档 Ask 100.05 × 2500 第三档 Ask 100.06 × 4000 深度更厚 价差 0.01 市价买单吃掉 Ask 100.03 队列

二、方法流程:从订单到成交的微观链路

理解微观结构后,我们可以把一笔限价单的成交过程拆解为可建模的步骤:

  1. 订单进入:限价单到达交易所,按价格优先、时间优先插入对应价位队列尾部。
  2. 队列排队:订单在队列中的位置由前方订单数量和自身到达时间决定。位置越靠前,被优先撮合的概率越高。
  3. 对手方到达:市价单或可成交限价单到达,与最优价位队列头部订单撮合。
  4. 部分成交或全部成交:若对手方数量小于队列头部订单量,则部分成交,剩余继续排队;若足够大,则依次吃掉多个订单。
  5. 撤单与重排:前方订单撤销会改善队列位置,但撤单本身也传递了市场信息。

建模关键:成交概率不是只由价格决定,而是由“价格 + 队列位置 + 对手方到达强度 + 撤单率”共同决定。队列位置是其中最容易量化、也最容易被忽略的变量。

三、案例/场景:同一价位的两种命运

假设某股票当前最优买价为 100.00,队列中有三笔订单:A 在 09:30:00.100 到达,数量 1000;B 在 09:30:00.150 到达,数量 2000;C 在 09:30:00.200 到达,数量 1500。此时 C 排在队列第三位。

接下来 10 秒内,共有 1800 股市价卖单到达。撮合按时间优先进行:A 全部成交 1000 股,B 成交 800 股,C 成交 0 股。C 虽然价格相同,但因为队列位置靠后,成交概率显著低于 A 和 B。

如果此时 A 撤销了剩余订单,C 的位置会前移,成交概率随之上升。这说明队列位置是动态变化的,建模时必须考虑撤单事件。

订单 到达时间 数量 初始队列位置 10秒内成交 原因
A 09:30:00.100 1000 1 1000 队列最前,优先撮合
B 09:30:00.150 2000 2 800 部分成交,剩余继续排队
C 09:30:00.200 1500 3 0 对手方数量不足,未轮到

四、误区/复盘:常见理解偏差

误区一:把买卖价差等同于交易成本。价差只是显性成本,大额交易还会产生冲击成本,实际成本可能远高于价差。

误区二:认为深度厚就一定好成交。深度厚只说明可承接量大,但如果你的订单排在队列尾部,仍然可能长时间不成交。

误区三:忽略撤单率。高频环境中,撤单率可能超过 90%,队列位置变化极快,静态历史统计会严重高估或低估成交概率。

复盘时,建议把订单簿快照、逐笔成交和逐笔委托对齐到同一时间轴,观察“队列位置变化 → 成交事件”的对应关系。只有把微观结构变量显式纳入模型,后续的撮合队列位置建模和成交概率预测才有可靠基础。