一、市场微观结构:订单簿深度解析

做量化交易这些年,我越来越觉得一个道理:不懂订单簿,就别谈交易执行。你想想看,我们所有的策略信号,最终都要通过订单簿这个「战场」去落地。今天我就带你把这个战场彻底看透。

核心认知:订单簿就是市场的「实时供需地图」。每一笔挂单,都是交易者用真金白银投票的结果。

1.1 买卖盘口与价差

先看最基础的东西。订单簿的左右两侧,一边是买单(Bid),一边是卖单(Ask)。

  • 买一(Best Bid):当前愿意出的最高买入价
  • 卖一(Best Ask):当前愿意卖的最低卖出价
  • 价差(Spread):卖一 - 买一,就是市场的「过路费」

我记得刚入行时,有个老交易员跟我说:「看价差就能知道市场情绪。」当时不太理解,后来自己做策略回测才发现——价差窄,说明流动性好,市场活跃;价差宽,说明要么流动性枯竭,要么有大波动要来了

我的经验:做高频策略时,我习惯把价差作为「入场过滤器」。价差超过平均值的1.5倍,我基本不会开仓——那是在给做市商送钱。

1.2 市场深度与流动性

市场深度,说白了就是「你能吃掉多少单子而不把价格打飞」。

举个例子:

# 一个简化的订单簿深度示例
order_book = {
    'bids': [  # 买单堆
        (100.00, 500),   # 价格100,挂单500股
        (99.95, 1000),   # 价格99.95,挂单1000股
        (99.90, 2000),   # 价格99.90,挂单2000股
    ],
    'asks': [  # 卖单堆
        (100.05, 300),   # 价格100.05,挂单300股
        (100.10, 800),   # 价格100.10,挂单800股
        (100.15, 1500),  # 价格100.15,挂单1500股
    ]
}

你看这个结构。如果你想买入1000股,直接吃卖一300股,价格100.05;剩下的700股得吃卖二,价格100.10。实际成交均价是(300×100.05 + 700×100.10) / 1000 ≈ 100.085。比卖一贵了0.035美元。

这0.035就是冲击成本。我做过一个统计:在流动性一般的股票上,一次大单交易,冲击成本可能占到总成本的30%以上。嗯,这可不是小数目。

避坑指南:我曾经在回测时忽略了冲击成本,结果实盘跑出来收益直接腰斩。后来我学乖了——任何策略回测,必须把订单簿深度纳入模型

1.3 订单类型详解

订单类型这块,我见过太多人搞混了。其实核心就几种,我一个个说。

市价单(Market Order)

「我要买,立刻,不管什么价。」——这就是市价单。成交快,但价格不可控。我一般只在两种情况下用:一是流动性极好的品种(比如沪深300成分股),二是策略对时间要求极高(比如抢涨停)。

限价单(Limit Order)

「我只愿意出这个价,多了我不买。」——限价单给你价格控制权,但可能成交不了。我个人习惯是:做趋势跟踪用市价单,做均值回归用限价单。为什么?趋势跟踪要的是「上车」,均值回归要的是「好价格」。

冰山订单(Iceberg Order)

这个有意思。大资金不想暴露自己的真实意图,就把一个大单拆成小单,只露出「冰山一角」。

# 冰山订单的简单模拟
class IcebergOrder:
    def __init__(self, total_qty, display_qty, price):
        self.total_qty = total_qty      # 总数量:10000股
        self.display_qty = display_qty  # 显示数量:1000股
        self.price = price
        self.remaining = total_qty
    
    def get_visible_qty(self):
        # 每次只露出冰山一角
        return min(self.display_qty, self.remaining)
    
    def fill(self, qty):
        self.remaining -= qty
        # 如果剩余量还够,重新露出下一层
        if self.remaining > 0:
            return self.get_visible_qty()
        return 0

我在做市商策略时,经常用冰山订单来隐藏自己的真实意图。你想想看,如果你直接挂10000股卖单,市场一眼就看穿你要出货,价格立马被打压。但用冰山订单,每次只露1000股,别人以为只是个小散户在卖。

关键洞察:冰山订单的「隐藏深度」是市场微观结构分析的重要指标。如果你发现某个价位频繁出现「补单」现象——刚被吃掉又出现同样数量的挂单——那大概率是冰山订单在运作。

1.4 订单簿的动态演化

订单簿不是静止的。它每时每刻都在变化。我习惯用「三看」来分析:

  1. 看价差变化:价差突然扩大,往往意味着有大事要发生
  2. 看挂单撤单:频繁的挂单又撤单,可能是大资金在「试盘」
  3. 看深度分布:买单堆厚还是卖单堆厚,能判断短期多空力量

举个例子。有一次我在监控某只股票的订单簿,发现卖二到卖五突然出现大量挂单,但卖一却空空如也。这明显不对劲——正常情况应该是层层递进的。后来果然,一个大户在卖一挂了巨量卖单,把价格砸下去3%。这就是典型的「订单簿操纵」。

实用技巧:我写了一个监控脚本,实时计算订单簿的「不平衡度」——(买单总深度 - 卖单总深度) / (买单总深度 + 卖单总深度)。这个值超过0.6或低于-0.6时,系统会自动报警。效果还不错。

1.5 知识体系总览

说了这么多,我画了一张图帮你理清思路:

订单簿核心概念 买卖盘口与价差 市场深度与流动性 订单类型详解 买一/卖一 价差计算 价差含义 深度分布 冲击成本 流动性评估 市价单 限价单 冰山订单 核心:读懂订单簿 = 读懂市场博弈 买卖盘口 → 价差 → 深度 → 订单类型 → 动态演化

这张图把整个知识体系串起来了。从买卖盘口出发,到价差、深度、订单类型,最后到动态演化——每一步都是下一层的基础

一句话总结:订单簿不是冷冰冰的数字,它是市场参与者博弈的实时记录。读懂它,你就能看到别人看不到的交易机会。


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