订单簿基础:什么是订单簿?限价单与市价单的区别
做量化交易这些年,我见过不少新手一上来就盯着K线图猛看,却忽略了最底层的东西——订单簿。说实话,订单簿才是市场最真实的脉搏。K线是二手加工过的信息,而订单簿是原始数据,是买卖双方真金白银的博弈现场。
今天我们就来聊聊订单簿到底是什么,以及两种最基础的订单类型:限价单和市价单。搞懂这些,后面的策略回测才有根基。
一、订单簿的本质:一个实时更新的“挂单墙”
订单簿,说白了就是一个电子账本。它记录了当前市场上所有未成交的买卖意愿。你想想看,交易所就像一个中介,它把所有人的挂单按价格排好队,买价高的排前面,卖价低的排前面。
我习惯把订单簿想象成两面墙:
- 买单墙(Bid Side):所有人愿意买入的价格和数量,从高到低排列
- 卖单墙(Ask Side):所有人愿意卖出的价格和数量,从低到高排列
两堵墙之间的空隙,就是当前的市场价格区间。这个空隙越小,说明市场流动性越好。
核心概念:订单簿是市场微观结构的核心。它反映了供需关系的实时状态,是量化策略获取alpha的重要数据源。
我在项目中遇到过一件事:有一次做高频策略回测,用的都是1分钟K线数据,结果实盘跑起来完全不是那么回事。后来才发现,订单簿里的深度信息才是关键——大单挂单的撤单行为、买卖盘口的失衡,这些在K线里根本看不到。
二、限价单 vs 市价单:两种完全不同的交易哲学
这两种订单类型,是交易系统里最基础的操作。但很多人对它们的理解只停留在表面。嗯,这里要注意,它们的区别不仅仅是“能不能指定价格”这么简单。
1. 限价单(Limit Order)
限价单,就是你指定一个价格,只有市场达到这个价格时才会成交。说白了,你是“守株待兔”。
- 买单限价:你出价100元,只有别人愿意以100元或更低卖给你时,才会成交
- 卖单限价:你出价110元,只有别人愿意以110元或更高买你的货时,才会成交
限价单最大的好处是——你控制了成本。不会因为市场突然波动而买到高价或卖在低价。
我的经验:做做市商策略时,我几乎只用限价单。因为我们需要赚取买卖价差,必须精确控制入场价格。我曾经因为一次市价单失误,在流动性枯竭时多付出了0.3%的成本,那笔交易直接亏了。
但限价单也有个致命缺点:可能无法成交。如果价格始终到不了你的挂单价,你就只能干瞪眼。
2. 市价单(Market Order)
市价单,就是“不管什么价格,我现在就要成交”。你只指定数量,不指定价格。系统会以当前市场上最优的可成交价格帮你吃掉对手单。
- 买入市价:直接吃掉卖一、卖二、卖三...直到买够数量
- 卖出市价:直接吃掉买一、买二、买三...直到卖够数量
市价单的核心优势是——成交确定性高。只要市场有足够的流动性,你几乎肯定能成交。
避坑指南:我曾经在流动性差的币种上用过市价单,结果滑点大得吓人。明明看到卖一价格是100元,但因为我买的量太大,直接把卖一到卖五全吃掉了,最后成交均价变成了103元。这就是市价单的“滑点风险”。
三、两种订单的对比:一张表说清楚
| 对比维度 | 限价单 | 市价单 |
|---|---|---|
| 价格控制 | 完全控制,指定价格 | 无控制,按市场最优价成交 |
| 成交确定性 | 低,可能无法成交 | 高,几乎必成交 |
| 滑点风险 | 无滑点(未成交前) | 高,尤其大单时 |
| 对市场影响 | 提供流动性,挂单在订单簿上 | 消耗流动性,直接吃掉对手单 |
| 适用场景 | 做市、套利、低频策略 | 抢单、止损、高频策略 |
你想想看,这两种订单其实代表了两种不同的交易角色。限价单是“流动性提供者”,市价单是“流动性消耗者”。交易所喜欢限价单,因为流动性越深,市场越健康。但作为交易者,你得根据策略需求来选择。
四、订单簿的核心数据结构
搞量化交易,你得能读懂订单簿的数据结构。我习惯用Python的字典或pandas的DataFrame来模拟它。
# 一个简化的订单簿数据结构示例
order_book = {
'bids': [ # 买单,从高到低排列
{'price': 101.5, 'size': 200},
{'price': 101.0, 'size': 500},
{'price': 100.5, 'size': 300},
],
'asks': [ # 卖单,从低到高排列
{'price': 102.0, 'size': 150},
{'price': 102.5, 'size': 400},
{'price': 103.0, 'size': 600},
]
}
# 买卖价差
spread = order_book['asks'][0]['price'] - order_book['bids'][0]['price']
print(f"当前买卖价差: {spread:.2f}")
这段代码虽然简单,但它是所有订单簿分析的基础。你可以在上面计算加权平均价、深度分布、买卖压力比等等。
五、订单簿的核心逻辑:一张图看懂
下面我用一张SVG图来展示订单簿的核心逻辑。这张图我画了很多遍,每次给团队新人培训都用它。
这张图里,买单墙从高到低排列,卖单墙从低到高排列。中间的价差就是市场流动性的晴雨表。我习惯每天开盘前先看一眼这个价差——如果价差突然扩大,说明市场情绪不稳定,这时候做策略要格外小心。
六、实战中的选择:什么时候用什么单?
搞清楚了概念,咱们聊聊实战。我个人习惯这样选择:
- 做趋势跟踪策略:用市价单入场,限价单出场。因为趋势来了,你得先上车,别在乎那点滑点。但出场时可以用限价单锁定利润。
- 做套利策略:几乎全用限价单。套利赚的就是微小的价差,市价单那点滑点就能把利润吃光。
- 做高频做市:限价单为主,偶尔用市价单调整库存。我曾经在某个交易所做做市,80%的订单都是限价单,只有库存偏离目标时才用市价单快速调整。
一个小技巧:如果你不确定用哪种订单,可以试试“冰山订单”——把大单拆成多个小限价单,既能控制价格,又不会暴露你的真实意图。我在做大宗交易时经常用这招。
好了,订单簿的基础就聊到这儿。限价单和市价单的区别,说白了就是“要价格还是要确定性”的选择题。没有绝对的好坏,关键看你的策略需要什么。
公众号:蓝海资料掘金营,微信deep3321