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.5 订单簿的视觉化理解
光说理论不够直观。我画了一张图,帮你理解订单簿的结构:
这张图里,你能看到买单和卖单是如何在订单簿上排列的。卖一和买一之间的空隙,就是价差。高频交易的核心,很多时候就是在盯着这个价差做文章。
注意:不同交易所的订单簿规则可能不同。比如有些交易所支持「冰山订单」,只显示部分数量;有些交易所的订单簿是「价格-时间优先」排序。做系统时一定要先搞清楚交易所的规则,否则代码写出来全是坑。
1.6 为什么订单簿对高频交易如此重要?
说白了,高频交易赚的就是信息差和速度差。而订单簿,就是信息的源头。
通过分析订单簿,你能看到:
- 大资金在什么价位埋伏
- 市场的买卖力量对比
- 潜在的支撑位和阻力位
- 订单的撤单速度(这往往预示着行情变化)
我记得有一次,我发现某个品种的买一价突然出现了一笔巨大的挂单,但几秒钟后又撤了。这种「虚挂」行为,往往是有人在试探市场深度。如果你能实时捕捉到这种信号,就能提前做出反应。
订单簿重建技术,就是要把交易所推送的原始数据流,还原成我们上面看到的这种结构化的订单簿。这个过程听起来简单,但实际做起来坑很多——数据乱序、丢包、快照同步……这些我们后面会一一讲到。
一句话总结:订单簿是市场的「心电图」。读懂它,你才能在高频交易中活下来。
公众号:蓝海资料掘金营,微信deep3321