第二章 失衡定义:盘口失衡的数学定义、买卖压力比、委托量差与量比、瞬时失衡与持续失衡

各位同学,咱们今天来聊聊盘口失衡到底怎么定义。说实话,我见过太多人一上来就盯着盘口看,觉得买一卖一差很多就是失衡。嗯,这想法太粗糙了。量化交易讲究的是精确,咱们得用数学说话。

2.1 盘口失衡的数学定义

先给个最基础的定义。盘口失衡,说白了就是买方力量与卖方力量不匹配。但怎么量化这个不匹配?我个人的习惯是用一个比值来衡量。

假设我们取盘口前五档数据:

  • 买一到买五的委托量:b1, b2, b3, b4, b5
  • 卖一到卖五的委托量:a1, a2, a3, a4, a5

那么最简单的失衡定义就是:

失衡度 = (总买量 - 总卖量) / (总买量 + 总卖量)

这个值范围在 -1 到 1 之间。正值表示买方占优,负值表示卖方占优。绝对值越大,失衡越严重。

核心要点:失衡度不是看绝对差值,而是看相对比例。100手对50手,和1000手对500手,失衡度是一样的,都是0.33。但市场冲击完全不同,这个后面会讲。

我在项目中遇到过一个问题:只用前五档够不够?说实话,对于高频策略,前五档足够了。但如果你做的是分钟级别的交易,我建议把深度扩展到十档甚至二十档。为什么?因为大单往往藏在深处,浅层数据容易被操纵。

2.2 买卖压力比

买卖压力比(Bid-Ask Pressure Ratio)是我个人最常用的指标之一。它比单纯的失衡度更精细。

定义如下:

买卖压力比 = (买方加权委托量) / (卖方加权委托量)

加权方式有很多种,我推荐用距离价格的倒数作为权重。离当前价格越近的档位,权重越大。

档位 距离价格 权重 委托量 加权量
买一 1 tick 1.0 500 500
买二 2 tick 0.5 300 150
买三 3 tick 0.33 200 66
卖一 1 tick 1.0 200 200
卖二 2 tick 0.5 400 200
卖三 3 tick 0.33 600 198

算下来,买方加权总量 = 500+150+66 = 716,卖方加权总量 = 200+200+198 = 598。压力比 = 716/598 ≈ 1.20。大于1,说明买方压力更大。

我的经验:压力比在0.8到1.2之间,属于正常波动。超过1.5或低于0.6,就要警惕了。我曾经用这个指标抓过好几次大单异动,效果不错。

2.3 委托量差与量比

委托量差,这个更直观。就是买一量减去卖一量。但光看这个容易踩坑。

举个例子:买一挂1000手,卖一挂500手。量差是500手,看起来买方很强。但你想想看,如果卖一后面还有3000手在排队呢?这个量差就没什么意义了。

所以我更推荐用量比(Order Imbalance Ratio):

量比 = (买一量 - 卖一量) / (买一量 + 卖一量)

这个比值同样在 -1 到 1 之间。我个人的阈值是:

  • 量比 > 0.3:买方显著占优
  • 量比 < -0.3:卖方显著占优
  • 其他:正常状态

避坑指南:我曾经吃过一次亏。某只股票量比突然冲到0.6,我以为是买方强势,直接追了进去。结果发现是主力在买一挂大单诱多,然后偷偷在卖盘出货。所以量比一定要结合成交数据一起看,别被挂单骗了。

2.4 瞬时失衡与持续失衡

这是两个完全不同的概念,很多新手搞混。

瞬时失衡:指某一时刻的盘口失衡。比如现在这一刻,买盘比卖盘多200手。这可能是随机波动,也可能是大单进场。单看瞬时失衡,噪声太大。

持续失衡:指失衡状态维持了一段时间。比如连续5秒,每秒钟的失衡度都大于0.3。这才是真正有意义的信号。

我一般用滑动窗口来判断持续失衡。窗口大小设为3秒或5秒,具体看品种的流动性。

def is_sustained_imbalance(order_book_history, window=5, threshold=0.3):
    """
    判断是否存在持续失衡
    order_book_history: 过去N个时刻的盘口数据
    window: 窗口大小(秒)
    threshold: 失衡阈值
    """
    count = 0
    for tick in order_book_history[-window:]:
        imbalance = tick['total_bid'] - tick['total_ask']
        ratio = imbalance / (tick['total_bid'] + tick['total_ask'])
        if abs(ratio) > threshold:
            count += 1
    # 如果窗口内超过80%的时刻都失衡,判定为持续失衡
    return count / window > 0.8

这段代码我用了好几年,回测效果不错。但要注意,不同品种的参数要调。比如比特币的波动大,窗口可以设短一点;大盘股流动性好,窗口可以长一点。

核心区别:瞬时失衡是「点」,持续失衡是「段」。做高频交易,看瞬时失衡就够了。做日内趋势,必须等持续失衡确认。我自己做日内策略时,至少等3次连续失衡信号才进场。

2.5 知识体系总览

下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍应该就能理解整个框架。

盘口失衡知识体系 盘口失衡 数学定义 买卖压力比 委托量差与量比 失衡度 = (买-卖)/(买+卖) 加权委托量比值 量比 = (b1-a1)/(b1+a1) 前五档 vs 全深度 阈值设定:0.8~1.2正常 阈值:±0.3为显著 瞬时失衡 vs 持续失衡 瞬时失衡:单点信号,噪声大 持续失衡:窗口内多次确认,可信度高

这张图把咱们今天讲的内容都串起来了。从最底层的数学定义,到买卖压力比和量比的计算,再到瞬时失衡和持续失衡的区分。你保存下来,以后写策略的时候对照着看。

好了,这一章的内容就到这里。记住,定义清楚是量化交易的第一步。别嫌麻烦,把每个指标的计算逻辑吃透,后面写策略才能得心应手。


公众号:蓝海资料掘金营,微信deep3321