订单簿与市场深度:数据结构、盘口逻辑与深度图构建

做市系统里,订单簿就是我们的战场地图。没有它,你就是在黑灯瞎火里做交易。今天咱们就把订单簿的里里外外聊透。

一、订单簿数据结构

订单簿说白了,就是一个实时更新的买卖挂单列表。我习惯把它想象成两个队列——买单队列和卖单队列。

每个订单条目,通常包含这几个核心字段:

字段 含义 示例
price 价格 100.50
size 数量 2000
side 买卖方向 bid / ask
order_id 订单唯一标识 uuid
timestamp 时间戳 毫秒级

实际项目中,我一般用红黑树或者跳表来存储。为什么?因为订单簿需要频繁的插入、删除和查询操作。普通数组根本扛不住。

核心要点:买单按价格从高到低排序,卖单按价格从低到高排序。这是盘口逻辑的基础。

二、买卖盘口逻辑

盘口,就是最优的几档买卖报价。比如「买一、卖一、买二、卖二」这些。

我遇到过不少新手,以为盘口数据就是简单的价格排序。其实没那么简单。这里有几个关键点:

  • 价格优先原则:买单价格高的优先成交,卖单价格低的优先成交
  • 时间优先原则:同价格下,先挂单的先成交
  • 盘口深度:每个价格档位的累计挂单量

举个例子,假设当前盘口是这样的:

卖三: 101.00  500
卖二: 100.80  300
卖一: 100.50  200
-------------------
买一: 100.30  400
买二: 100.10  600
买三: 99.80   800

这时候买卖价差是 100.50 - 100.30 = 0.20。如果价差突然拉大,说明流动性出问题了。我在实盘里见过价差从0.01瞬间拉到0.5的情况,那通常是有人撤单或者大单砸盘。

实战技巧:监控盘口变化时,别只看价格。要同时看每个档位的挂单量变化。有时候价格没动,但挂单量突然减少,说明有人在偷偷撤单。

三、市场深度图的构建

市场深度图,就是把订单簿数据可视化。横轴是价格,纵轴是累计挂单量。

构建逻辑其实很简单:

  1. 从最优价格开始,向两侧延伸
  2. 每个价格点,累加该价格及更优价格的所有挂单量
  3. 买单侧是累计买入量,卖单侧是累计卖出量

我习惯用Python快速画一个深度图,代码大概长这样:

def build_depth(orders, side='bid'):
    # orders: 按价格排序的订单列表
    depth = []
    cumulative = 0
    
    for price, size in orders:
        cumulative += size
        depth.append((price, cumulative))
    
    return depth

嗯,这里要注意。深度图有两种画法:一种是阶梯图,一种是平滑曲线。我个人更推荐阶梯图,因为它能真实反映每个价格档位的流动性。

避坑指南:我曾经在深度图上吃过亏。当时用平滑曲线展示深度,结果交易员误以为某个价格区间流动性很好,实际上那个区间根本没有挂单。从那以后,我坚持用阶梯图。

四、深度图的解读

深度图能告诉我们什么?说白了,就是市场在某个价格区间的承接能力。

  • 深度大:说明流动性好,大单不容易造成价格滑点
  • 深度小:说明市场薄,稍微大点的单子就能把价格打穿
  • 深度不对称:比如买单深度远大于卖单深度,说明买方力量强

你想想看,如果卖单深度突然变薄,而买单深度不变,这意味着什么?意味着卖方在撤退。这时候如果你在做市,就要小心了——可能有人要拉盘。

我记得有一次,我在监控一个山寨币的深度图。卖一档的挂单量从1000个币突然降到200个,但价格没变。我立刻意识到有问题,赶紧调整了报价策略。果然,几分钟后一个大买单直接把卖一吃光,价格瞬间拉升了3%。

五、实战中的订单簿管理

做市系统里,订单簿的管理是个技术活。我总结了几条经验:

场景 应对策略
盘口深度突然变薄 缩小报价价差,降低风险敞口
大单出现在盘口 判断是真实订单还是诱单,必要时撤单
价差异常扩大 暂停做市,等待市场恢复
深度图出现断层 检查网络延迟,确认数据是否完整

其实做市商的核心,就是管理好订单簿上的每一笔挂单。你挂出去的单子,既是机会也是风险。挂得太近,容易被吃掉;挂得太远,又赚不到钱。

我个人习惯,每天开盘前先看一遍深度图。如果发现某个价格区间的深度异常,我会标记出来,盘中重点监控。这个习惯帮我躲过好几次黑天鹅事件。

总结一句话:订单簿是市场的脉搏,深度图是市场的呼吸。读懂它们,你就能在波动中游刃有余。

订单簿与市场深度核心逻辑 交易所行情数据 订单簿数据结构 红黑树 / 跳表存储 买卖盘口逻辑 价格优先 · 时间优先 市场深度图构建 累计挂单量 · 阶梯图 市场深度图解读 流动性 · 支撑阻力 做市策略调整 风险监控预警 数据流方向:行情 → 订单簿 → 盘口逻辑 → 深度图 → 实战应用

个人建议:刚开始接触订单簿的同学,可以先从模拟数据练手。自己写个程序,模拟订单簿的增删改查,再画个深度图。这个过程走一遍,比看十遍理论都管用。

好了,订单簿和深度图这块就聊到这儿。记住,数据是死的,但解读是活的。同样的深度图,在不同市场环境下,含义可能完全不同。多实战,多复盘,慢慢你就能读懂市场的语言了。

专注资料整理