2. 市场微观结构基础

在短周期预测中,价格不再只是“供需曲线交点”的抽象结果,而是由一笔笔订单的提交、排队、成交与撤单共同塑造的离散事件过程。理解市场微观结构,就是理解这些事件如何在毫秒到分钟级别上改变盘口状态。本节围绕限价订单簿、做市商、流动性、买卖价差与市场深度五个核心概念展开,为后续因子构造打下术语与机制基础。

一、核心原理:限价订单簿是市场的“实时账本”

限价订单簿(Limit Order Book, LOB)是绝大多数电子化交易所的核心数据结构,它按价格档位记录所有未成交的限价买单与限价卖单。买单侧称为买盘(Bid Side),卖单侧称为卖盘(Ask Side)。最优买价(Best Bid)与最优卖价(Best Ask)之间的差额就是买卖价差,二者共同构成最优报价(Top of Book)。

订单簿的更新由三类事件驱动:新增订单(Add)、撤单(Cancel)、成交(Trade/Execution)。每一次事件都会改变某一档位的挂单量,进而改变盘口形状。短周期预测模型所消费的,正是这些事件流经聚合后的状态快照或增量序列。

限价订单簿结构与关键术语 卖盘 Ask Side Ask3 100.06 800 Ask2 100.04 1200 Ask1 100.02 500 Best Ask 100.02 价差 0.02 买盘 Bid Side Best Bid 100.00 Bid1 100.00 700 Bid2 99.98 1500 Bid3 99.96 900 市场深度 = 各档位挂单量之和;价差 = Best Ask − Best Bid

二、方法流程:从订单事件到盘口状态

交易所通常以两种方式对外发布行情:快照(Snapshot)与增量(Incremental/Delta)。快照给出某一时刻完整的前N档订单簿;增量则只推送发生变化的档位。构建可复现的盘口状态,需要按以下流程处理:

  1. 订阅行情:获取增量深度流与逐笔成交流,记录本地时间戳与交易所时间戳。
  2. 状态重建:以快照为基准,按序应用增量更新,维护买卖两侧的价格-数量映射。
  3. 特征聚合:在固定时间窗口(如1秒、5秒)内计算价差、深度、失衡等指标。
  4. 对齐标签:将盘口特征与未来短周期收益或方向标签按时间对齐,避免未来函数。
# 伪代码:增量订单簿状态更新
book = {"bid": {}, "ask": {}}
for event in stream:
    side = event.side          # 'bid' or 'ask'
    price = event.price
    size = event.size
    if size == 0:
        book[side].pop(price, None)   # 撤单
    else:
        book[side][price] = size      # 新增或更新
    best_bid = max(book["bid"]) if book["bid"] else None
    best_ask = min(book["ask"]) if book["ask"] else None
    spread = best_ask - best_bid if best_bid and best_ask else None

三、做市商、流动性与市场深度

做市商(Market Maker)是持续提供双边报价的参与者,其核心收益来自买卖价差与返佣,核心风险来自库存价格波动与逆向选择。做市商通过不断挂单与撤单,为市场提供流动性(Liquidity)——即其他参与者能够以较低成本快速成交的能力。

流动性可从三个维度衡量:

  • 紧度(Tightness):买卖价差越小,立即成交成本越低。
  • 深度(Depth):各档位挂单量越大,大额订单对价格的冲击越小。
  • 弹性(Resiliency):价格受冲击后恢复的速度,反映订单簿的自我修复能力。
术语提示:“市场深度”常指最优报价附近的累计挂单量,例如买一至买五的总量。深度不足时,一笔中等规模市价单就可能吃掉多档,导致成交均价显著偏离盘口。
术语英文含义短周期预测中的用途
最优买价Best Bid买盘中最高价格计算中间价与价差
最优卖价Best Ask卖盘中最低价格计算中间价与价差
买卖价差SpreadBest Ask − Best Bid衡量即时流动性与交易成本
中间价Mid Price(Best Bid + Best Ask)/2作为价格基准与收益计算
订单簿失衡Order Book Imbalance买卖挂单量差异比例预测短期价格方向的核心因子
市场深度Market Depth各档位挂单量总和衡量冲击成本与流动性状态

四、案例/场景与误区复盘

场景:某标的买一价100.00挂700手,卖一价100.02挂500手,价差0.02。此时订单簿失衡为 (700−500)/(700+500)=16.7%,偏向买方。若随后卖一被连续成交且未及时补充,卖一可能上移至100.04,中间价上移,短周期动量因子转正。反之,若买一被大量撤单,价差走阔,流动性恶化,模型应降低仓位或提高预测阈值。

常见误区:
  • 只用最新成交价而忽略盘口状态,导致在价差走阔时仍按低摩擦假设交易。
  • 把“挂单量”直接当作“可成交量”,忽略撤单速度与隐藏订单。
  • 用未来快照计算当前特征,造成前视偏差,回测虚高。
  • 忽略交易所时间戳与本地时间戳的差异,导致事件顺序错乱。

复盘时应重点检查:盘口重建是否与交易所快照一致、价差与深度因子在极端行情下是否稳定、标签对齐是否严格使用“当时可见”的信息。只有把微观结构术语转化为可验证的数据管道,后续的订单簿因子才具备实战意义。