订单簿分析:买卖盘口深度、订单簿斜率、流动性指标
订单簿,说白了就是交易所里所有挂单的实时快照。做高频交易的人,每天盯着这玩意儿看。我个人习惯把订单簿比作「市场的呼吸」——买卖双方的博弈,全写在这里了。
今天咱们聊聊三个核心维度:盘口深度、订单簿斜率、流动性指标。这三个东西,能帮你判断市场到底有没有「诚意」。
一、买卖盘口深度
盘口深度,就是看某个价位上挂了多少钱。比如买一挂了100手,买二挂了200手,这就是深度。
核心指标:
- 总深度:所有买盘或卖盘的挂单总量
- 加权深度:按价格加权后的深度,更真实
- 深度不平衡:买盘总深度 vs 卖盘总深度
实战经验:我在项目中遇到过,某只股票买一挂了5000手,但买二只有200手。这种「虚挂」很常见,大单撤单速度极快。你如果只看买一,容易被骗进去。
计算深度不平衡的代码,我一般这么写:
def depth_imbalance(bid_volumes, ask_volumes):
"""
计算买卖盘口深度不平衡
bid_volumes: 买盘各档位挂单量
ask_volumes: 卖盘各档位挂单量
"""
total_bid = sum(bid_volumes)
total_ask = sum(ask_volumes)
if total_ask == 0:
return 1.0 # 没有卖盘,极端看多
imbalance = (total_bid - total_ask) / (total_bid + total_ask)
return imbalance
这个值在 -1 到 1 之间。正数表示买盘强,负数表示卖盘强。嗯,这里要注意:极端值往往意味着反转。
二、订单簿斜率
订单簿斜率,衡量的是价格变动时,挂单量变化的「陡峭程度」。说白了,就是看市场对价格变化的敏感度。
怎么算?
我习惯用线性回归拟合价格-挂单量的关系。斜率越大,说明价格稍微一动,挂单量就剧烈变化——这种市场很「脆弱」。
import numpy as np
def orderbook_slope(prices, volumes):
"""
计算订单簿斜率
prices: 价格序列(从低到高)
volumes: 对应挂单量
"""
# 标准化处理
prices_norm = (prices - np.mean(prices)) / np.std(prices)
volumes_norm = (volumes - np.mean(volumes)) / np.std(volumes)
# 线性回归
slope = np.polyfit(prices_norm, volumes_norm, 1)[0]
return slope
我的习惯:斜率绝对值大于 0.8 时,我会警惕。这种市场,一个100手的单子就能把价格打穿。我曾经在ETH上吃过这种亏,斜率1.2,我挂了个市价单,直接滑了3个tick。
你想想看,斜率小的时候,说明市场「厚实」。大资金进出,价格波动小。这才是健康的流动性。
三、流动性指标
流动性,不是看挂单多不多,而是看你能不能「快速成交且不产生大的价格影响」。
常用指标:
| 指标 | 含义 | 计算方式 |
|---|---|---|
| 买卖价差 | 买一和卖一的价差 | ask_price - bid_price |
| 市场深度 | 吃掉N档需要多少钱 | 累计挂单量 × 价格 |
| Amihud指标 | 价格冲击成本 | |收益率| / 成交量 |
| 流动性比率 | 成交量 / 价格波动 | volume / price_range |
我个人最常用的是「市场深度」——算一下,吃掉买一到买五,总共需要多少钱。如果这个值很小,说明市场很「薄」。
def market_depth(price_levels, volume_levels, levels=5):
"""
计算前N档的市场深度
price_levels: 价格列表(从买一到买N)
volume_levels: 对应挂单量
"""
total_cost = 0
for i in range(min(levels, len(price_levels))):
total_cost += price_levels[i] * volume_levels[i]
return total_cost
避坑指南:我曾经在回测中只用了「买卖价差」来衡量流动性,结果实盘时发现价差很小,但一成交就滑点。后来才意识到,价差小不代表深度好——可能是有人在价差内挂了个小单,专门引诱你进去。
四、综合实战:订单簿信号系统
把上面三个指标结合起来,可以构建一个简单的信号系统。我一般这么用:
- 深度不平衡 > 0.6:买盘极强,考虑做多
- 订单簿斜率 < 0.3:市场厚实,可以大单进场
- 市场深度 > 阈值:流动性充足,滑点可控
三个条件同时满足,我才敢上仓位。少一个,我都只做小单测试。
下面这张图,是我自己总结的订单簿分析框架:
你看,这三个指标不是孤立的。深度不平衡告诉你方向,斜率告诉你市场厚度,流动性指标告诉你能不能做。三者结合,才能形成完整的判断。
最后说一句:订单簿数据更新极快,毫秒级变化。我建议你至少缓存最近100ms的数据,做滑动窗口分析。单看一帧,容易被噪声干扰。
好了,订单簿分析就聊到这儿。记住:市场深度是「量」,斜率是「敏感度」,流动性是「成本」。三个维度看齐了,你才能读懂订单簿里的「潜台词」。