一、订单簿基础:什么是限价订单簿?买卖盘口与价差概念
做量化交易这些年,我见过不少新手一上来就盯着K线猛看,却忽略了最底层的东西——订单簿。说实话,订单簿才是市场最真实的脉搏。K线是加工过的数据,而订单簿是原始数据,是买卖双方真金白银的博弈现场。
今天我们就来聊聊这个基础中的基础。你想想看,如果没有订单簿,交易所怎么知道谁想买、谁想卖?价格又是怎么撮合出来的?嗯,这就是我们要讲的核心。
1.1 限价订单簿的定义
限价订单簿,英文叫Limit Order Book,简称LOB。说白了,它就是一张大表,记录着所有交易者挂出的限价单。什么叫限价单?就是你指定一个价格,说「我只在这个价格买」或「我只在这个价格卖」。
举个例子。我觉得茅台现在2000块太贵了,我想1800块买入。那我就挂一个限价买单,价格1800,数量100股。这个订单就会进入订单簿,等着有人愿意1800卖给我。
我个人习惯把订单簿理解成一个「排队系统」。买单排一边,卖单排另一边。价格好的排在前面,价格差的排在后面。市场每时每刻都在撮合两边排队的人。
1.2 买卖盘口:Bid和Ask
订单簿分两边:买盘和卖盘。专业术语叫Bid和Ask。
- Bid(买盘):所有想买入的人挂出的订单。价格从高到低排列。
- Ask(卖盘):所有想卖出的人挂出的订单。价格从低到高排列。
这里有个关键点:买盘的最高价叫「最佳买价」,卖盘的最低价叫「最佳卖价」。这两个价格决定了当前市场能成交的范围。
我记得有一次做回测,发现策略在模拟环境里跑得挺好,一上实盘就亏钱。排查了半天,问题出在模拟器里没有模拟订单簿的深度。真实市场的买卖盘口变化极快,尤其是高频交易环境下,最佳买价和最佳卖价可能几毫秒就变一次。
1.3 价差:Spread
价差就是最佳卖价减去最佳买价。公式很简单:
Spread = Ask_Price - Bid_Price
举个例子:
最佳卖价(Ask):100.50
最佳买价(Bid):100.30
价差(Spread):0.20
价差是衡量市场流动性的重要指标。价差越小,说明市场越活跃,买卖双方越容易成交。价差越大,说明市场流动性差,你想快速成交就得付出更高的成本。
我曾经在某个小币种上吃过亏。那个币种流动性极差,价差经常达到1%以上。我挂了一个市价单买入,结果成交价比预期高了0.8%。这就是典型的「流动性溢价」——你为快速成交付出了代价。
1.4 订单簿的结构图
下面我用一张SVG图来展示订单簿的核心结构。这张图我画了很多遍,力求简洁明了。
这张图展示了典型的订单簿结构。左边是买盘,价格从高到低排列。右边是卖盘,价格从低到高排列。中间的价差就是买卖双方的距离。
你想想看,如果我想买入,我可以选择吃卖一的单子,立即成交。或者我挂一个买一的单子,等着别人来卖给我。这两种方式对应了市价单和限价单的区别。
1.5 订单簿的动态变化
订单簿不是静止的。每一秒都有新订单进来,也有订单被撤销或成交。我习惯把订单簿想象成一个「活的」数据结构。
常见的订单簿事件有四种:
- 新限价单进入:有人挂了新的买单或卖单
- 限价单被撤销:有人撤回了未成交的订单
- 限价单被修改:有人改了价格或数量
- 订单成交:买卖双方匹配成功
每次事件发生,订单簿都会更新。最佳买价和最佳卖价可能因此改变,价差也会随之波动。
1.6 为什么订单簿对价格发现重要?
价格发现,说白了就是市场怎么确定一个资产「应该」值多少钱。订单簿在这个过程中扮演了关键角色。
举个例子。假设某股票当前最佳买价100.20,最佳卖价100.30。突然一个大买家进场,一口气吃掉了卖一到卖五的所有订单。这时候最佳卖价变成了100.80。这个价格变化不是随机的,而是真实需求推动的。
我个人认为,订单簿比K线更能反映市场的真实意图。K线是历史数据,而订单簿是实时博弈。你看订单簿的深度和变化速度,就能感受到市场的情绪——是贪婪还是恐惧,是主动买入还是被动卖出。
1.7 小结
这一章我们讲了订单簿的基础概念。限价订单簿记录了所有未成交的限价单,买卖盘口展示了供需双方的博弈,价差则反映了市场的流动性状况。
记住三个核心点:
- 买盘是需求方,卖盘是供给方
- 最佳买价和最佳卖价决定了当前可成交的价格范围
- 价差越小,流动性越好,交易成本越低
嗯,基础打牢了,后面我们才能聊更深入的东西。比如订单簿的深度分析、订单流预测、以及如何利用订单簿数据构建交易策略。这些内容,我们后面慢慢展开。