第二章 市场微观结构:订单簿的底层逻辑

做高频做市,说白了就是在跟订单簿打交道。你每天盯着的那个不断跳动的买卖盘口,就是市场的脉搏。这一章,我带你把它彻底拆开来看。

2.1 订单簿结构:市场的骨架

订单簿是什么?它就是一个实时更新的电子表格,记录着所有未成交的限价单。每一笔挂单,都包含价格、数量和方向(买或卖)。

我个人习惯把订单簿想象成一个「价格-数量」的二维矩阵。买盘在左边,卖盘在右边,中间就是当前的最新成交价。

举个例子,一个典型的订单簿长这样:

买价 (Bid) 买量 卖价 (Ask) 卖量
100.01 200 100.02 150
100.00 500 100.03 300
99.99 800 100.04 600

你看,买一价100.01,有200手等着买。卖一价100.02,有150手等着卖。这中间的0.01差价,就是买卖价差。

核心要点:订单簿的每一层,都代表着一个「价格共识」。买盘是市场愿意买入的最高价,卖盘是市场愿意卖出的最低价。

2.2 限价单 vs 市价单:两种武器

这两种订单类型,是做市商最常用的工具。它们的区别,我一句话就能说清楚:

  • 限价单:你指定价格,挂在那里等成交。不着急,但可能成交不了。
  • 市价单:你不管价格,直接吃掉对手盘。立刻成交,但可能滑点。

我在项目中遇到过不少新手,总喜欢用市价单抢单。结果呢?行情剧烈波动时,一个市价单下去,直接吃掉好几层,成交均价远不如预期。嗯,这就是典型的「流动性成本」。

做市策略的核心,就是大量使用限价单来提供流动性,同时用市价单来管理风险。说白了,限价单是赚钱的工具,市价单是保命的工具。

我的习惯:在策略中,我会把限价单的挂单量控制在订单簿前5层总深度的10%以内。超过这个比例,容易被对手盯上。

2.3 买卖价差:做市商的利润来源

价差,就是买一和卖一之间的价格差。它是做市商最直接的收入来源。

你想想看,如果你在100.01买入,同时在100.02卖出,每手就赚了0.01。当然,这是理想情况。现实中,价差会随着市场状态变化。

我总结了几种典型情况:

  • 流动性好时:价差窄,比如0.01。这时候每笔赚得少,但成交量大。
  • 波动剧烈时:价差宽,比如0.05甚至更大。这时候每笔赚得多,但风险也大。
  • 消息发布前后:价差会瞬间拉宽,然后慢慢恢复。我曾经在非农数据公布时,看到价差从0.02直接跳到0.15。

避坑指南:我曾经犯过一个错误——在价差突然拉宽时,以为机会来了,加大挂单量。结果行情反转,库存被套牢。记住:价差宽,不代表安全。

2.4 市场深度:你能扛住多大的单子?

市场深度,指的是在某个价格水平上,有多少挂单量。深度越大,市场越能吸收大额订单而不产生大的价格波动。

举个例子:

假设卖一价100.02只有150手。如果你下了一个200手的市价买单,那么:

  1. 先吃掉卖一的150手,成交价100.02
  2. 再吃掉卖二的50手,成交价100.03

你的平均成交价就变成了 (150*100.02 + 50*100.03) / 200 = 100.0225。比预期的100.02高了0.0025。这就是滑点。

我个人习惯用「深度斜率」来衡量市场深度。简单说,就是看价格每变动一个tick,挂单量变化多少。斜率越大,说明深度越好。

2.5 订单簿动态变化:市场的呼吸

订单簿不是静止的。它每时每刻都在变化。挂单、撤单、成交,三种动作不断发生。

我经常跟团队说:订单簿的动态变化,比静态的快照重要得多。为什么?因为你可以从中看出市场的「意图」。

比如:

  • 如果买盘不断有新的限价单挂出,但价格不涨,说明有人在吸筹。
  • 如果卖盘突然撤掉大量挂单,价格却不动,说明有人在试盘。
  • 如果买卖盘同时增加,价差不变,说明市场在积累能量。

这些信号,都是做市策略调整的依据。我曾经靠观察订单簿的动态变化,提前3秒预判了一波行情,成功调整了库存方向。

关键指标:我每天必看的三个动态指标:

  • 订单到达率(每秒新增挂单数)
  • 撤单率(每秒撤单数)
  • 成交率(每秒成交笔数)

这三个指标的变化,能告诉你市场情绪是狂热还是冷静。

2.6 知识体系总览

下面这张图,是我自己梳理的订单簿知识框架。你可以把它当作本章的思维导图:

市场微观结构 订单簿结构 限价单 vs 市价单 买卖价差 市场深度 价格-数量矩阵 买卖盘口分层 限价单:挂单等 市价单:立即吃 价差 = 卖一 - 买一 价差与波动关系 深度 = 挂单总量 深度斜率分析 订单簿动态变化 挂单/撤单/成交 订单到达率 撤单率 成交率

这张图把订单簿的核心要素都串起来了。从静态的结构,到动态的变化,再到具体的指标。你每次做策略调整前,都可以对照着这张图,看看自己忽略了哪个环节。

一个小技巧:我习惯在代码里用一个字典来存储订单簿的快照,键是价格,值是挂单量。这样查询和更新都很快。Python里用defaultdict,C++里用unordered_map,都很方便。

好了,这一章的内容就到这里。订单簿的底层逻辑,说白了就是这些。但真正用好它,需要你在实战中不断积累感觉。记住:订单簿不是死的,它是市场的呼吸。

专注资料整理