2. 订单簿与市场微观结构:限价订单簿(L2/L3)、买卖盘口、价差与深度、订单簿动态变化

做市策略的核心,说白了就是跟订单簿打交道。

你想想看,我们做市商赚的是什么钱?赚的是买卖价差,赚的是流动性提供者的返佣。但这一切的前提,是你得先看懂订单簿这个「战场地图」。我个人习惯把订单簿比作一个实时更新的拍卖场——有人在喊价买入,有人在喊价卖出,而做市商就是那个站在中间不断调整报价的「庄家」。

2.1 限价订单簿:市场的「实时账本」

限价订单簿(LOB),就是交易所维护的一个电子账本。它记录了所有交易者挂出的限价单——也就是那些「我愿意在这个价格买/卖,但我不着急成交」的订单。

我刚开始做量化的时候,总觉得订单簿就是简单的买一卖一。后来踩过坑才发现,L2和L3的数据深度完全不同。

L2 vs L3 的区别:
  • L2(Level 2):显示每个价格档位的聚合总量。比如买一价100元挂了1000股,买二价99.9元挂了2000股。你看不到具体是谁在挂单。
  • L3(Level 3):显示每一笔独立订单的详细信息。你能看到某个价格上有3个不同的交易者各挂了500股。这在做市策略中非常关键——你可以识别出「大单」和「小散」的行为模式。

我记得有一次做回测,用的L2数据,策略表现很好。但实盘一跑就亏钱。后来排查发现,L2的聚合数据掩盖了「冰山订单」的存在——一个大户把1万股拆成10个1000股挂在同一个价位,L2看起来只是1万股,但L3能告诉你这是10个独立订单。嗯,这里要注意,如果你的策略依赖订单簿的微观特征,尽量用L3数据。

2.2 买卖盘口:做市商的「前线阵地」

买卖盘口,就是订单簿上最靠近当前成交价的那些价格档位。通常我们关注的是买一到买五,卖一到卖五。

为什么做市商特别关注盘口?因为你的报价就挂在这里。你挂的买单在买一,卖单在卖一,你的利润就来自这两个价格之间的价差。

盘口分析的核心指标:
  • 买卖盘口厚度:买一和卖一各自挂了多少量。厚度越大,说明这个价位的支撑/阻力越强。
  • 盘口失衡:买盘总量 vs 卖盘总量。如果买盘明显大于卖盘,价格大概率要涨。反之亦然。
  • 价差宽度:卖一价 - 买一价。价差越窄,市场流动性越好。

我曾经在回测中犯过一个低级错误:只看了买一卖一的价差,没看盘口厚度。结果策略在盘口很薄的时候频繁成交,滑点大得吓人。后来我加了一个条件——只有当买一和卖一的挂单量都超过某个阈值时,才启动做市。效果立竿见影。

2.3 价差与深度:流动性的「温度计」

价差和深度,是衡量市场流动性的两个核心维度。

  • 价差(Spread):卖一价 - 买一价。价差越小,说明买卖双方的价格分歧越小,流动性越好。做市商的利润空间也越小。
  • 深度(Depth):在某个价格附近能成交多少量。深度越深,说明市场能吸收大额订单而不引起价格剧烈波动。

我习惯用「流动性热力图」来观察这两个指标。比如在BTC/USDT交易对中,价差可能在0.01%以内,但深度可能只有几十个BTC。而在ETH/USDT中,价差可能稍大,但深度能达到几百个ETH。不同品种的做市策略,参数设置完全不同。

避坑指南: 我曾经在回测中直接用「平均价差」作为策略参数,结果实盘时遇到极端行情,价差瞬间扩大10倍,策略直接爆亏。后来我改用「价差的滚动分位数」——比如取过去100笔交易的价差90分位数作为风控阈值。这样能更好地应对市场波动。

2.4 订单簿动态变化:捕捉「市场心跳」

订单簿不是静止的。每一秒都有新的订单进来,旧的订单被撤掉,或者成交。做市商必须实时感知这些变化,并快速调整自己的报价。

我个人把订单簿的动态变化分为三类:

  1. 订单到达:新的限价单进入订单簿。这会影响盘口的厚度和价差。
  2. 订单撤销:交易者撤单。这往往是市场情绪变化的信号——比如大量买单被撤,可能意味着多头在撤退。
  3. 订单成交:市价单吃掉限价单。这是最直接的「价格发现」过程。

我常用的一个技巧是监控「订单簿的斜率变化」。具体来说,就是计算买盘和卖盘在不同价格档位的累积量变化率。如果卖盘的斜率突然变陡,说明卖压增大,我会考虑缩小卖单的价差,或者暂时撤单观望。

下面是我画的一张订单簿动态变化示意图,帮你直观理解这个过程:

订单簿动态变化示意图 价格 买一 1000 买二 2000 买三 3000 卖一 800 卖二 1500 卖三 2500 价差 = 卖一价 - 买一价 新订单到达 → 盘口厚度变化 订单撤销 → 盘口结构变化 订单成交 → 价格变动 绿色:买盘 | 红色:卖盘 | 柱高代表挂单量

2.5 实战中的订单簿分析框架

说了这么多理论,来点实际的。我平时做订单簿分析,会按以下步骤来:

我的订单簿分析流程:
  1. 数据清洗:剔除异常数据(比如价格突变、挂单量为0的档位)。
  2. 计算核心指标:价差、盘口厚度、买卖盘失衡度、深度斜率。
  3. 识别模式:比如「大单托底」模式(买一突然出现巨量挂单)或「空头压顶」模式(卖一突然堆满卖单)。
  4. 动态调整报价:根据当前订单簿状态,调整自己的挂单价格和数量。

举个例子。假设我在做ETH/USDT的做市,当前订单簿如下:

档位 买价 买量 卖价 卖量
1 3000.00 100 ETH 3000.10 80 ETH
2 2999.90 200 ETH 3000.20 150 ETH
3 2999.80 300 ETH 3000.30 250 ETH

从这张表能看出什么?

  • 价差是0.10 USDT,不算大,流动性还可以。
  • 买盘总量(100+200+300=600 ETH)大于卖盘总量(80+150+250=480 ETH),说明买盘更强。
  • 但卖一的挂单量只有80 ETH,比买一的100 ETH少。这意味着如果突然来一个市价卖单,很容易把卖一吃掉,价格可能往下走。

嗯,这里要注意。如果我是做市商,我会选择在买一和卖一之间挂单,比如买一挂3000.05,卖一挂3000.15。这样既能吃到价差,又不会离市场太远。但如果我发现卖一的挂单量突然减少到20 ETH,我会立刻撤掉卖单——因为价格可能随时跳水。

一个小技巧: 我习惯在回测中记录「订单簿快照」——每隔1秒保存一次完整的L2数据。这样在分析策略亏损原因时,可以回放当时的订单簿状态,看看是不是因为盘口太薄或者价差突然扩大导致的。这个习惯帮我避免了好几次「回测王者,实盘青铜」的尴尬。

最后说一句,订单簿分析没有银弹。不同市场、不同品种、不同时间段的微观结构都不一样。你需要花时间去「感受」你的交易品种的订单簿脾气。就像我常跟团队说的:先跟订单簿做朋友,再跟它做交易。


公众号:蓝海资料掘金营,微信deep3321