一、订单簿基础概念
什么是订单簿?
订单簿,说白了就是交易所里所有买卖挂单的实时清单。我刚开始接触量化交易时,总觉得这东西就是个简单的价格列表,后来才发现——它其实是市场微观结构的核心。
你想想看,每一笔成交的背后,都是买方和卖方的博弈。订单簿就是这场博弈的实时记分牌。它记录了所有尚未成交的限价单,按价格从高到低排列。
我个人习惯把订单簿理解成「市场的骨架」。价格走势是皮肉,成交量是血液,而订单簿就是支撑这一切的骨架结构。
买卖盘口
买卖盘口,就是订单簿的两侧——买盘和卖盘。
- 买盘(Bid):买方愿意出的最高价格,以及对应的挂单量
- 卖盘(Ask):卖方愿意接受的最低价格,以及对应的挂单量
这里有个关键概念叫「价差」(Spread),就是卖一价减去买一价。我在项目中遇到过不少新手,看到价差很小就觉得流动性好,其实不一定——还要看每个价位的挂单深度。
| 术语 | 含义 | 我的经验 |
|---|---|---|
| 买一价 | 最高买入价 | 这是多头最着急的人 |
| 卖一价 | 最低卖出价 | 这是空头最着急的人 |
| 价差 | 卖一 - 买一 | 价差越小,流动性越好 |
| 深度 | 每个价位的挂单量 | 深度越厚,价格越稳 |
深度图的基本构成要素
深度图,就是把订单簿可视化。横轴是价格,纵轴是累计挂单量。左侧是买盘,右侧是卖盘,中间那条竖线就是当前成交价。
嗯,这里要注意——深度图有两种画法:一种是阶梯状,一种是平滑曲线。我个人更习惯看阶梯状,因为它能清晰展示每个价位的挂单「厚度」。
我曾经踩过一个坑:只看深度图的形状,没注意挂单的更新频率。结果发现有些挂单是「幽灵单」——挂上去就撤,根本不是为了成交,而是为了影响市场情绪。
核心逻辑框架
下面这张图,是我自己总结的订单簿分析框架。你看一眼就明白了:
你看,订单簿分析其实就三个维度:价格、数量、时间。缺一不可。
价格维度告诉你「市场在什么位置博弈」,数量维度告诉你「博弈的激烈程度」,时间维度告诉你「博弈的持续性」。我每次做策略回测,都会把这三个维度的数据一起喂进去,效果比单看价格好得多。
一个简单的代码示例
下面是我常用的订单簿数据抓取代码片段,用Python的ccxt库:
import ccxt
exchange = ccxt.binance()
orderbook = exchange.fetch_order_book('BTC/USDT')
# 买盘前5档
bids = orderbook['bids'][:5]
# 卖盘前5档
asks = orderbook['asks'][:5]
print("买盘:")
for price, volume in bids:
print(f" 价格: {price:.2f}, 数量: {volume:.4f}")
print("卖盘:")
for price, volume in asks:
print(f" 价格: {price:.2f}, 数量: {volume:.4f}")
# 计算价差
spread = asks[0][0] - bids[0][0]
print(f"当前价差: {spread:.2f}")
这段代码虽然简单,但我在实盘交易中每天都会跑。为什么?因为价差的变化,往往预示着市场即将变盘。
好了,订单簿的基础概念就讲到这里。记住一句话:订单簿不是历史,而是未来——它反映的是市场参与者接下来想干什么。