1. 订单簿基础:什么是订单簿、限价单与市价单、买卖盘口与价差
做量化交易这些年,我见过不少新手一上来就盯着K线猛看,却忽略了最底层的东西——订单簿。说实话,订单簿才是市场的「原汁原味」。K线是加工过的数据,而订单簿是实时的、未经修饰的买卖意愿集合。今天我们就从最基础的东西聊起。
1.1 什么是订单簿?
订单簿,英文叫Order Book。说白了,它就是一个「挂单列表」。交易所把所有交易者挂出来的买单和卖单,按价格从高到低排好,展示给你看。
你可以把它想象成一个菜市场的大黑板。左边写着「我想买,出价多少」,右边写着「我想卖,要价多少」。每个价格后面,还标着有多少人愿意在这个价格成交。
我刚开始做高频策略时,犯过一个低级错误——只看最新成交价,不看订单簿深度。结果有一次,我的策略在流动性极差的时候下了个大单,直接把价格打穿了两个档位。嗯,那笔亏损让我记住了:订单簿才是市场的真实面貌。
1.2 限价单 vs 市价单
这两种订单类型,是交易世界最基本的「武器」。我建议每个交易者都要像熟悉自己的手指一样熟悉它们。
限价单(Limit Order)
限价单就是你指定一个价格,说「我只在这个价格或更好的价格成交」。比如BTC当前价格30000,你挂一个29900的买单。那你就等着,等价格跌到29900才会成交。
优点很明显:你能控制成交价格。缺点也明显:可能永远成交不了。我在做套利策略时,经常用限价单来「守株待兔」,挂一个远低于市价的买单,等着市场波动来「喂」我。
市价单(Market Order)
市价单就是「不管什么价格,我现在就要成交」。你下市价买单,系统会立刻吃掉订单簿上最便宜的卖单。成交价就是当前最优卖价。
市价单保证成交,但不保证价格。遇到流动性差的时候,你可能吃到很差的价位。我曾经在某个小币种上吃过这个亏——一个市价卖单下去,直接把买一、买二、买三全打穿了,滑点高达0.5%。
| 订单类型 | 成交保证 | 价格控制 | 典型场景 |
|---|---|---|---|
| 限价单 | 否 | 完全控制 | 做市、挂单等待 |
| 市价单 | 是 | 无控制 | 快速建仓、止损 |
1.3 买卖盘口与价差
盘口,就是订单簿上最前面的几档价格。买一、买二、买三...卖一、卖二、卖三...这些构成了市场的「前沿阵地」。
价差(Spread),就是最优卖价减去最优买价。也就是卖一价减去买一价。
举个例子:
- 买一:29990,数量 2.5 BTC
- 卖一:30010,数量 1.8 BTC
- 价差 = 30010 - 29990 = 20 USDT
价差越小,说明市场流动性越好。像BTC在主流交易所,价差通常只有几个tick。但一些小币种,价差可能大到1%甚至更多。
我记得有一次做回测,发现策略在历史数据上表现很好,但实盘一跑就亏钱。后来排查发现,回测时我忽略了价差成本。每次交易都按中间价成交,但实盘里你要么吃买一价,要么吃卖一价,一来一回就是两个价差。这个坑,我建议你千万别踩。
1.4 订单簿的结构图
下面我用一张SVG图,把订单簿的核心结构画出来。你看一眼就能明白。
这张图里,左边是买单墙,价格从低到高排列。最上面是买一,出价最高。右边是卖单墙,价格从低到高排列。最下面是卖一,要价最低。中间的橙色虚线就是价差。
你想想看,如果你现在下一个市价买单,系统会直接吃掉卖一的1.8个BTC。如果还不够,继续吃卖二、卖三...这就是市价单的「吃单」行为。
而如果你挂一个限价买单,比如挂29995,那你就排在买一和买二之间。等价格波动到你这里,才会成交。
好了,这一章的内容就到这里。订单簿看似简单,但里面藏着很多门道。我个人觉得,理解订单簿是走向专业量化交易的第一步。后面我们会逐步深入,看看怎么从订单簿数据里挖掘交易信号。