楼主: MarkGray
88 0

[其他] 量化指标解码11:挤压动量 - 捕捉低波动后的爆发行情 [推广有奖]

  • 0关注
  • 0粉丝

等待验证会员

学前班

40%

还不是VIP/贵宾

-

威望
0
论坛币
0 个
通用积分
0
学术水平
0 点
热心指数
0 点
信用等级
0 点
经验
20 点
帖子
1
精华
0
在线时间
0 小时
注册时间
2018-3-27
最后登录
2018-3-27

楼主
MarkGray 发表于 2025-12-1 15:32:44 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

本文是《量化指标解码》系列的第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

整合以上四步,形成完整的挤压动量指标输出:

  • 金色菱形:表示市场处于“挤压”状态,波动低迷,潜在突破临近;
  • 灰色十字:代表“释放”状态,波动扩大,趋势展开;
  • 蓝色十字:中性状态,无明显挤压或释放特征;
  • 动量柱:红绿柱体分别指示空头与多头力量的强弱及变化趋势。

实战应用方法

何时开始关注?

当出现金色菱形标记时,应提高警觉。这说明市场正处横盘整理,波动率不断压缩,随时可能选择方向。

此时无需急于进场,而是观察动量柱的变化趋势。若动量柱由负转正,或由正值进一步加速上升,则可能是多头蓄力的征兆。

何时确认入场?

当金色菱形转变为灰色十字,且动量柱方向明确时,即可视为有效入场点。

  • 动量柱翻红并加速上扬 → 做多信号;
  • 动量柱转绿并加速下行 → 做空信号。

此时市场已完成从“挤压”向“释放”的过渡,波动率回升,趋势确立。

何时考虑离场?

以下两种情况需警惕反转风险:

  1. 动量柱方向逆转:例如持有多单期间,动量柱由正转负,表明上涨动能衰减;
  2. 出现背离现象:价格创出新高但动量未同步走强,甚至创下新低,构成典型看跌背离。

系统内置背离检测机制,会在动量柱上方或下方以圆形标记提示,是重要的趋势反转预警信号。

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

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:calculate Bollinger Momentum Squeeze highest

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注jr
拉您进交流群
GMT+8, 2025-12-5 22:28