第二章 失衡定义:盘口失衡的数学定义、买卖压力比、委托量差与量比、瞬时失衡与持续失衡
各位同学,咱们今天来聊聊盘口失衡到底怎么定义。说实话,我见过太多人一上来就盯着盘口看,觉得买一卖一差很多就是失衡。嗯,这想法太粗糙了。量化交易讲究的是精确,咱们得用数学说话。
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 知识体系总览
下面这张图是我自己画的,把本章的核心逻辑串起来了。你看一遍应该就能理解整个框架。
这张图把咱们今天讲的内容都串起来了。从最底层的数学定义,到买卖压力比和量比的计算,再到瞬时失衡和持续失衡的区分。你保存下来,以后写策略的时候对照着看。
好了,这一章的内容就到这里。记住,定义清楚是量化交易的第一步。别嫌麻烦,把每个指标的计算逻辑吃透,后面写策略才能得心应手。
公众号:蓝海资料掘金营,微信deep3321