本文是《量化指标解码》系列的第11篇,深入探讨挤压动量(Squeeze Momentum)指标的应用与原理。从布林带与肯特纳通道的相对关系判断市场整理状态,到动量方向的精准识别;从状态标记的可视化呈现,到背离信号的智能检测——全面掌握在低波动行情后捕捉突破机会的核心技术。
写在前面:
上一篇介绍了斐波那契入场带策略,有读者反馈这一四层入场系统确实有助于规避追高风险,但在面对横盘震荡后突然爆发的行情时,往往难以及时反应。
这种困扰我也曾经历过:横盘阶段不敢介入,等到突破确认时,价格已大幅移动,错失最佳时机。后来发现,关键在于提前识别“低波动整理”状态,在趋势尚未明朗前就做好布局准备。
而挤压动量(Squeeze Momentum)正是为此设计的工具。它通过对比布林带和肯特纳通道的关系,判断市场是否处于“挤压”(即波动率收缩、蓄势待发)或“释放”(波动扩大、趋势启动)状态,并结合动量柱显示方向与强度,帮助你在突破来临前完成预判与部署。
挤压动量的核心逻辑
其基本理念非常清晰:
市场经历一段低波动整理后,通常会迎来一次显著的方向性行情。
该指标主要完成两个任务:
- 识别挤压状态:利用布林带与肯特纳通道的位置关系,判断当前是处于震荡整理还是趋势运行中;
- 揭示动量方向:以柱状图形式展现价格动能的方向与强弱,辅助判断突破后的走势方向。
举例来说,当市场持续横盘两周,波动逐渐收敛,此时挤压动量将显示金色菱形标记,提示“正在挤压”。一旦某日波动率骤然放大,标记转为灰色十字,同时动量柱开始向上攀升,则构成明确的做多信号。
该指标的优势在于,并非等待突破发生后再给出提示,而是在整理过程中就清晰标示出“准备阶段”,为交易者预留充足的决策时间。
计算原理详解
挤压动量的构建分为四个关键步骤,每一步都不可或缺。
第一步:布林带计算
布林带基于标准差衡量价格波动范围,反映短期内的价格离散程度。
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智能分析功能
系统可自动解析挤压动量指标的实时状态,提供动态解读,提升决策效率。
分析内容涵盖:
- 挤压状态识别:包括“进入挤压”、“持续挤压”、“突破挤压”、“趋势延续”等阶段划分;
- 动量趋势判断:如“动量转正/转负”、“多头动能增强/减弱”、“空头动能增强/减弱”;
- 组合信号评估:识别“强势突破”、“弱势突破”、“低波动整理”等情境;
- 背离信号提示:标注“看涨背离”或“看跌背离”,提醒关注潜在反转。
这些分析结果实时更新。例如,当系统提示“突破挤压 - 趋势开始”叠加“多头动能加强 - 持续看多”,即构成强烈的做多依据。
参数设置说明
理解以下几个核心参数,有助于根据交易风格优化指标表现。
1. 布林带周期(默认20)
决定布林带计算所用的时间窗口,影响对波动率变化的敏感度。
周期较短(如15)响应更快,适合日内交易,但易受噪音干扰;周期较长(如30)信号更稳,适用于波段操作,但存在一定滞后。
建议配置:日内交易选用15–20,波段交易推荐20–30。
2. 布林带乘数(默认2.0)
控制布林带上下轨的宽度。数值越大,通道越宽,挤压信号越稀少;数值越小,通道越窄,挤压出现频率升高,但可靠性下降。
实战建议:保持默认2.0,不建议随意调整,以免破坏原始逻辑平衡。
3. 肯特纳通道周期(默认20)
用于计算ATR的基础周期,通常与布林带周期保持一致,确保两者在同一时间尺度下比较,提升判断一致性。
实战建议:布林带与肯特纳通道的周期设置应保持一致,建议统一使用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
本文内容仅供学习交流之用,不构成任何形式的投资建议。交易存在风险,参与需谨慎。
往期文章回顾
《量化指标解码》系列
量化指标解码10:斐波那契入场带 - 不追涨不踏空的4层入场系统
量化指标解码09:ZLEMA零延迟趋势 - 比EMA快一步的秘密
量化指标解码08:SuperTrend超级趋势 - 最简洁的趋势跟踪神器
《以AI量化为生》系列
以AI量化为生:15.双图与四图视图开发实战
以AI量化为生:14.多周期交易买卖点连线智能匹配实战
相关标签
#量化交易 #技术指标 #挤压动量 #vnpy #Python


雷达卡


京公网安备 11010802022788号







