第二章:市场微观结构——订单簿深度解析

做市商这行,说白了就是跟订单簿打交道。你每天盯着屏幕上跳动的数字,其实就是在解读市场微观结构。我刚开始做量化的时候,觉得这东西很简单——不就是买和卖嘛。后来吃了不少亏才明白,订单簿里的门道,比想象中深得多。

2.1 订单簿的基本构成

订单簿是什么?它就是一个实时更新的买卖挂单列表。交易所把所有交易者的限价单汇总起来,按价格排序展示。买盘叫Bid,卖盘叫Ask。

我习惯把订单簿想象成一个「价格-数量」的二维矩阵。每一档价格上,都堆着一定数量的挂单。比如这样:

卖五:100.50  200股
卖四:100.40  150股
卖三:100.30  300股
卖二:100.20  100股
卖一:100.10  250股
-------------------
买一:100.00  180股
买二:99.90   220股
买三:99.80   400股
买四:99.70   150股
买五:99.60   300股

这里卖一和买一之间的差距,就是买卖价差。价差越小,说明市场越活跃。我在做比特币做市的时候,价差经常只有0.01美元,但到了流动性差的币种,价差能拉到0.5美元以上。

2.2 买卖盘口与价差

盘口深度,指的是每一档价格上的挂单数量。你想想看,如果买一只有10股,卖一有1000股,那说明什么?说明卖方压力大,价格可能往下走。

价差的计算公式很简单:

Spread = Ask_Price - Bid_Price

但实际交易中,我们更关注的是「相对价差」:

Relative Spread = (Ask - Bid) / Mid_Price × 100%

举个例子,如果买一100.00,卖一100.10,中间价100.05,那么相对价差就是0.1%。这个数字在主流股票市场通常小于0.1%,但在一些冷门品种上,1%甚至5%都很常见。

核心要点:价差是做市商的主要收入来源。你赚的就是买卖之间的差价。但价差太大,交易者不愿意来;价差太小,你又赚不到钱。这是个平衡的艺术。

2.3 市场深度与流动性

市场深度,衡量的是订单簿在某个价格区间内能承载多少交易量。深度越大,说明流动性越好,大单不容易造成价格滑点。

我常用「深度图」来直观判断流动性。横轴是价格,纵轴是累计挂单量。深度图越陡峭,说明流动性越差;越平缓,说明流动性越好。

实战技巧:我曾经在某个小交易所做市,表面上看价差只有0.2%,但深度图显示,超过50手的单子就会把价格打穿两档。这种「假深度」很坑人。后来我养成了习惯——下单前先看深度图,而不是只看价差。

衡量流动性的几个关键指标:

  • 买卖价差:越小越好
  • 订单簿深度:前五档的总挂单量
  • 滑点成本:吃单一定数量造成的价格偏移
  • 成交速度:限价单被吃掉的平均时间

这里我画了一张图,帮你理解订单簿的微观结构:

订单簿微观结构示意图 卖盘 (Ask Side) 卖五 100.50 卖四 100.40 卖三 100.30 卖二 100.20 卖一 100.10 价差 = 100.10 - 100.00 = 0.10 买盘 (Bid Side) 买一 100.00 买二 99.90 买三 99.80 买四 99.70 深度 越深 流动 性越好

2.4 订单类型详解

做市商最常用的订单类型有三种:限价单、市价单和冰山订单。每种都有它的用武之地。

2.4.1 限价单 (Limit Order)

限价单就是指定一个价格,只有达到这个价格或更优时才会成交。做市商的核心策略就是挂限价单——在买一挂单,在卖一挂单,赚取价差。

限价单的好处是你可以控制成交价格,坏处是不一定能成交。我记得有一次,我在某个波动剧烈的币种上挂了限价单,结果价格直接跳空穿过去,我的单子根本没成交,白白错过了行情。

注意:限价单不保证成交。在快速波动的市场中,你的单子可能永远排不上队。这时候就需要考虑是否要调整报价策略。

2.4.2 市价单 (Market Order)

市价单就是「不管价格,立即成交」。你输入数量,系统自动按当前最优价格帮你吃掉对手盘。

市价单的优点是成交速度快,缺点是滑点成本高。尤其是流动性差的时候,一个市价单可能把价格打穿好几档。

我一般只在两种情况下用市价单:一是需要紧急平仓,二是判断行情即将大幅波动,想抢在别人前面进场。

2.4.3 冰山订单 (Iceberg Order)

冰山订单,顾名思义,只露出冰山一角。你挂一个大单,但系统只显示一小部分,剩下的藏在下面。每成交一部分,就自动补上一部分。

为什么要用冰山订单?说白了,就是不想让别人知道你的真实意图。如果你在买一挂了10万手,别人一看就知道有大户在吸筹,可能会抢跑或者故意砸盘。

我曾经在某个交易所做市,发现对手盘总是能精准地在我挂单的上方或下方挂单。后来我改用冰山订单,把大单拆成小单分批显示,情况就好多了。

// 冰山订单的伪代码示例
class IcebergOrder:
    def __init__(self, total_qty, display_qty, price, side):
        self.total_qty = total_qty      // 总数量
        self.display_qty = display_qty  // 显示数量
        self.price = price
        self.side = side                // 'buy' or 'sell'
        self.remaining = total_qty
        self.current_display = min(display_qty, total_qty)
    
    def on_trade(self, traded_qty):
        self.remaining -= traded_qty
        self.current_display -= traded_qty
        // 如果当前显示部分被吃光,补上新的
        if self.current_display == 0 and self.remaining > 0:
            self.current_display = min(self.display_qty, self.remaining)
            // 重新挂单

2.5 实战中的微观结构观察

做市商每天要面对的就是这些微观结构的变化。我总结了几条经验:

  1. 价差突然扩大:通常意味着有重大消息或者大户在操作。这时候要小心,不要盲目挂单。
  2. 深度突然变薄:可能是流动性提供者撤单了。我曾经遇到过某交易所的做市商集体撤单,价差瞬间从0.1%扩大到2%。
  3. 冰山订单的痕迹:如果你发现某个价格档位反复出现相同数量的挂单,那很可能是冰山订单。这时候可以顺势而为。
  4. 盘口失衡:买盘远大于卖盘,或者反过来。这种失衡往往预示着价格即将变动。

我的习惯:每天开盘前,我会先看一遍主要交易对的订单簿结构。不是看价格,而是看深度分布。如果发现某个价格区间堆积了大量挂单,那这个位置很可能就是今天的支撑位或阻力位。

嗯,订单簿这东西,你盯得越久,感觉就越敏锐。刚开始可能觉得就是一堆数字,但慢慢你会发现,每个数字背后都藏着交易者的心理和策略。做市商的工作,本质上就是在解读这些数字背后的博弈。


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