一、订单簿基础与数据特征

做量化交易这些年,我越来越觉得订单簿是市场的「心跳」。你想想看,每一笔成交、每一次挂单,都是真金白银堆出来的信号。今天我们就从最基础的东西聊起。

1.1 限价单与市价单

这两种订单类型,说白了就是「我要买,但我愿意等」和「我要买,现在就要」的区别。

  • 限价单(Limit Order):你指定一个价格,比如「我出100块买,低于100不买」。这单子挂上去,就等着有人来成交。我习惯把限价单叫做「被动单」——你在提供流动性。
  • 市价单(Market Order):你不管价格,直接说「给我买100股,按市场上最好的价格成交」。这是「主动单」,你在消耗流动性。

嗯,这里要注意一个坑:市价单虽然成交快,但在流动性差的时候,你可能吃到很差的价位。我曾经在某个小币种上吃过这个亏,一单下去滑了三个档位,直接亏掉手续费好几倍。

1.2 订单簿的构建逻辑

订单簿其实就是个「排队系统」。买方排一队,卖方排一队,价格优先、时间优先。

我画个图帮你理解:

买方队列(Bids) 价格 99.50 数量 200 价格 99.30 数量 150 价格 99.10 数量 300 价格 98.90 数量 100 价格 98.70 数量 250 ↑ 价格从高到低排列 最高买价 = 99.50 ← 买 卖 → 卖方队列(Asks) 价格 99.60 数量 180 价格 99.80 数量 220 价格 100.00 数量 350 价格 100.20 数量 90 价格 100.40 数量 160 ↓ 价格从低到高排列 最低卖价 = 99.60 价差 = 99.60 - 99.50 = 0.10

这张图你应该能看懂。左边是买方,价格从高到低排;右边是卖方,价格从低到高排。中间那个缺口就是「价差」(Spread)。

核心概念:订单簿的深度 = 每个价位上的挂单总量。深度越厚,市场越不容易被大单打穿。

1.3 Level2 数据解析

Level2 数据,说白了就是「更细的订单簿」。普通行情只给你看最优的买一卖一,Level2 能给你看好几层甚至几十层。

我拿一个典型的 Level2 数据快照举例:

{
  "ts": 1628000000123,        // 时间戳(毫秒)
  "bids": [                   // 买方深度
    [99.50, 200],             // [价格, 数量]
    [99.30, 150],
    [99.10, 300]
  ],
  "asks": [                   // 卖方深度
    [99.60, 180],
    [99.80, 220],
    [100.00, 350]
  ]
}

这里要注意的是,不同交易所的 Level2 数据格式可能不一样。有的给你增量更新(只发变化的部分),有的给你全量快照。我在对接某所的时候,就遇到过增量数据丢包导致本地订单簿错乱的问题——嗯,后来我加了个定时全量校验的逻辑才解决。

1.4 盘口深度与价差分析

盘口深度和价差,是判断市场流动性的两个核心指标。

指标 计算公式 含义
价差(Spread) 最低卖价 - 最高买价 越小说明流动性越好
深度(Depth) 各价位挂单量之和 越大说明市场越抗冲击
加权深度 ∑(价格 × 数量) / ∑数量 考虑价格后的真实深度

我个人习惯用「深度斜率」来判断市场的支撑/阻力位。比如买方深度突然在某价位附近堆积,那这个价位很可能是个强支撑。

实战技巧:价差突然扩大 + 深度骤减,往往是重大消息要出来的前兆。我曾在某次数据回测中发现,这种信号出现后5分钟内,价格波动幅度平均达到0.8%。

避坑指南:我曾经在分析盘口深度时,只看了前5档数据就下了结论。结果一个大单直接吃穿10档,我的止损单被触发在很差的价位。后来我养成了习惯——至少看20档深度,尤其是做高频策略的时候。

好了,订单簿的基础就聊到这儿。这些概念虽然基础,但它们是后续所有降噪和信号增强工作的地基。你想想看,如果连原始数据都理解不透,后面那些滤波算法、特征工程又怎么能做好呢?

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