2. 市场微观结构基础
在短周期预测中,价格不再只是“供需曲线交点”的抽象结果,而是由一笔笔订单的提交、排队、成交与撤单共同塑造的离散事件过程。理解市场微观结构,就是理解这些事件如何在毫秒到分钟级别上改变盘口状态。本节围绕限价订单簿、做市商、流动性、买卖价差与市场深度五个核心概念展开,为后续因子构造打下术语与机制基础。
一、核心原理:限价订单簿是市场的“实时账本”
限价订单簿(Limit Order Book, LOB)是绝大多数电子化交易所的核心数据结构,它按价格档位记录所有未成交的限价买单与限价卖单。买单侧称为买盘(Bid Side),卖单侧称为卖盘(Ask Side)。最优买价(Best Bid)与最优卖价(Best Ask)之间的差额就是买卖价差,二者共同构成最优报价(Top of Book)。
订单簿的更新由三类事件驱动:新增订单(Add)、撤单(Cancel)、成交(Trade/Execution)。每一次事件都会改变某一档位的挂单量,进而改变盘口形状。短周期预测模型所消费的,正是这些事件流经聚合后的状态快照或增量序列。
二、方法流程:从订单事件到盘口状态
交易所通常以两种方式对外发布行情:快照(Snapshot)与增量(Incremental/Delta)。快照给出某一时刻完整的前N档订单簿;增量则只推送发生变化的档位。构建可复现的盘口状态,需要按以下流程处理:
- 订阅行情:获取增量深度流与逐笔成交流,记录本地时间戳与交易所时间戳。
- 状态重建:以快照为基准,按序应用增量更新,维护买卖两侧的价格-数量映射。
- 特征聚合:在固定时间窗口(如1秒、5秒)内计算价差、深度、失衡等指标。
- 对齐标签:将盘口特征与未来短周期收益或方向标签按时间对齐,避免未来函数。
# 伪代码:增量订单簿状态更新
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 | 卖盘中最低价格 | 计算中间价与价差 |
| 买卖价差 | Spread | Best 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,中间价上移,短周期动量因子转正。反之,若买一被大量撤单,价差走阔,流动性恶化,模型应降低仓位或提高预测阈值。
- 只用最新成交价而忽略盘口状态,导致在价差走阔时仍按低摩擦假设交易。
- 把“挂单量”直接当作“可成交量”,忽略撤单速度与隐藏订单。
- 用未来快照计算当前特征,造成前视偏差,回测虚高。
- 忽略交易所时间戳与本地时间戳的差异,导致事件顺序错乱。
复盘时应重点检查:盘口重建是否与交易所快照一致、价差与深度因子在极端行情下是否稳定、标签对齐是否严格使用“当时可见”的信息。只有把微观结构术语转化为可验证的数据管道,后续的订单簿因子才具备实战意义。