2. 市场微观结构基础
在撮合队列位置与成交概率建模中,所有模型都建立在一个共同的地基之上:市场微观结构。它描述的是订单如何进入市场、如何排队、如何被撮合,以及价格和数量如何在毫秒级别发生变化。如果忽略微观结构,成交概率模型很容易退化为“用历史成交频率做统计”,无法解释为什么同一价位的两笔订单成交速度差异巨大。
一、核心原理:订单簿是市场的实时状态机
订单簿(Order Book)是交易所维护的、按价格优先和时间优先排序的买卖订单集合。它通常分为买方(Bid)和卖方(Ask)两侧,每一侧包含若干价格档位,每个档位下挂有若干订单。订单簿的本质是一个状态机:新订单进入、旧订单撤销、成交发生后,状态都会变化。
限价单(Limit Order)指定价格和数量,进入订单簿后排队等待成交。它提供流动性,但面临“排队靠后无法成交”的风险。市价单(Market Order)只指定数量,不指定价格,立即与对手方最优价格成交。它消耗流动性,成交确定性强,但面临滑点风险。
买卖价差(Spread)是最优买价与最优卖价之差,是衡量即时交易成本的核心指标。价差越窄,市场流动性通常越好。流动性(Liquidity)则是一个多维概念:能否快速成交、成交价格是否偏离、大额交易是否显著影响价格。市场深度(Market Depth)描述在某一价格附近可承接的订单总量,深度越厚,大单冲击成本越低。
二、方法流程:从订单到成交的微观链路
理解微观结构后,我们可以把一笔限价单的成交过程拆解为可建模的步骤:
- 订单进入:限价单到达交易所,按价格优先、时间优先插入对应价位队列尾部。
- 队列排队:订单在队列中的位置由前方订单数量和自身到达时间决定。位置越靠前,被优先撮合的概率越高。
- 对手方到达:市价单或可成交限价单到达,与最优价位队列头部订单撮合。
- 部分成交或全部成交:若对手方数量小于队列头部订单量,则部分成交,剩余继续排队;若足够大,则依次吃掉多个订单。
- 撤单与重排:前方订单撤销会改善队列位置,但撤单本身也传递了市场信息。
建模关键:成交概率不是只由价格决定,而是由“价格 + 队列位置 + 对手方到达强度 + 撤单率”共同决定。队列位置是其中最容易量化、也最容易被忽略的变量。
三、案例/场景:同一价位的两种命运
假设某股票当前最优买价为 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%,队列位置变化极快,静态历史统计会严重高估或低估成交概率。
复盘时,建议把订单簿快照、逐笔成交和逐笔委托对齐到同一时间轴,观察“队列位置变化 → 成交事件”的对应关系。只有把微观结构变量显式纳入模型,后续的撮合队列位置建模和成交概率预测才有可靠基础。