CMO动量震荡指标:金叉死叉确认动量加速,告别假信号
CMO — Chande 动量震荡指标一句话直觉CMO 回答的是——现在的动量势头比它自己的平均水平强还是弱如果 CMO 线上穿信号线说明动量在加速如果下穿说明动量在减速。图 1CMO 实战示例——价格走势与 CMO_line Signal(3) 副图展示金叉信号图 2CMO 构造原理示意图——从收盘价到 CMO_line 再到信号线的完整流程推荐版简洁有力 想学量化交易点击访问https://itrade.icu这里有Freqtrade 完整教程、策略源码、AI量化系统、HFT高频策略和50 TradingView指标助你轻松掌握从入门到实盘的量化交易技巧模块 2指标名片项目内容名称Chande Momentum OscillatorChande 动量震荡指标提出者Tushar S. Chande图沙·钱德提出年份1994 年著作《The New Technical Trader》指标类别动量 / 摆动指标Oscillator取值范围-100 至 100CMO 线信号线随平滑方式不同无固定范围默认参数N 20CMO 周期M 9信号线周期常用 SMA 或 EMA常用阈值50超买、-50超卖、0多空分界信号线交叉为实战核心默认参数为什么是 20 9Chande 原著推荐 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 交易社区的解决思路保留底层引擎CMO 线的计算与 CMOU 完全一致确保对动量的真实测量不被扭曲。增加信号线对 CMO 线做 M 周期的移动平均通常为 SMA 或 EMA得到一条更平滑的慢线。交叉即信号CMO 线快线上穿信号线慢线 动量加速 买入线索下穿 动量减速 卖出线索。3.3 关键设计选择为什么信号线用 SMA/EMA 而不是 Wilder 平滑Wilder 平滑如 RSI 所用会进一步增加滞后与 CMOU追求灵敏的设计哲学冲突。SMA/EMA 是标准的平均线交易者熟悉其特性便于设定预期。9 周期 SMA 的计算简单透明不同软件之间数值差异小便于跨平台验证。为什么信号线周期通常设为 99 是 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_lineCMO 线原始 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-N1 到 t) SumLoss_t(N) Σ Loss_i (i 从 t-N1 到 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-M1} CMO_line_{t-M2} ... CMO_line_t) / M符号含义Signal_t第 t 期信号线值M信号线周期默认 9初始值与边界条件CMO 线的前 N 期无效同 CMOU。信号线的前 NM-1 期无效需等 CMO 线有足够数据后再做 M 周期平均。若某期 CMO_line 无效信号线顺延等待。若分母 SumGain SumLoss 0CMO_line 0信号线正常计算。默认参数代入后的简化形式N20, M9, SMACMO_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 5CMO 周期、M 3信号线周期SMA的简化参数共 10 期收盘价展示从原始数据到信号线的完整链路。期数收盘价涨跌GainLossSumGainSumLossCMO_lineSignal(3)1100———————2104440————3102-202————499-303————597-202————695-20249-38.46—79833039-50.00—810133067-7.69-32.05910544010442.86-4.9410103-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.46CMO_line_7 -50.00CMO_line_8 -7.69Signal_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.69Signal -32.05CMO Signal但都在零轴下第 9 期CMO_line 42.86Signal -4.94CMO SignalCMO 已上穿零轴第 10 期CMO_line 42.86Signal 26.01CMO Signal两者都在零轴上计算过程第 10 期 SignalSignal_10 (CMO_line_8 CMO_line_9 CMO_line_10) / 3Signal_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这只是一个弱金叉——动量在改善但仍处于空头区域可靠性较低。图 3CMO 演示数据——价格走势与 CMO_line Signal(3) 副图标注 50/-50 阈值及关键信号图 4CMO 实战案例——金叉信号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 参数分工表参数控制什么调大调小NCMO 周期CMO 线的灵敏度更平滑、更滞后更敏感、更噪声M信号线周期信号线的平滑度信号更稳、更滞后信号更快、更多假交叉信号线类型平滑方式SMA 最稳EMA 较灵敏WMA 重视近期—8.2 默认参数为什么这样设N20, M9 的组合来源N20Chande 原著推荐提供中期动量视角。M9约为 N 的一半形成中期 vs 短期的合理对比。这个比例在 MACD12/26/9和 KDJ9/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捕捉短线动量爆发问题N20 的 CMO_line 反应太慢错过短线爆发点。对策N 从 20 调至 10M 从 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(N20, M9) 在 -50 到 50 之间反复波动。信号价格触及箱体下轨 46 元CMO_line 为 -48Signal 为 -35。次日 CMO_line 回升至 -30上穿 Signal-32形成零轴下方的金叉。操作金叉确认后买入止损设 44 元箱体下轨下方。结果5 个交易日后价格反弹至 53 元CMO_line 升至 42。教训震荡市中的零轴下方金叉是反弹信号而非反转信号目标位应设在箱体上轨附近不可贪婪。图 5CMO 实战案例——趋势市中高位死叉预警CMO_line 下穿 Signal 线动量衰竭信号案例 2趋势市中的死叉预警适用场景趋势末端背景某半导体股处于上升趋势从 20 元涨至 38 元CMO_line 和 Signal 长期在 50 上方运行。信号价格创 38.5 元新高但 CMO_line 从 72 回落至 58同时下穿 Signal61形成高位死叉。操作死叉当日减仓 50%剩余仓位止损设 36 元前低。结果3 周后价格跌至 29 元跌幅 25%。教训趋势市中的高位死叉是动量衰竭信号比价格跌破均线更早出现。但死叉本身不意味着趋势立刻反转减仓而非清仓是更稳妥的选择。图 6CMO 实战案例——转折市底背离CMO_line 与 Signal 双双抬升确认买压积聚案例 3转折市中的双线背离适用场景V 型反转背景某银行股在利空消息下从 15 元跌至 10 元市场恐慌。信号价格创 10 元新低但 CMO_line 的低点高于前低-65 vs 前低 -78Signal_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 80Signal 75两者都在超买区。下一期价格大跌CMO_line 骤降至 30。此时 Signal 可能还在什么水平交易者如果只看CMO_line 下穿 Signal作为卖出信号会面临什么问题附录自测题答案A1变少。M 增大后信号线更平滑CMO_line 的小幅波动很难甩开信号线只有显著的动量变化才会触发交叉。这种调整在震荡市中有利可以过滤假信号在快速趋势市中不利会错过早期入场点。A2更早出现。EMA 的初始值通常设为序列第一个值或前几个值的平均而 SMA 必须等满 M 个值。因此 EMA 信号线在第 N1 期CMO_line 第一个有效值就可以开始计算而 SMA 要等到第 NM-1 期。A3应关注CMO_line 率先跌破 Signal_Line 形成死叉以及CMO_line 从 50 以上回落至 50 以下。因为双线粘合说明动量匀速一旦 CMO_line 甩开 Signal 向下说明加速减速已经开始。同时配合 ADX 从高位回落确认趋势强度减弱。A4Signal_Line 是 CMO_line 的近期平均。当 Diff CMO_line - Signal_Line 从小变大或从负变正意味着当前动量不仅高于零轴还高于自己的近期平均水平——这就是加速。数学上Diff 0 且 Diff 的导数 0 时动量在加速Diff 从负转正时发生金叉。A5Signal 可能还在 70 附近因为 M9 的 SMA 需要 9 期数据才能反映变化前 8 期还是高值。交易者如果等下穿 Signal才卖会面临严重滞后——价格可能已经跌了 10% 以上。这说明在极端波动后不能死板等待交叉信号应结合价格本身的止损规则。模块 13小结记住 3 个核心CMO 是「CMOU 信号线」的实战体系交叉信号是核心零轴穿越是辅助。CMO 线的计算与 CMOU 完全一致信号线的作用是用近期平均过滤噪声、提供确认。CMO 在高波动 需要规则化交易的场景下最有价值因为它把模糊的动量感觉变成了明确的交叉规则。使用 3 原则区分强交叉与弱交叉零轴同侧交叉 零轴异侧交叉背离后的交叉 无背离的交叉。不迷信单一交叉交叉后观察 1~2 根 K 线确认配合成交量或价格形态再行动。参数要匹配波动高波动市场放大 M 减少假信号短线交易缩小 N 和 M 提高灵敏度。它是一个描述「净动量相对自身均值偏离」的滞后数据回望型摆动指标金叉、死叉、双线背离都只是线索而非结论需结合趋势、量能、其他指标综合判断。