一、订单簿基础:限价单与市价单、买卖盘口、深度图、价差与滑点
各位同学,咱们今天聊点实在的。订单簿这东西,说白了就是交易所里那个「谁想买、谁想卖」的实时大名单。我做了这么多年量化,见过太多人一上来就研究什么高级算法,结果连订单簿都读不利索——嗯,这就像开车不看仪表盘,迟早要出事。
1.1 限价单与市价单:两种最基本的武器
先说说最基础的两个概念。你打开任何一个交易软件,下单界面通常就两个选项:限价单和市价单。
限价单,就是你指定一个价格,说「我只在这个价或者更好的价成交」。比如BTC当前报价50000,你挂个49900的买单,那就得等价格跌到49900才能成交。我在项目中遇到过不少新手,喜欢挂个超低价等着捡漏,结果行情一路狂奔,单子永远没成交——这就是典型的「挂单挂到天荒地老」。
市价单就简单粗暴了:不管当前什么价,我就要立刻成交。你点下去,系统直接按当前最优的对手盘价格给你吃掉。好处是快,坏处嘛...你想想看,如果盘口很薄,一个市价单下去可能直接打穿好几个价位,成交均价远高于你的预期。
核心区别一句话:限价单要价格不要速度,市价单要速度不要价格。
我个人习惯是:做策略交易时,90%的情况用限价单。为什么?因为市价单的滑点成本,长期下来能吃掉你一大半利润。我曾经做过一个回测,同样的策略,用市价单执行比用限价单执行,年化收益差了将近8个点——这可不是小数目。
1.2 买卖盘口:订单簿的骨架
订单簿长什么样?我画个简单的示意图你就明白了。
看到没?左边是卖盘,右边是买盘。卖盘从低到高排列,买盘从高到低排列。中间那个空隙就是价差。买1和卖1之间的差距,就是市场当前的流动性成本。
我记得刚入行那会儿,有个老交易员跟我说:「小伙子,盯盘先盯买1卖1,这两个价格决定了你能不能活着出来。」当时觉得夸张,后来自己做策略回测才发现——价差大的品种,你来回吃几次就亏光了。
1.3 深度图:一眼看穿市场厚度
深度图就是把订单簿可视化。横轴是价格,纵轴是累计挂单量。左边是买盘累积,右边是卖盘累积。中间那个「V」字形的缺口,就是价差。
怎么看深度图?我教你三个要点:
- 看斜率:曲线越陡,说明这个价位附近挂单越集中,支撑或阻力越强
- 看深度:曲线延伸得越远,说明市场在更广的价格范围内有流动性
- 看不对称性:买盘深度远大于卖盘深度,说明买方力量强,反之亦然
实战技巧:我在做拆单算法时,会先拉一下深度图。如果卖盘深度在某个价位突然变薄,我会把大单拆成小单,在那个价位之前分批吃掉——避免一脚踩空把价格打飞。
1.4 价差:流动性的直接体现
价差就是买1和卖1之间的价格差。它直接反映了市场的流动性状况。
| 市场状态 | 价差特征 | 典型场景 |
|---|---|---|
| 高流动性 | 价差小(如BTC: 0.01%) | 主流币种、交易活跃时段 |
| 低流动性 | 价差大(如某些山寨币: 1%+) | 冷门品种、深夜时段 |
| 剧烈波动 | 价差瞬间扩大 | 重大消息发布、插针行情 |
为什么会这样?你想想看,流动性好的市场,买卖双方都愿意在更窄的范围内报价,价差自然就小。反之,没人交易的品种,你挂个单可能等半天都没人理你,做市商只能把价差拉大来保护自己。
我曾经吃过一次亏:在某个流动性极差的代币上,我挂了个市价单想快速进场,结果直接打穿了5个价位,成交均价比我预期的贵了2.3%。从那以后,我给自己定了个规矩——价差超过0.5%的品种,坚决不用市价单。
1.5 滑点:你的订单和成交价之间的鸿沟
滑点,就是你下单时的预期价格和实际成交价格之间的差值。它分两种:
- 正向滑点:成交价比预期好(比如你买到了更便宜的价格)
- 负向滑点:成交价比预期差(最常见的情况)
滑点的来源主要有三个:
- 市场波动:从你下单到订单到达交易所,价格已经变了
- 流动性不足:你的订单太大,吃穿了盘口
- 网络延迟:你的订单比别人慢了一步
避坑指南:我曾经在回测中忽略滑点,结果实盘跑起来直接亏了15%。记住:回测一定要加滑点模型,至少按价差的50%来估算。别问我怎么知道的——都是真金白银换来的教训。
1.6 订单簿的动态博弈:一个简单的例子
咱们用个具体场景来串一下这些概念。假设当前订单簿如下:
卖盘:
卖1: 100.10 数量 100
卖2: 100.20 数量 200
卖3: 100.30 数量 300
买盘:
买1: 100.00 数量 150
买2: 99.90 数量 250
买3: 99.80 数量 400
价差 = 100.10 - 100.00 = 0.10
现在你下了一个市价买单,数量300。会发生什么?
- 先吃掉卖1的100个,成交价100.10
- 再吃掉卖2的200个,成交价100.20
- 总成交均价 = (100×100.10 + 200×100.20) / 300 = 100.1667
- 滑点 = 100.1667 - 100.10 = 0.0667
看到了吗?一个市价单下去,直接把价格推高了0.0667。这就是市场冲击成本。如果你用的是拆单算法,把这300个单子拆成10笔小单,每笔30个,分批进场,冲击成本就能大幅降低。
核心结论:订单簿不是静止的,它是活的。每一笔订单都在改变盘口结构,而聪明的交易者会利用这种动态变化来优化自己的执行成本。
好了,这一章的内容就到这里。订单簿是拆单算法的地基,地基不牢,上面盖什么楼都得塌。下一章咱们聊聊「时间切片与订单簿快照」,看看怎么把连续的订单簿切成一段一段来分析。
公众号:蓝海资料掘金营,微信deep3321