1967 字
10 分钟

市场微观结构:订单簿、价差与高频视角

本课目标:理解限价单簿的运行机制与价差、深度的含义,认识 tick 级数据的处理量级和订单不平衡等微观结构指标的预测意义,并把高频视角的洞察反哺给低频策略。

限价单簿:价格是怎么形成的#

日线数据把一天压缩成四个价格,而真实的价格形成过程发生在限价单簿(Limit Order Book)里。A 股是典型的订单驱动市场:所有买卖限价单按”价格优先、时间优先”排队,买一是最高买价,卖一是最低卖价,两者之间就是买卖价差。

订单分两类,角色完全不同:

  • 限价单:挂在簿上等待成交,为市场提供流动性,代价是不一定成交、且排队时暴露信息。
  • 市价单(或对价单):立刻吃掉对手方挂单,消耗流动性,代价是支付价差甚至更差的价格。

每一笔成交都是”耐心的挂单者”与”着急的吃单者”的相遇。理解这一点,价格就不再是一条抽象曲线,而是买卖双方排队博弈的实时结果。A 股行情快照还提供买卖各五档或十档的价格与挂单量,这就是大多数研究者能看到的订单簿切面。

价差与深度:流动性的两个维度#

衡量一只股票”好不好交易”,至少要看两个维度:

维度含义对交易的影响
买卖价差卖一价减买一价每次”立即成交”的固定过路费
深度各档位挂单量决定大单会把价格推多远(冲击成本)

价差窄、深度厚的股票,进出成本低;价差宽、深度薄的股票,回测里的”理论收益”很大一部分会被交易本身吃掉。价差从哪来?做市与挂单方要求补偿三类成本:处理订单的固定成本、持有头寸的存货风险,以及最重要的逆向选择成本——挂单者随时可能被”知道得更多的人”成交,价差是他们向全市场收取的保险费。

这解释了一个常见现象:重大消息前后价差会突然放宽、深度变薄——挂单者担心逆向选择,集体后撤。流动性不是常数,而是随信息环境呼吸的变量,且往往在你最需要它的时候消失。

tick 与快照数据:先掂量一下工程量#

从日频转向日内,数据量级完全不同。A 股全市场一天的逐笔成交加逐笔委托有数亿条记录,即便只用三秒一档的行情快照,单日也在数千万行级别。这带来实际的工程约束:

  • 存储要用列式格式(如 Parquet)并按日期、代码分区,CSV 在这个量级不可行。
  • pandas 逐行处理会慢到不可用,需要向量化、分块处理,或换用更高效的计算引擎。
  • 清洗规则完全不同:集合竞价时段、涨跌停封板、快照乱序与丢包,都需要专门处理。
import pandas as pd
def snapshot_features(df: pd.DataFrame) -> pd.DataFrame:
"""从五档快照计算基础微观结构指标"""
out = pd.DataFrame(index=df.index)
out['spread'] = df['ask1'] - df['bid1']
out['mid'] = (df['ask1'] + df['bid1']) / 2
out['rel_spread'] = out['spread'] / out['mid']
bid_vol = df[[f'bid_vol{i}' for i in range(1, 6)]].sum(axis=1)
ask_vol = df[[f'ask_vol{i}' for i in range(1, 6)]].sum(axis=1)
out['order_imbalance'] = (bid_vol - ask_vol) / (bid_vol + ask_vol)
return out

建议在动手前先明确研究目标:是要做日内信号,还是只为低频策略估计交易成本?后者需要的数据量小得多。

订单不平衡与短周期预测#

微观结构研究最经典的发现之一:订单流不平衡(买方主动成交量与卖方主动成交量之差,或买卖盘挂单量之差)对未来极短周期的价格变动有预测力。直觉很朴素——买压大于卖压时,价格短期内更可能上移。

类似的微观结构指标还有:价差变化(信息事件的前兆)、挂单撤单频率(高频参与者的活跃度)、成交在买卖价的分布(主动买卖力量对比)、大单拆分痕迹(机构建仓的脚印)。需要泼的冷水是:这类信号的预测周期通常以秒或分钟计,信号强度随时间快速衰减,只有交易成本和延迟控制到位的参与者才能变现。对普通研究者,它们更大的价值在于理解市场,而非直接构建策略。

A 股高频的现实约束#

把海外高频交易的图景直接搬到 A 股会失真,几个关键约束:

  1. T+1 制度:股票当日买入不能当日卖出,纯日内往返的股票高频策略在现货端基本不成立。日内交易的空间主要在期货、期权和可转债(T+0 品种)。
  2. 交易成本结构:卖出时的印花税加上佣金、经手费,对高换手策略是硬约束。任何高频信号都要在扣除全部成本后重新评估。
  3. 涨跌停与停牌:极端行情下价格被制度截断,流动性瞬间归零,信号与执行都会失真。

这些约束共同决定了:A 股市场上微观结构研究的主要产出,往往不是独立的高频策略,而是执行与成本优化能力。

高频视角对低频策略的启发#

即使你只做周频、月频策略,微观结构视角依然值钱:

  • 成本模型更真实:用价差和深度数据为每只股票建立差异化的成本假设,替代”千分之几一刀切”,小市值股票的回测结论可能因此反转。
  • 执行算法有依据:调仓单拆散到日内、参考成交量分布执行(如 VWAP 思路),减少冲击成本——这直接提升策略净收益,且没有容量代价。
  • 容量估计有抓手:策略能管多大规模,本质由持仓股票的日均成交额和深度决定,微观数据给出定量答案。
  • 信号时点更干净:理解集合竞价与尾盘的特殊性后,你会重新审视用收盘价回测、次日开盘成交之间的裂缝。

本文为方法讨论,不构成投资建议。

本课小结#

  • 价格形成于限价单簿的排队博弈,限价单提供流动性、市价单消耗流动性。
  • 价差与深度是流动性的两个维度,逆向选择成本是价差的核心来源,流动性会在关键时刻收缩。
  • tick 和快照数据的量级要求列式存储与向量化处理,动手前先明确研究目标。
  • 订单不平衡等指标对秒到分钟级价格有预测力,但变现门槛高;T+1 和成本结构限制了 A 股股票端的高频空间。
  • 微观结构对低频策略的最大价值:真实的成本模型、更好的执行和有依据的容量估计。

动手练习:取一只流动性好和一只流动性差的股票各一天的五档快照数据:(1) 计算全天相对价差和五档总深度的时间序列,对比两只股票的日内形态(开盘、午间、尾盘);(2) 计算订单不平衡指标,检验其与未来 1 分钟中间价变动的相关性;(3) 假设你要在 30 分钟内买入 500 万元,基于深度数据粗估两只股票的冲击成本差异。