3. 订单簿状态描述:买卖盘口的分布特征,深度图的绘制与解读,价差与市场深度
好,我们进入第三讲。订单簿这东西,说白了就是市场的「实时心电图」。你盯着它看,能感受到多空双方在每一个价位上的博弈。我个人习惯,每天早上开盘前,先扫一眼订单簿的形态,心里就有个底了。
3.1 买卖盘口的分布特征
订单簿由两个核心部分组成:买盘(Bid)和卖盘(Ask)。每一侧都按价格从高到低(买盘)或从低到高(卖盘)排列。但真正有意思的,是这些挂单的分布形态。
我总结了几种常见的分布特征:
- 陡峭型分布:挂单高度集中在最优买卖价附近。说明市场意见比较一致,流动性集中在窄区间。一旦突破,行情往往很剧烈。
- 平坦型分布:挂单在各个价位上分布均匀。说明市场分歧大,多空双方都在试探。这种时候,价格容易反复震荡。
- 缺口型分布:某个价位区间几乎没有挂单。这通常是快速行情留下的「真空带」。价格回补时,往往一穿而过。
- 堆积型分布:某个价位出现巨量挂单。这通常是机构或做市商在「护盘」或「压盘」。我曾经在监控一个币种时,发现某个价位连续三天挂单量异常,后来果然出了大消息。
核心指标: 我个人常用「挂单集中度」这个指标,即前5档挂单量占总挂单量的比例。比例越高,说明流动性越集中,市场越容易在短时间内被「打穿」。
3.2 深度图的绘制与解读
深度图,就是把订单簿可视化。横轴是价格,纵轴是累计挂单量。买盘从最优买价向左延伸,卖盘从最优卖价向右延伸。两条曲线围成的「V」形区域,就是市场的深度。
我手绘一个简单的深度图结构,你感受一下:
解读深度图,我一般看三个点:
- 曲线的陡峭程度:越陡峭,说明流动性越差,大单容易造成价格滑点。
- 两侧的对称性:买盘深还是卖盘深?不对称往往预示着短期方向。
- 「V」形底部的宽度:也就是价差。价差越宽,交易成本越高。
实战技巧: 我习惯把深度图叠加在K线图下方。当深度图出现「左深右浅」(买盘厚、卖盘薄)时,往往是短期底部的信号。反之亦然。但这需要结合成交量验证,别单看。
3.3 价差与市场深度
价差(Spread),就是最优卖价减去最优买价。它是市场流动性的直接体现。价差越小,流动性越好,交易成本越低。
但价差只是「表层流动性」。真正决定你能成交多少的,是市场深度(Market Depth)。
举个例子:
| 指标 | 市场A | 市场B |
|---|---|---|
| 最优买价 | 100.00 | 100.00 |
| 最优卖价 | 100.01 | 100.01 |
| 价差 | 0.01 | 0.01 |
| 前5档买盘总量 | 1,000股 | 10股 |
| 前5档卖盘总量 | 1,200股 | 8股 |
你看,两个市场价差一样,但市场A的深度是市场B的100倍。如果你要买入500股,在市场A可以几乎无滑点成交,在市场B可能直接把价格推到天上去了。
避坑指南: 我曾经在某个流动性较差的品种上,只看价差就下了大单。结果成交均价远高于预期。后来我养成了习惯:下单前一定看「深度穿透成本」——即吃掉前N档挂单所需的资金量。这个指标比价差更实用。
嗯,这里要注意一个概念:有效价差。它考虑了深度因素。公式很简单:
有效价差 = 实际成交均价 - 最优买卖价中点
如果有效价差远大于名义价差,说明市场深度不足,你的订单「穿透」了表层流动性。
我个人习惯,在策略中会动态监控「深度斜率」——即每变动一个价位,累计挂单量的变化率。斜率越大,说明该价位附近的流动性越集中。这在做高频策略时特别有用。
最后,分享一个我常用的深度指标计算代码片段:
def compute_depth_metrics(order_book, levels=5):
"""
计算订单簿深度指标
:param order_book: 订单簿数据,包含 bids 和 asks
:param levels: 考虑的档位数
:return: 深度指标字典
"""
# 提取前N档买卖盘
top_bids = order_book['bids'][:levels]
top_asks = order_book['asks'][:levels]
# 计算累计深度
bid_depth = sum([qty for price, qty in top_bids])
ask_depth = sum([qty for price, qty in top_asks])
# 计算加权平均价格
bid_wap = sum([price * qty for price, qty in top_bids]) / bid_depth
ask_wap = sum([price * qty for price, qty in top_asks]) / ask_depth
# 深度不平衡指标
depth_imbalance = (bid_depth - ask_depth) / (bid_depth + ask_depth)
# 有效价差(考虑深度加权)
effective_spread = ask_wap - bid_wap
return {
'bid_depth': bid_depth,
'ask_depth': ask_depth,
'depth_imbalance': depth_imbalance,
'effective_spread': effective_spread
}
这个函数我用了好几年,简单但有效。你想想看,有了这些指标,你就能量化地判断:当前市场的「真实流动性」到底怎么样,而不是只看表面价差。
总结一下: 订单簿状态描述,核心就是三件事——看分布形态、读深度图、算价差与深度。这三者结合,你就能对市场的「微观结构」有个清晰的把握。说白了,就是知道「谁在什么价位等着你」。