1. 订单簿基础:什么是订单簿?

做高频交易这些年,我每天打交道最多的东西,就是订单簿。

说白了,订单簿就是交易所维护的一个实时电子账本。它记录着所有交易者当前挂出的买单和卖单。你想想看,如果没有订单簿,市场就像个黑箱——你根本不知道有人在什么价位等着买卖。

1.1 订单簿的核心结构

订单簿其实不复杂。它由两部分组成:

  • 买单队列(Bid Side)——按价格从高到低排列
  • 卖单队列(Ask Side)——按价格从低到高排列

每个价格档位上,都堆积着对应的委托数量。这就是所谓的「深度」。

我举个例子,你一看就明白了:

卖单队列(Ask)
价格      数量
1.1010    500
1.1009    200
1.1008    300
-------------------
1.1007    100  ← 卖一价
1.1006    400  ← 买一价
-------------------
买单队列(Bid)
价格      数量
1.1005    600
1.1004    150
1.1003    250

嗯,这里要注意:买单是从高往低排,卖单是从低往高排。为什么?因为买方想用更低的价格买,但得先满足出价最高的人;卖方想用更高的价格卖,但得先满足出价最低的人。这个逻辑很关键。

1.2 限价单 vs 市价单

这两种订单类型,是交易系统里最基础的东西。我见过不少新手搞混它们,其实区别很简单。

特性 限价单 市价单
成交价格 指定价格,不保证成交 不指定价格,保证成交
成交速度 可能等待较久 立即成交
滑点风险 无滑点风险 有滑点风险
对市场影响 提供流动性 消耗流动性
适用场景 做市、挂单策略 抢单、止损

限价单,就是你告诉交易所:「我只愿意在这个价格买/卖,不到这个价我就不动。」它会挂在订单簿上,等着被吃掉。

市价单,就是你告诉交易所:「不管什么价格,现在就要成交!」它会直接跟订单簿上最优的价格配对。

我在项目中遇到过一个问题:有人用市价单做高频抢单,结果市场剧烈波动时,滑点直接吃掉了他整个策略的利润。后来我建议他改用限价单配合冰山指令,才把问题解决。

核心要点:限价单是「挂单等成交」,市价单是「直接吃单」。高频交易中,90%以上的策略用的是限价单,因为我们需要控制成交价格。

1.3 买卖盘口与价差

盘口,就是订单簿上最靠前的几档价格。

  • 买一价(Bid1):当前最高的买入价格
  • 卖一价(Ask1):当前最低的卖出价格
  • 价差(Spread):卖一价 - 买一价

价差是衡量市场流动性的关键指标。价差越小,说明市场越活跃,流动性越好。

举个例子:

  • 买一价 1.1006,卖一价 1.1007,价差 = 1个tick
  • 买一价 1.1005,卖一价 1.1008,价差 = 3个tick

价差1个tick的市场,你来回交易的成本就低。价差3个tick,你还没赚钱就先亏了手续费加滑点。

我的经验:做高频交易,我一般只做价差小于等于2个tick的品种。价差太大的品种,策略很难跑出正收益。曾经有个学员问我为什么他的螺纹钢策略总亏钱,我一看,他做的时段价差经常到4个tick,那能不亏吗?

1.4 订单簿的实时变化

订单簿不是静态的。它每时每刻都在变。高频交易系统每秒要处理几万甚至几十万笔订单簿更新。

常见的订单簿事件有四种:

  1. 新增订单——有人在某个价格挂了一笔新单
  2. 撤销订单——有人把挂着的单撤了
  3. 成交——买单和卖单配对成功
  4. 修改订单——有人改了价格或数量(有些交易所不支持)

我刚开始做高频系统时,犯过一个低级错误:我以为订单簿的更新是「增量更新」,结果直接覆盖了整个订单簿。后来发现,这样会丢失中间状态,导致策略判断出错。嗯,从那以后我再也不敢偷懒了。

1.5 订单簿的视觉化理解

光说理论不够直观。我画了一张图,帮你理解订单簿的结构:

订单簿结构示意图 卖单队列(Ask Side) 卖三价 1.1009 数量 200 累计 1000 卖二价 1.1008 数量 300 累计 800 卖一价 1.1007 数量 500 累计 500 价差 = 卖一价 - 买一价 = 1个tick 买单队列(Bid Side) 买一价 1.1006 数量 400 累计 400 买二价 1.1005 数量 600 累计 1000 买三价 1.1004 数量 150 累计 1150 买单从高到低排列,卖单从低到高排列

这张图里,你能看到买单和卖单是如何在订单簿上排列的。卖一和买一之间的空隙,就是价差。高频交易的核心,很多时候就是在盯着这个价差做文章。

注意:不同交易所的订单簿规则可能不同。比如有些交易所支持「冰山订单」,只显示部分数量;有些交易所的订单簿是「价格-时间优先」排序。做系统时一定要先搞清楚交易所的规则,否则代码写出来全是坑。

1.6 为什么订单簿对高频交易如此重要?

说白了,高频交易赚的就是信息差和速度差。而订单簿,就是信息的源头。

通过分析订单簿,你能看到:

  • 大资金在什么价位埋伏
  • 市场的买卖力量对比
  • 潜在的支撑位和阻力位
  • 订单的撤单速度(这往往预示着行情变化)

我记得有一次,我发现某个品种的买一价突然出现了一笔巨大的挂单,但几秒钟后又撤了。这种「虚挂」行为,往往是有人在试探市场深度。如果你能实时捕捉到这种信号,就能提前做出反应。

订单簿重建技术,就是要把交易所推送的原始数据流,还原成我们上面看到的这种结构化的订单簿。这个过程听起来简单,但实际做起来坑很多——数据乱序、丢包、快照同步……这些我们后面会一一讲到。

一句话总结:订单簿是市场的「心电图」。读懂它,你才能在高频交易中活下来。


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