CMO动量震荡指标:金叉死叉确认动量加速,告别假信号
2026/9/2 23:20:41 网站建设 项目流程

CMO — Chande 动量震荡指标

一句话直觉:CMO 回答的是——现在的动量势头,比它自己的平均水平强还是弱?如果 CMO 线上穿信号线,说明动量在加速;如果下穿,说明动量在减速。


图 1:CMO 实战示例——价格走势与 CMO_line + Signal(3) 副图,展示金叉信号

图 2:CMO 构造原理示意图——从收盘价到 CMO_line 再到信号线的完整流程


推荐版(简洁有力)

🚀 想学量化交易?

👉点击访问:https://itrade.icu
这里有Freqtrade 完整教程策略源码AI量化系统HFT高频策略50+ TradingView指标,助你轻松掌握从入门到实盘的量化交易技巧!

模块 2:指标名片

项目内容
名称Chande Momentum Oscillator(Chande 动量震荡指标)
提出者Tushar S. Chande(图沙·钱德)
提出年份1994 年(著作《The New Technical Trader》)
指标类别动量 / 摆动指标(Oscillator)
取值范围-100 至 +100(CMO 线);信号线随平滑方式不同无固定范围
默认参数N = 20(CMO 周期);M = 9(信号线周期,常用 SMA 或 EMA)
常用阈值+50(超买)、-50(超卖)、0(多空分界);信号线交叉为实战核心

默认参数为什么是 20 + 9?Chande 原著推荐 CMO 周期为 20。9 周期信号线是后世交易者(如 Linn Software、TradingSim 等平台的惯例)在实战中总结出的搭配:20 周期 CMO 提供"中期动量视角",9 周期信号线提供"近期动量均值",两者交叉过滤掉了 CMOU 单独使用时的大量噪声。


模块 3:设计者的思路

3.1 动量指标的盲区/痛点

Chande 设计 CMOU 时,已经解决了 RSI 的"平滑滞后"问题。但 CMOU 投入实战后,交易者很快发现了新的痛点:

  • CMOU 太敏感了。一个普通的价格回调就能让 CMOU 从 +40 跌到 -20,再弹回 +30。交易者被频繁的零轴穿越搞得无所适从。
  • 没有"确认"机制。CMOU 上穿 0 是买入信号吗?如果下一秒就跌回来呢?交易者需要一个"第二道验证"。
  • 极端值频繁出现。CMOU 比 RSI 更容易触及 ±50,甚至 ±70,导致"超买超卖"信号泛滥。

Chande 本人并未在原著中明确提出"信号线"概念,但他在书中暗示:"CMO 可以与移动平均线结合使用,以过滤短期噪声。"后世交易者据此发展出了"CMO + 信号线"的实战体系,并在多数软件中将其固化为"CMO 指标"的标准形态。

3.2 交易社区的解决思路

  1. 保留底层引擎:CMO 线的计算与 CMOU 完全一致,确保对动量的真实测量不被扭曲。
  2. 增加信号线:对 CMO 线做 M 周期的移动平均(通常为 SMA 或 EMA),得到一条更平滑的"慢线"。
  3. 交叉即信号:CMO 线(快线)上穿信号线(慢线)= 动量加速 = 买入线索;下穿 = 动量减速 = 卖出线索。

3.3 关键设计选择

为什么信号线用 SMA/EMA 而不是 Wilder 平滑?

  • Wilder 平滑(如 RSI 所用)会进一步增加滞后,与 CMOU"追求灵敏"的设计哲学冲突。
  • SMA/EMA 是标准的平均线,交易者熟悉其特性,便于设定预期。
  • 9 周期 SMA 的计算简单透明,不同软件之间数值差异小,便于跨平台验证。

为什么信号线周期通常设为 9?

  • 9 是 20 的近似一半,形成"中期 vs 短期"的合理对比。
  • 在日线图上,9 天约等于两周,能过滤掉单周的情绪波动。
  • 回测数据表明,9 周期 SMA 在多数股票和外汇对上对 20 周期 CMO 的交叉信号有最佳的"灵敏度-可靠性"平衡。

模块 4:核心概念拆解

4.1 数据流图

收盘价序列 │ ▼ 逐日涨跌 ΔClose = Close_t - Close_{t-1} │ ├── 若 ΔClose > 0 ──→ Gain_t = ΔClose, Loss_t = 0 │ └── 若 ΔClose < 0 ──→ Gain_t = 0, Loss_t = |ΔClose| │ ▼ ┌─────────────────┐ │ 滑动窗口 N │ └─────────────────┘ │ ┌─────────────────┼─────────────────┐ ▼ ▼ ▼ SumGain(N) SumLoss(N) SumTotal │ │ │ └────────┬────────┘ │ ▼ │ NetMomentum │ │ │ ▼ ▼ ┌──────────────────────────────────────┐ │ CMO_line = NetMomentum/SumTotal×100 │ ← 这就是 CMOU └──────────────────────────────────────┘ │ ▼ ┌─────────────────┐ │ M 周期 SMA/EMA │ └─────────────────┘ │ ▼ Signal_Line │ ┌─────────┴─────────┐ ▼ ▼ CMO > Signal CMO < Signal (金叉) (死叉)

4.2 中间变量分工表

中间变量本质作用特点
CMO_line(CMO 线)原始 CMOU 值反映当前动量状态与 CMOU 完全一致,灵敏、噪声大
Signal_Line(信号线)CMO_line 的 M 周期移动平均反映近期动量平均水平平滑、滞后、作为"基准线"
差值 DiffCMO_line - Signal_Line衡量当前动量相对近期均值的偏离正值 = 加速,负值 = 减速

4.3 关键设计选择深度解释

为什么用"交叉"而不是"零轴穿越"作为主要信号?

在 CMOU 中,零轴穿越是核心信号。但在 CMO 中,信号线交叉取代了零轴穿越的地位。原因是:

  • 零轴穿越太频繁:CMOU 的零轴穿越在震荡市中几乎每天都有,假信号率极高。
  • 信号线交叉自带过滤:只有当 CMO 线不仅穿越零轴,而且"甩开"了近期平均水平,才发出信号。这相当于让市场自己投票:“动量是否显著偏离了常态?”
  • 交叉方向包含更多信息:零轴穿越只告诉你"多空谁强",而信号线交叉告诉你"动量是在加强还是减弱"——即使两者都在零轴上方,下穿信号线也意味着"多头力量在衰减"。

模块 5:数学公式

**第 1 步:计算 CMO 线(与 CMOU 完全一致)** ΔClose_t = Close_t - Close_{t-1} Gain_t = max(ΔClose_t, 0) Loss_t = |min(ΔClose_t, 0)| SumGain_t(N) = Σ Gain_i (i 从 t-N+1 到 t) SumLoss_t(N) = Σ Loss_i (i 从 t-N+1 到 t) CMO_line_t = [SumGain_t(N) - SumLoss_t(N)] / [SumGain_t(N) + SumLoss_t(N)] × 100
符号含义
CMO_line_t第 t 期 CMO 线的原始值
NCMO 计算周期(默认 20)
**第 2 步:计算信号线(以 M 周期 SMA 为例)** Signal_t = (CMO_line_{t-M+1} + CMO_line_{t-M+2} + ... + CMO_line_t) / M
符号含义
Signal_t第 t 期信号线值
M信号线周期(默认 9)

初始值与边界条件

  • CMO 线的前 N 期无效(同 CMOU)。
  • 信号线的前 N+M-1 期无效(需等 CMO 线有足够数据后再做 M 周期平均)。
  • 若某期 CMO_line 无效,信号线顺延等待。
  • 若分母 SumGain + SumLoss = 0,CMO_line = 0,信号线正常计算。

默认参数代入后的简化形式(N=20, M=9, SMA)

CMO_line_t(20) = (SumGain_t(20) - SumLoss_t(20)) / (SumGain_t(20) + SumLoss_t(20)) × 100 Signal_t(9) = (CMO_line_{t-8} + ... + CMO_line_t) / 9

模块 6:手工演算

6.1 演示数据

以下使用 N = 5(CMO 周期)、M = 3(信号线周期,SMA)的简化参数,共 10 期收盘价,展示从原始数据到信号线的完整链路。

期数收盘价涨跌GainLossSumGainSumLossCMO_lineSignal(3)
1100
2104+440
3102-202
499-303
597-202
695-20249-38.46
798+33039-50.00
8101+33067-7.69-32.05
9105+44010442.86-4.94
10103-20210442.8626.01

:CMO_line 列与 CMOU 完全一致。Signal(3) 列是 CMO_line 的 3 周期 SMA。第 8 期为第一个有效信号线值(已加粗)。

6.2 核对一 · 第 8 行(第一个有效信号线值)

  • 目标:验证信号线如何从 CMO_line 计算而来,理解"双重滞后"的来源。
  • 前置条件:第 8 期时,CMO_line 已有 3 个有效值(第 6、7、8 期)。
  • 计算过程
    • CMO_line_6 = -38.46
    • CMO_line_7 = -50.00
    • CMO_line_8 = -7.69
    • Signal_8 = (-38.46 + (-50.00) + (-7.69)) / 3 = -96.15 / 3 =-32.05
  • 关键观察
    • 第 8 期 CMO_line 已经从 -50 反弹到 -7.69(接近零轴),但信号线还在 -32.05 的深负区。这就是"信号线滞后"的典型表现——它用过去 3 期的平均值"拖住了"指标。
    • 这种滞后不是 bug,而是设计意图:信号线告诉你"近期动量的平均水平还很弱",即使今天看起来不错,也不要急于下结论。

6.3 核对二 · 第 10 行(递推 / 金叉形成)

  • 目标:验证 CMO_line 与信号线的交叉过程,理解"金叉"的数学本质。
  • 前置数据
    • 第 8 期:CMO_line = -7.69,Signal = -32.05(CMO > Signal,但都在零轴下)
    • 第 9 期:CMO_line = 42.86,Signal = -4.94(CMO > Signal,CMO 已上穿零轴)
    • 第 10 期:CMO_line = 42.86,Signal = 26.01(CMO > Signal,两者都在零轴上)
  • 计算过程(第 10 期 Signal)
    • Signal_10 = (CMO_line_8 + CMO_line_9 + CMO_line_10) / 3
    • Signal_10 = (-7.69 + 42.86 + 42.86) / 3 = 78.03 / 3 =26.01
  • 关键观察
    • 从第 8 期到第 10 期,CMO_line 与 Signal 的关系从"CMO 在下方"变成了"CMO 在上方",这个交叉发生在第 9 期(CMO_line 从 -7.69 跳到 42.86,直接甩过了 Signal 的 -4.94)。
    • 注意:这个"金叉"发生时,CMO_line 不仅上穿了信号线,还同时上穿了零轴。这是一个强金叉——动量不仅超过了近期平均水平,还从空头区进入了多头区。
    • 但如果 CMO_line 在零轴下方上穿信号线(比如从 -40 到 -20,信号线 -30),这只是一个弱金叉——动量在改善,但仍处于空头区域,可靠性较低。

图 3:CMO 演示数据——价格走势与 CMO_line + Signal(3) 副图,标注 +50/-50 阈值及关键信号



图 4:CMO 实战案例——金叉信号:CMO_line 上穿 Signal 线,动量加速确认

模块 7:信号体系

7.1 金叉 / 死叉(核心信号)

条件含义有效性注意事项
CMO_line 上穿 Signal_Line(金叉)动量加速,短期强于中期零轴上方金叉 > 零轴下方金叉需配合成交量或价格突破确认
CMO_line 下穿 Signal_Line(死叉)动量减速,短期弱于中期零轴下方死叉 > 零轴上方死叉震荡市中假交叉频繁

演示数据中的例子:第 9 期发生金叉(CMO_line 42.86 > Signal -4.94,且前一期 CMO_line -7.69 < Signal -32.05)。这是一个从负区穿越到正区的强金叉。

7.2 零轴穿越(辅助信号)

条件含义与交叉信号的关系
CMO_line 上穿 0多头动量占优若同时发生金叉,信号极强
CMO_line 下穿 0空头动量占优若同时发生死叉,信号极强

7.3 超买 / 超卖

条件含义与 CMOU 的区别
CMO_line > +50超买区与 CMOU 完全一致
CMO_line < -50超卖区与 CMOU 完全一致
新增:Signal_Line 进入 ±50中期动量极端信号线更平滑,进入极端区更"慎重",可作为"确认"

7.4 顶背离 / 底背离

类型价格行为CMO_line 行为Signal_Line 行为含义
顶背离价格创新高CMO_line 未创新高Signal_Line 未创新高动量衰竭,双重确认
底背离价格创新低CMO_line 未创新低Signal_Line 未创新低动量积蓄,双重确认

为什么 CMO 的背离比 CMOU 更可靠?因为 Signal_Line 的平滑作用过滤了单日噪声,只有当"动量趋势"真正衰竭时,Signal_Line 才会与价格 diverge。CMOU 的单日背离可能是假信号,但 CMO 的双线背离需要"持续一段时间的动量减弱"才能形成。

7.5 钝化识别与应对

钝化表现:CMO_line 和 Signal_Line 同步停留在 +50 以上(或 -50 以下),两者距离很近,几乎粘合。

应对策略

  • 双线粘合在极端区 = 趋势极强,信号线已经"追上了"CMO_line,说明动量不是"脉冲式"的,而是"持续式"的。
  • 此时不应等待交叉信号(因为可能很久都不交叉),而应改用趋势跟踪策略。
  • 等待 CMO_line 从极端区回落,并且率先跌破 Signal_Line(死叉),才是趋势可能结束的信号。

模块 8:参数调优

8.1 参数分工表

参数控制什么调大调小
N(CMO 周期)CMO 线的灵敏度更平滑、更滞后更敏感、更噪声
M(信号线周期)信号线的平滑度信号更稳、更滞后信号更快、更多假交叉
信号线类型平滑方式SMA 最稳,EMA 较灵敏,WMA 重视近期

8.2 默认参数为什么这样设?

N=20, M=9 的组合来源:

  1. N=20:Chande 原著推荐,提供中期动量视角。
  2. M=9:约为 N 的一半,形成"中期 vs 短期"的合理对比。这个比例在 MACD(12/26/9)和 KDJ(9/3/3)等经典指标中也有体现,是技术分析的"经验法则"。
  3. SMA:简单透明,不同平台计算结果一致,便于跨软件验证。

8.3 不同时间周期适配

交易周期推荐 N推荐 M理由
日内交易(5分钟)145捕捉日内动量脉冲,信号线快速响应
波段交易(日线)209(默认)经典组合,兼顾灵敏度与可靠性
长线投资(周线)136约一个季度,过滤月度噪声

8.4 实战调参场景

场景 A:减少震荡市假交叉

  • 问题:CMO_line 围绕 Signal_Line 反复穿越,产生大量假金叉/死叉。
  • 对策:将 M 从 9 调至 14~20(与 N 接近),或改用 EMA(赋予近期更高权重)。
  • 原理:信号线更平滑后,只有 CMO_line 的"显著偏离"才会触发交叉,过滤掉小幅波动。

场景 B:捕捉短线动量爆发

  • 问题:N=20 的 CMO_line 反应太慢,错过短线爆发点。
  • 对策:N 从 20 调至 10,M 从 9 调至 5。
  • 原理:缩短双周期,让系统对近期变化更敏感。代价是假信号增加,需配合严格的止损。

模块 9:家族关系与横向对比

9.1 与 CMOU 的关系

CMO 与 CMOU 是"同一引擎的不同驾驶模式":

  • 公式关联:CMO 的 CMO_line 就是 CMOU,两者在数学上完全一致。
  • 逻辑关联:CMOU 是"裸指标",CMO 是"带过滤器的指标"。
  • 使用场景差异:CMOU 适合"盯盘捕捉第一时间动量变化",CMO 适合"制定规则化交易策略"。

9.2 与 MACD 的关系

CMO 与 MACD 是"异曲同工":

  • 公式关联:MACD 是"EMA 差离 + 信号线",CMO 是"动量占比 + 信号线"。两者都有"快线、慢线、交叉"的结构。
  • 逻辑关联:MACD 问"趋势是否在加速",CMO 问"动量是否在加速"。
  • 使用场景差异:MACD 在趋势市中更稳,CMO 在震荡市和高波动市中更灵敏。

9.3 与其他指标对比表

维度RSIKDJMACDMACMO
核心视角涨跌幅度比值价格在区间位置快慢均线差离价格平均值净动量占比 + 信号线交叉
灵敏度中高(信号线过滤后)
最佳市场趋势市中的回调震荡市趋势市趋势市高波动/转折市
主要信号超买超卖、背离金叉死叉、超买超卖金叉死叉、柱背离方向、支撑阻力双线交叉、零轴穿越、背离
最大优势经典、普适性强灵敏、区间直观趋势方向明确简单直观既有灵敏度又有过滤机制
最大劣势滞后、钝化常见噪声大、假信号多滞后严重无动量信息参数组合多,需反复调试

模块 10:常见误区

常见误解正确理解具体场景
“CMO 金叉就一定涨,死叉就一定跌”金叉只代表"动量加速",不保证价格涨。如果价格在高位滞涨,CMO 金叉可能是"诱多"。演示数据第 9 期金叉后,第 10 期价格从 105 跌到 103。如果交易者在第 9 期收盘追高,第 10 期就会浮亏。
“CMO 和 MACD 的金叉可以互相替代”两者逻辑不同。MACD 金叉反映趋势加速,CMO 金叉反映动量加速。在趋势初期,两者可能同步;在趋势末端,CMO 可能先死叉(动量衰竭),MACD 还维持金叉(趋势仍在)。某股票在趋势末端,MACD 仍金叉但 CMO 已死叉。若只看 MACD,会错过动量衰竭的预警。
“信号线周期越短越好,这样信号更多”信号线太短会导致交叉过于频繁,假信号率飙升。M 的选择应与市场的波动特征匹配。把 M 从 9 调到 3,在震荡市中几乎每天都有交叉,交易成本会吃掉所有利润。
“CMO_line 和 Signal_Line 粘在一起是指标坏了”双线粘合说明动量处于"匀速状态"——既不加速也不减速。这常发生在强趋势的中段。演示数据中如果连续多期 CMO_line 和 Signal 都在 +60 附近粘合,说明多头动量稳定,趋势健康。
“CMO 的零轴穿越比交叉信号更重要”在 CMO 体系中,交叉信号比零轴穿越更重要。零轴穿越告诉你方向,交叉告诉你"变化率"。零轴上方死叉意味着"多头还在,但力气变小了",这比零轴下穿更早给出预警。
“不同软件的 CMO 数值应该一样”CMO_line 应该一样(公式统一),但 Signal_Line 可能不同(SMA/EMA/Wilder 的选择、M 的设定)。软件 A 用 9 周期 SMA,软件 B 用 9 周期 EMA,同一天 Signal 值可能差 2~3 个点,导致交叉时机不同。

模块 11:实战场景案例

案例 1:震荡市中的金叉反弹(适用场景:箱体底部)

背景:某医药股在 45~55 元区间震荡 2 个月,CMO(N=20, M=9) 在 -50 到 +50 之间反复波动。

信号:价格触及箱体下轨 46 元,CMO_line 为 -48,Signal 为 -35。次日 CMO_line 回升至 -30,上穿 Signal(-32),形成零轴下方的金叉。

操作:金叉确认后买入,止损设 44 元(箱体下轨下方)。

结果:5 个交易日后价格反弹至 53 元,CMO_line 升至 +42。

教训:震荡市中的零轴下方金叉是"反弹信号"而非"反转信号",目标位应设在箱体上轨附近,不可贪婪。

图 5:CMO 实战案例——趋势市中高位死叉预警:CMO_line 下穿 Signal 线,动量衰竭信号

案例 2:趋势市中的死叉预警(适用场景:趋势末端)

背景:某半导体股处于上升趋势,从 20 元涨至 38 元,CMO_line 和 Signal 长期在 +50 上方运行。

信号:价格创 38.5 元新高,但 CMO_line 从 +72 回落至 +58,同时下穿 Signal(+61),形成高位死叉。

操作:死叉当日减仓 50%,剩余仓位止损设 36 元(前低)。

结果:3 周后价格跌至 29 元,跌幅 25%。

教训:趋势市中的高位死叉是"动量衰竭"信号,比价格跌破均线更早出现。但死叉本身不意味着趋势立刻反转,减仓而非清仓是更稳妥的选择。

图 6:CMO 实战案例——转折市底背离:CMO_line 与 Signal 双双抬升,确认买压积聚

案例 3:转折市中的双线背离(适用场景:V 型反转)

背景:某银行股在利空消息下从 15 元跌至 10 元,市场恐慌。

信号:价格创 10 元新低,但 CMO_line 的低点高于前低(-65 vs 前低 -78),Signal_Line 同样出现抬升。形成底背离。同时成交量在下跌中萎缩。

操作:底背离确认后,在价格站上 5 日均线时买入,止损设 9.5 元。

结果:1 个月后价格回升至 13.5 元,涨幅 35%。

教训:CMO 的底背离比 CMOU 更可靠,因为 Signal_Line 的参与过滤了单日假背离。但背离必须配合成交量萎缩(卖压枯竭)才有效。


模块 12:自测思考题

Q1:参数影响

如果把 CMO 的信号线周期 M 从 9 调到 20(与 N 相同),金叉/死叉信号会变多还是变少?为什么?在什么样的市场环境下这种调整是有利的?

Q2:初始值/口径影响

假设某软件用 EMA 做信号线而不是 SMA,在同样的 CMO_line 序列下,EMA 信号线的第一个有效值会比 SMA 的更早出现还是更晚出现?为什么?

Q3:实战选择

在强趋势市中,CMO_line 和 Signal_Line 粘合在 +70 附近已经 10 天。此时你应该关注什么信号来判断趋势可能结束?请说明理由。

Q4:公式理解

从数学角度解释:为什么 CMO_line 上穿 Signal_Line 意味着"动量在加速"?用差值 Diff = CMO_line - Signal_Line 的变化来说明。

Q5:极端场景

假设某期 CMO_line = +80,Signal = +75,两者都在超买区。下一期价格大跌,CMO_line 骤降至 +30。此时 Signal 可能还在什么水平?交易者如果只看"CMO_line 下穿 Signal"作为卖出信号,会面临什么问题?

附录:自测题答案

A1:变少。M 增大后信号线更平滑,CMO_line 的小幅波动很难甩开信号线,只有"显著"的动量变化才会触发交叉。这种调整在震荡市中有利,可以过滤假信号;在快速趋势市中不利,会错过早期入场点。

A2:更早出现。EMA 的初始值通常设为序列第一个值(或前几个值的平均),而 SMA 必须等满 M 个值。因此 EMA 信号线在第 N+1 期(CMO_line 第一个有效值)就可以开始计算,而 SMA 要等到第 N+M-1 期。

A3:应关注CMO_line 率先跌破 Signal_Line 形成死叉,以及CMO_line 从 +50 以上回落至 +50 以下。因为双线粘合说明动量匀速,一旦 CMO_line 甩开 Signal 向下,说明"加速减速"已经开始。同时配合 ADX 从高位回落确认趋势强度减弱。

A4:Signal_Line 是 CMO_line 的近期平均。当 Diff = CMO_line - Signal_Line 从小变大(或从负变正),意味着当前动量不仅高于零轴,还高于自己的近期平均水平——这就是"加速"。数学上,Diff > 0 且 Diff 的导数 > 0 时,动量在加速;Diff 从负转正时,发生金叉。

A5:Signal 可能还在 +70 附近(因为 M=9 的 SMA 需要 9 期数据才能反映变化,前 8 期还是高值)。交易者如果等"下穿 Signal"才卖,会面临严重滞后——价格可能已经跌了 10% 以上。这说明:在极端波动后,不能死板等待交叉信号,应结合价格本身的止损规则。


模块 13:小结

记住 3 个核心

  1. CMO 是「CMOU + 信号线」的实战体系,交叉信号是核心,零轴穿越是辅助。
  2. CMO 线的计算与 CMOU 完全一致,信号线的作用是用"近期平均"过滤噪声、提供确认。
  3. CMO 在"高波动 + 需要规则化交易"的场景下最有价值,因为它把"模糊的动量感觉"变成了"明确的交叉规则"。

使用 3 原则

  1. 区分强交叉与弱交叉:零轴同侧交叉 > 零轴异侧交叉;背离后的交叉 > 无背离的交叉。
  2. 不迷信单一交叉:交叉后观察 1~2 根 K 线确认,配合成交量或价格形态再行动。
  3. 参数要匹配波动:高波动市场放大 M 减少假信号,短线交易缩小 N 和 M 提高灵敏度。

它是一个描述「净动量相对自身均值偏离」的滞后(数据回望型)摆动指标,金叉死叉双线背离都只是线索而非结论,需结合趋势、量能、其他指标综合判断。

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询