1、订单簿基础:什么是订单簿?限价单与市价单的区别,订单簿的构成要素
大家好,我是你们的量化金融讲师。今天咱们聊聊订单簿——这个在交易系统里最核心、也最容易被忽视的东西。
说实话,我刚开始做算法交易那会儿,觉得订单簿不就是个买卖挂单的列表嘛,有啥好研究的?直到有一次,我写的一个高频策略在回测里跑得飞起,一上实盘就亏成狗。排查了三天,最后发现是订单簿的深度数据没吃透,导致我的限价单总是被吃掉,市价单又滑点太大。嗯,从那以后,我再也不敢小看这个「简单的列表」了。
1.1 什么是订单簿?
订单簿,说白了就是交易所用来记录所有未成交订单的电子账本。它实时展示着市场上所有买方和卖方挂出的价格与数量。
你想想看,你去菜市场买菜,有人喊价5块一斤,有人还价4块5。交易所就把这些喊价和还价全部记下来,按价格排好队——这就是订单簿。
我个人习惯把订单簿理解成「市场的骨架」。价格走势、流动性深度、买卖力量对比,全都刻在这个骨架上。没有它,你看到的K线图就是空中楼阁。
1.2 限价单与市价单的区别
这是最基础但也是最容易踩坑的地方。我见过不少新手把这两种订单混着用,结果亏得莫名其妙。
限价单(Limit Order)
限价单就是你指定一个价格,告诉交易所:「我只在这个价格或更好的价格成交,否则我就不买/不卖。」
举个例子,BTC当前价格30000,你挂一个29900的买单。那你就得等价格跌到29900,或者有人愿意以29900卖给你,才能成交。
优点: 价格可控,不会出现滑点。
缺点: 可能永远成交不了,或者成交速度慢。
我在项目中遇到过一件事:有个同事做套利策略,全用限价单。结果行情剧烈波动时,他的单子一个都没成交,眼睁睁看着价差消失。这就是典型的「挂单风险」。
市价单(Market Order)
市价单就是你不关心价格,只关心能不能立刻成交。你告诉交易所:「现在市场上最好的价格是什么?我就要那个,赶紧给我成交!」
还是那个例子,BTC当前30000,你下市价买单。系统会立刻吃掉卖一价(比如30001)上的所有挂单,如果数量不够,继续吃卖二、卖三……直到你的订单全部成交。
优点: 成交速度快,几乎100%成交。
缺点: 价格不可控,可能产生较大滑点。
| 对比维度 | 限价单 | 市价单 |
|---|---|---|
| 价格控制 | 完全可控 | 不可控 |
| 成交速度 | 慢(可能不成交) | 快(几乎必成交) |
| 滑点风险 | 无 | 高 |
| 对市场影响 | 提供流动性 | 消耗流动性 |
| 适用场景 | 做市、低延迟策略 | 抢单、止损、大额交易 |
1.3 订单簿的构成要素
一个标准的订单簿,核心就三个要素:价格、数量、时间戳。听起来简单,但每个要素背后都有门道。
价格(Price)
价格是订单簿的「坐标轴」。所有挂单按价格从高到低排列。买单从高到低(谁出价高谁优先),卖单从低到高(谁要价低谁优先)。
这里有个细节:价格精度。不同交易所对价格的最小变动单位(tick size)有不同规定。比如BTC在币安是0.01,但在某些小交易所可能是0.1。我建议你在做策略时,一定要先确认tick size,否则你的限价单可能永远挂不上去。
数量(Volume)
数量就是每个价格上挂了多少手(或多少币)。它直接反映了市场的深度。
我个人习惯把数量分成两层看:
- 表层数量: 卖一、买一上的挂单量。这决定了小额订单的滑点。
- 深层数量: 卖二、卖三……买二、买三……上的挂单量。这决定了市场能否承受大额冲击。
为什么这么分?因为我在做高频策略时发现,很多「假深度」就藏在深层数量里。有些做市商会挂大单在远处,等价格靠近时瞬间撤单。如果你只看表层,很容易被误导。
时间戳(Timestamp)
时间戳是订单簿的「灵魂」。没有时间戳,你根本不知道这些订单是什么时候挂上去的,也无法判断它们的时效性。
时间戳通常有两种:
- 订单到达时间: 订单进入交易所系统的时间。
- 订单簿快照时间: 交易所生成当前订单簿快照的时间。
这里有个坑:不同交易所的时间戳精度不一样。有的精确到毫秒,有的精确到微秒。如果你在做跨交易所套利,时间戳对齐就是个大问题。我曾经因为两个交易所的时间戳差了50毫秒,导致套利信号完全错位,亏了不少钱。
1.4 订单簿的微观结构
为了让你更直观地理解订单簿,我画了一张图。这张图展示了订单簿的核心逻辑:
这张图里,你能看到几个关键信息:
- 价差(Spread): 卖一价与买一价的差值。价差越小,流动性越好。
- 深度(Depth): 每个价格上的挂单数量。深度越厚,市场越能承受大额交易。
- 时间戳: 标注了订单簿快照的生成时间,确保你看到的是「实时」数据。
1.5 订单簿的更新机制
订单簿不是静态的。每秒钟可能有成百上千个订单进来、撤单、成交。交易所通常用两种方式推送订单簿数据:
- 快照(Snapshot): 全量推送当前所有挂单。适合初始化时使用。
- 增量更新(Incremental Update): 只推送变化的部分(新增、撤销、成交)。适合实时跟踪。
我个人建议:先用快照初始化本地订单簿,然后订阅增量更新流。这样既能保证数据完整,又能降低带宽消耗。
1.6 小结
订单簿是量化交易的「眼睛」。没有它,你看不到市场的真实面貌。限价单和市价单各有优劣,关键是根据策略需求选择。价格、数量、时间戳这三个要素,每一个都值得你深入研究。
好了,这一章就到这里。记住:订单簿不是死的,它是活的。每一笔挂单背后,都是一个交易者的真实意图。读懂它,你就能读懂市场。
公众号:蓝海资料掘金营,微信deep3321