本文是《量化指标解码》系列的第11篇,我们将深入解码挤压动量(Squeeze Momentum)指标,从布林带与肯特纳通道的挤压判断到动量方向的精准捕捉,从状态标记的视觉化到背离信号的智能检测,让你掌握在市场低波动整理后捕捉突破行情的核心技术。

挤压动量效果图
写在前面
上一篇讲了斐波那契入场带,有读者私信说这个4层入场系统确实能避免追高,但遇到横盘整理突然爆发的行情总是抓不住节奏。
这个问题我也遇到过。横盘的时候不敢进,突破的时候又担心是假突破,等确认了趋势价格已经走了一大段。后来发现,关键是要在横盘时就做好准备,识别出"低波动整理"的状态,这样突破来临时才能反应够快。
挤压动量(Squeeze Momentum)就是专门干这个的。它通过布林带和肯特纳通道的对比,告诉你市场什么时候在"挤压"(低波动整理),什么时候在"释放"(波动扩大),再配合动量柱显示方向和强度,让你在整理末期就能提前布局。
挤压动量是什么?
挤压动量(Squeeze Momentum)的核心思想很简单:市场在低波动整理后,往往会有一次大的爆发性行情。
这个指标做了两件事:
-
判断挤压状态:通过布林带和肯特纳通道的相对位置,识别市场是在整理还是在趋势中
-
显示动量方向:用柱状图展示价格动量的方向和强度,帮你判断突破后往哪个方向走
举个例子,市场横盘整理了两周,波动率越来越低,这时候挤压动量会显示金色的菱形标记,告诉你"正在挤压"。突然某天,波动率扩大,标记变成灰色十字,同时动量柱开始向上拉升,这就是做多的信号。
这个指标的精妙之处在于,它不是等突破发生后才提示你,而是在横盘时就明确标记出"准备阶段",让你有时间提前布局。
挤压动量的计算原理
挤压动量(Squeeze Momentum)的计算分为4个步骤,每一步都很关键。
第一步:计算布林带
布林带用来衡量价格的波动范围,基于标准差。
def calculate_bollinger_bands(closes, length=20, mult=2.0):
"""计算布林带"""
bb_upper, bb_basis, bb_lower = talib.BBANDS(
closes,
timeperiod=length,
nbdevup=mult,
nbdevdn=mult,
matype=0 # SMA
)
return bb_upper, bb_basis, bb_lower
第二步:计算肯特纳通道
肯特纳通道用ATR(真实波幅)来衡量波动,比布林带更稳定。
def calculate_keltner_channel(closes, highs, lows, length=20, mult=1.5, use_tr=True):
"""计算肯特纳通道"""
kc_ma = talib.SMA(closes, length)
if use_tr:
ranges = talib.TRANGE(highs, lows, closes)
else:
ranges = highs - lows
range_ma = talib.SMA(ranges, length)
kc_upper = kc_ma + range_ma * mult
kc_lower = kc_ma - range_ma * mult
return kc_upper, kc_ma, kc_lower
第三步:判断挤压状态
对比布林带和肯特纳通道的位置关系。
# 挤压状态:布林带完全在肯特纳通道内部
sqz_on = (bb_lower > kc_lower) & (bb_upper < kc_upper)
# 释放状态:布林带突破肯特纳通道
sqz_off = (bb_lower < kc_lower) & (bb_upper > kc_upper)
这一步是核心。当布林带收窄到肯特纳通道内部时,说明市场波动率极低,正在整理;当布林带突破肯特纳通道时,说明波动率扩大,趋势来了。
第四步:计算动量值
动量值告诉你突破后往哪个方向走。
def calculate_momentum(closes, highs, lows, length=20):
"""计算动量值"""
highest_high = talib.MAX(highs, length)
lowest_low = talib.MIN(lows, length)
avg_hl = (highest_high + lowest_low) / 2
sma_close = talib.SMA(closes, length)
avg_hlc = (avg_hl + sma_close) / 2
source_minus_avg = closes - avg_hlc
val = talib.LINEARREG(source_minus_avg, timeperiod=length)
return val
这个计算方法用线性回归平滑了价格与均值的差值,让动量变化更清晰。
把这四步串起来,就得到了完整的挤压动量指标:
-
金色菱形:挤压状态,低波动整理,准备突破
-
灰色十字:释放状态,波动扩大,趋势进行中
-
蓝色十字:中性状态,没有明确的挤压或释放
-
动量柱:红色/绿色柱子显示动量方向和强度
挤压动量怎么用?
什么时候准备入场?
看到金色菱形标记时,就要开始关注了。这说明市场在横盘整理,波动率越来越低,随时可能突破。
这时候不要急着进场,而是观察动量柱的变化。如果动量柱开始从负值转正,或者从正值加速上涨,就是多头蓄力的信号。
什么时候确认入场?
当金色菱形变成灰色十字,同时动量柱方向明确时,就是入场时机。
-
动量柱转正且加速向上:做多
-
动量柱转负且加速向下:做空
这个时候市场已经从"挤压"变成"释放",波动率扩大,趋势开始。
什么时候考虑离场?
两种情况:
-
动量柱开始反向:比如你做多,动量柱从正值转负,说明多头动能衰竭
-
出现背离信号:价格创新高但动量创新低,这是典型的看跌背离
代码里实现了背离检测,会在动量柱上方/下方用圆形标记显示,这是重要的反转信号。
AI智能解读
系统会自动分析挤压动量(Squeeze Momentum)的状态,给出实时解读。

智能解读效果图
解读内容包括:
-
挤压状态分析:进入挤压/持续挤压/突破挤压/趋势延续
-
动量方向分析:动量转正/转负、多头动能加强/减弱、空头动能加强/减弱
-
组合信号分析:强势突破/弱势突破/低波动整理
-
背离信号提示:看涨背离/看跌背离,关注反转
这些解读会实时更新,帮你快速理解当前市场状态。比如你看到"突破挤压 - 趋势开始"配合"多头动能加强 - 持续看多",这就是明确的做多信号。
参数配置详解
挤压动量(Squeeze Momentum)有几个核心参数,理解它们对实战很重要。

参数配置界面
1. 布林带周期(默认20)
布林带的计算周期,影响对波动率的敏感度。
周期越短,对短期波动反应越快,但噪音也多;周期越长,信号更稳定,但滞后性强。
实战建议:日内交易用15-20,波段交易用20-30。
2. 布林带乘数(默认2.0)
控制布林带的宽度,乘数越大,带子越宽。
这个参数直接影响挤压信号的频率。乘数大了,布林带不容易被肯特纳通道"吃掉",挤压信号就少;乘数小了,挤压信号多但可靠性下降。
实战建议:保持默认2.0就好,不建议调整。
3. 肯特纳通道周期(默认20)
肯特纳通道的计算周期,通常和布林带保持一致。
实战建议:跟布林带周期保持同步,都用20或都用30。
4. 肯特纳通道乘数(默认1.5)
控制肯特纳通道的宽度。
这个参数越小,肯特纳通道越窄,越容易出现挤压信号。默认1.5是经过大量测试确定的最优值。
实战建议:1.5是经过市场验证的,不要轻易改。如果想增加挤压信号频率,可以小幅调到1.3-1.4,但要注意假信号增加。
5. 使用真实波幅(默认开启)
决定肯特纳通道是用ATR还是简单的高低价差。
开启后用ATR计算,通道更准确,能更好地反映市场真实波动;关闭后用简单高低价差,计算快但精度低。
实战建议:保持开启,ATR是更科学的波动率衡量方法。
6. 显示背离(默认开启)
是否显示价格与动量的背离信号。
背离是重要的反转信号,建议开启。如果觉得图表太乱,可以关闭,专注挤压和动量本身。
实战经验与避坑指南
第一,不是所有挤压都值得交易。挤压只是告诉你波动率低,不代表一定有趋势。要结合大周期判断,如果大周期在盘整,小周期的挤压突破往往是假突破。
第二,动量柱的颜色变化比绝对值更重要。不要等动量柱拉得很高才进场,关键是抓住颜色从深色变浅色、从负转正的时刻。
第三,背离信号要配合位置看。低位的看涨背离可靠,高位的看跌背离可靠。如果在中间位置出现背离,谨慎对待。
第四,挤压可能持续很久。别看到金色菱形就着急,市场可能横盘一个月。耐心等待灰色十字出现,确认释放开始。
就这几点。话不多,但都是实战踩坑总结出来的。
写在最后
到这里,挤压动量(Squeeze Momentum)的核心内容基本讲完了。从布林带与肯特纳通道的对比到动量方向的判断,从挤压状态的识别到背离信号的检测,最重要的是理解这个指标的本质:在市场低波动整理时提前预警,在突破开始时果断入场。
不要指望这个指标能帮你抓住所有行情,它只能告诉你:什么时候市场在蓄力,什么时候爆发开始。真正的难点在于,挤压可能持续很久,也可能是假突破。
下一篇准备讲WaveTrend指标。说实话,挤压动量在捕捉突破行情方面很强,但在震荡行情中的表现不够精细。WaveTrend专门用来判断超买超卖和震荡行情的买卖点,它通过双线交叉和超买超卖区域,告诉你什么时候该进、什么时候该出。两个指标配合起来,一个管突破入场,一个管震荡交易,覆盖面会更全。
先写到这,有问题欢迎留言交流。
本文是《量化指标解码》系列的第11篇,ATMQuant量化交易系统已开源至GitHub:https://github.com/seasonstar/atmquant
挤压动量(Squeeze Momentum)增强版指标(含背离检测)为付费会员专享功能,加入知识星球即可获取完整源码和配置教程。
本文内容仅供学习交流,不构成任何投资建议。交易有风险,投资需谨慇。
加入「量策堂·AI算法指标策略」
想系统性掌握策略研发、指标可视化与回测优化?加入我的知识星球,获得持续、体系化的成长支持:

往期文章回顾
《量化指标解码》系列
《以AI量化为生》系列
相关标签:#量化交易 #技术指标 #挤压动量 #vnpy #Python