订单簿分析:买卖盘口深度、订单簿斜率、流动性指标

订单簿,说白了就是交易所里所有挂单的实时快照。做高频交易的人,每天盯着这玩意儿看。我个人习惯把订单簿比作「市场的呼吸」——买卖双方的博弈,全写在这里了。

今天咱们聊聊三个核心维度:盘口深度、订单簿斜率、流动性指标。这三个东西,能帮你判断市场到底有没有「诚意」。

一、买卖盘口深度

盘口深度,就是看某个价位上挂了多少钱。比如买一挂了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

避坑指南:我曾经在回测中只用了「买卖价差」来衡量流动性,结果实盘时发现价差很小,但一成交就滑点。后来才意识到,价差小不代表深度好——可能是有人在价差内挂了个小单,专门引诱你进去。

四、综合实战:订单簿信号系统

把上面三个指标结合起来,可以构建一个简单的信号系统。我一般这么用:

  1. 深度不平衡 > 0.6:买盘极强,考虑做多
  2. 订单簿斜率 < 0.3:市场厚实,可以大单进场
  3. 市场深度 > 阈值:流动性充足,滑点可控

三个条件同时满足,我才敢上仓位。少一个,我都只做小单测试。

下面这张图,是我自己总结的订单簿分析框架:

订单簿分析框架 盘口深度 总深度 加权深度 深度不平衡 订单簿斜率 线性回归拟合 斜率绝对值 市场脆弱度 流动性指标 买卖价差 市场深度 Amihud指标 综合信号输出 深度不平衡 + 斜率 + 流动性 → 交易决策

你看,这三个指标不是孤立的。深度不平衡告诉你方向,斜率告诉你市场厚度,流动性指标告诉你能不能做。三者结合,才能形成完整的判断。

最后说一句:订单簿数据更新极快,毫秒级变化。我建议你至少缓存最近100ms的数据,做滑动窗口分析。单看一帧,容易被噪声干扰。

好了,订单簿分析就聊到这儿。记住:市场深度是「量」,斜率是「敏感度」,流动性是「成本」。三个维度看齐了,你才能读懂订单簿里的「潜台词」。

无相订单流研究社 微信Lucian808555