订单簿结构:限价单与市价单、订单簿的构成、动态变化

大家好,我是你们的讲师。今天我们来聊聊做市商最核心的战场——订单簿

说实话,我刚开始做量化交易那会儿,觉得订单簿不就是一堆买单卖单嘛,有啥好研究的?直到有一次,我在做市某个小币种时,因为没看懂订单簿的「暗流」,被一个鲸鱼单直接打穿了我的三层报价,亏了整整一周的利润。嗯,从那以后,我再也不敢小看订单簿了。

今天这一章,我们就把它彻底拆开,看看里面到底藏着什么门道。

一、限价单 vs 市价单:两种最基本的武器

做市商每天打交道最多的,就是这两种订单。说白了,它们代表了两种完全不同的交易态度。

  • 限价单(Limit Order):你指定一个价格,只有市场达到这个价格时才会成交。它提供流动性,但可能无法立即成交。
  • 市价单(Market Order):你不管价格,直接按当前最优价吃掉对手盘。它消耗流动性,但保证立即成交。

我个人习惯把限价单比作「钓鱼」——你把鱼饵(报价)挂在那,等着鱼(对手单)来咬钩。而市价单就是「撒网」——不管大小,先捞上来再说。

核心区别一句话:限价单是「挂单等成交」,市价单是「扫单求成交」。

在订单簿上,限价单会出现在买盘或卖盘的队列中,而市价单不会出现在订单簿上——它直接与已有的限价单撮合,然后消失。

二、订单簿的构成:买盘与卖盘

订单簿的结构其实很简单,就两个阵营:买盘(Bids)卖盘(Asks)

买盘是所有人愿意买入的最高价格列表,按价格从高到低排列。卖盘是所有人愿意卖出的最低价格列表,按价格从低到高排列。中间那个空隙,就是当前的买卖价差(Spread)。

我记得有一次在搭建做市策略时,发现某个交易所的订单簿买盘深度特别「虚」——表面上有几百个比特币的买单,但大部分都是小单堆出来的。我后来写了个脚本去分析订单簿的「真实深度」,才发现很多订单其实是机器人挂的「幽灵单」,一碰到大单就撤了。

这里我给大家一个简单的订单簿数据结构示例,用Python表示:

# 一个简化的订单簿结构
order_book = {
    'bids': [  # 买盘,价格从高到低
        {'price': 100.10, 'size': 1.5},
        {'price': 100.05, 'size': 3.2},
        {'price': 100.00, 'size': 5.0},
    ],
    'asks': [  # 卖盘,价格从低到高
        {'price': 100.15, 'size': 2.0},
        {'price': 100.20, 'size': 4.1},
        {'price': 100.25, 'size': 1.8},
    ]
}

# 计算买卖价差
best_bid = order_book['bids'][0]['price']  # 100.10
best_ask = order_book['asks'][0]['price']  # 100.15
spread = best_ask - best_bid               # 0.05
print(f"当前价差: {spread}")

你看,买盘最高价是100.10,卖盘最低价是100.15,价差0.05。这就是做市商赚取利润的空间——我们通过同时挂买单和卖单,吃掉这个价差。

三、订单簿的动态变化:每一秒都在「呼吸」

订单簿不是静止的。它每时每刻都在变化,就像人的呼吸一样——有进有出,有深有浅。

为什么会这样?因为市场参与者在不断地下单、撤单、成交。一个典型的订单簿动态变化包括:

  • 新订单进入:新的限价单加入买盘或卖盘队列
  • 订单被撤销:挂单者撤回了自己的订单
  • 订单被成交:市价单吃掉了限价单
  • 订单被修改:挂单者调整了价格或数量

我曾经在做一个高频做市策略时,发现订单簿的「撤单率」特别高——有些价格档位的订单,平均存活时间不到200毫秒。这说明什么?说明有人在用「欺骗性订单」来制造假深度,引诱其他交易者入场。

避坑指南:我曾经因为没注意订单簿的「撤单率」,在一个流动性极差的币对上挂了大量限价单。结果一个鲸鱼用市价单瞬间吃掉了我所有的卖单,然后价格暴跌,我的买单也被套住了。后来我学乖了——做市之前,一定要先分析订单簿的「稳定性」。

下面我用一张SVG图来展示订单簿的核心结构,以及它如何动态变化:

订单簿结构示意图 买盘 (Bids) 价格: 100.10 数量: 1.5 BTC 价格: 100.05 数量: 3.2 BTC 价格: 100.00 数量: 5.0 BTC 价差 (Spread): 0.05 卖盘 (Asks) 价格: 100.15 数量: 2.0 BTC 价格: 100.20 数量: 4.1 BTC 价格: 100.25 数量: 1.8 BTC 动态变化 新限价单进入 订单被撤销 市价单吃掉限价单 订单价格/数量修改

你看,订单簿就像是一个「战场」——买盘和卖盘在两边对峙,中间是价差这个「无人区」。市价单就是冲锋的士兵,限价单就是防守的堡垒。每一秒都有新的堡垒建起来,也有堡垒被攻破。

四、做市商眼中的订单簿

作为做市商,我们看订单簿的角度和普通交易者不一样。普通交易者关心的是「现在该买还是该卖」,而我们关心的是:

  • 深度分布:每个价格档位有多少订单?是实单还是虚单?
  • 订单流节奏:新订单进入的速度快还是慢?撤单率高不高?
  • 价差稳定性:价差会不会突然扩大?有没有被操纵的痕迹?
一个小技巧:我个人习惯在开盘前5分钟观察订单簿的「预热」情况。如果买盘和卖盘都在快速堆积,说明市场情绪活跃,适合积极做市。如果订单簿稀稀拉拉,价差还特别大,那就得小心了——可能是流动性陷阱。

嗯,说到这里,我想起一个经典案例。有一次我在做市ETH/USDT时,发现订单簿的买盘深度突然增加了30%,但价格却没怎么动。我立刻警觉起来——这不对劲。后来一查,果然是一个大户在偷偷建仓,用多个账户挂了一堆「烟雾弹」订单来掩盖真实意图。我及时调整了报价策略,避免了被「钓鱼」。

所以,读懂订单簿,不只是看价格和数量,更要看背后的「意图」。这也是为什么我一直强调——做市商不能只看表面数据,要会「读盘」。

好了,这一章的内容就到这里。订单簿是做市商的「地图」,只有把地图看懂了,你才知道该往哪里走。下一章我们会深入探讨如何利用订单簿数据来构建做市策略,敬请期待。


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