VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime

动量指标 Momentum(MTM):回看期内的原始价差,如何解读、哪里容易误判

动量指标(Momentum,常简写为 MTM)是图上最直接的动能读数:最新收盘价比往回数固定根数之前的收盘价高出或低了多少,画成一条围绕零轴的线。它的输出是合约本身的价格点数,而不是百分比;这一个特性,同时解释了期货交易者为什么喜欢它,以及它为什么容易被误用。本页用文字说明计算方式、回看长度如何选择、常见的误读,以及让策略生成器在你自己的合约上测试时可以调整哪些地方。

类别动量
输出形态围绕零轴的线以合约的价格点数衡量,而不是百分比
在 AlphaPrime 中内置的生成器指标类别零轴、水平、斜率与背离条件

它衡量什么

动量指标只回答一个问题:价格在最近这一段 K 线里走了多远?读数为正,表示市场收盘比回看窗口起点时高;读数为负,表示比那时低;离零轴的距离,就是这段走势以合约本身价格点数计算的大小。在股指期货上,这条线读的是指数点;在黄金图上,读的是每盎司多少美元。它是广泛使用的公开工具,大多数行情软件都以同样的名称提供,也是以百分比计算的 变动率指标 ROC 的原始价差版本。

计算方式一句话就能说完:取最新收盘价,再取往回数固定根数之前的收盘价,用新的价格减去旧的价格。没有平均、没有缩放,也没有平滑。这对解读这条线有实际影响:它从这一根到下一根变动多少,取决于最新一根 K 线自身的涨跌,再抵消掉刚从窗口最远端滑出去的那一根的涨跌。少数行情软件采用比值版本,用新收盘价除以旧收盘价,让线围绕一个固定基准而不是零轴;本页指的是单纯相减的价差版本,也就是以点数衡量的那一种。

因为输出是点数,价格水位就藏在每一个读数里。当一个合约的价格涨到多年前的两倍,一段普通波动所覆盖的点数也大约变成两倍,所以即使市场的性格完全没变,同一条动量线的摆幅也会宽上一倍左右。百分比的视角把价差除以旧收盘价,就能消除这个效应。两种尺度没有绝对的优劣:点数符合期货交易者在单一合约上、以当前价格思考止损、目标与每点价值的习惯;百分比则是跨年代、跨市场比较时正确的那把尺子。

概念示意图(非真实行情数据)

在真实市场中的表现

在干净的趋势里,线会守在零轴同一侧,高度反映市场前进的速度。行情逐渐成熟时,价格仍在创新高或新低,线却常常走平或向零轴回落,因为每一根新 K 线推进的距离,比不上从窗口最远端离开的那一根。价格创出新极值、动量高点却更低,这个落差就是经典的背离读法。它描述的是节奏放慢,单独出现并不代表反转。

回看长度是最主要的决定,本质上是速度与稳定之间的取舍。回看较短,是拿价格和很近的过去比较,线反应快、频繁穿越零轴,适合把握时机与离场,但在来回震荡的行情里会出现较多假转折。回看较长,是和较远的收盘价比较,线移动缓慢、会在零轴同一侧停留很久,更适合作为方向过滤,代价是转向较晚。比较稳健的做法,是让窗口长度匹配你实际交易的波段,而任何拿来比较的水平,都应以这个合约当前的价格与波动来设定点数,而不是照搬别的图上的数字。

最常见的误用,直接来自点数这个单位。有人把多年前曾对应重要高点的读数标出来,到了今天仍当作超买水平;也有人拿某个合约的动量数值,去和另一个合约的数值比较。这两种比较都站不住。一个长期大幅上涨的股指期货,现在一段走势的点数远大于当年;而报价尺度完全不同的两个合约,例如股指期货和国债期货,读数根本无法并排比较。固定水平应只用于同一个合约的近期数据;比较若跨越年代或市场,就改用百分比的视角。第二种误用,是把每一次穿越零轴都当作新趋势的开始。在横向震荡里,价格在几根之前的位置上下游移,线就会一再穿越零轴;没有趋势强度或波动过滤、每次穿越都进场的规则,最后交易的只是噪声。

常见用法(思路)

方向过滤

只顺着窗口内的净走势交易

回看较长时,动量的正负就是一句很直白的话:市场比窗口起点时高还是低。作为过滤条件时,只在零轴之上放行多单、零轴之下放行空单,具体的入场时机交给其他类别决定。

点数门槛

要求走势足够大才算数

因为读数是点数,水平可以表达很具体的要求:市场在窗口内必须涨出一段有意义的点数,大小再对照这个合约近期的波动区间来设定。这样“动能为正”这种模糊的概念,就变成一段扣除成本后仍有意义的走势。

推力减弱

把背离当作离场提示

价格创新高,动量的高点却比前一个高点低,说明趋势仍向上,但每个窗口推进的距离变少了。许多交易者把它当作收紧离场或停止加仓的提示,而不是做空的理由。

与其他类别指标搭配

点数这个单位,让 平均真实波幅 ATR 成为很自然的搭档。ATR 同样以点数衡量,把动量读数和当前的平均波幅放在一起看,就知道这段窗口内的走势,对这个合约此刻来说是大还是普通。这种比较会随着多年来价格水位与波动的变化自动调整,不必放弃点数单位,就能处理长周期数据的问题。

至于零轴的问题,可以让 ADX 或 震荡指数(Choppiness Index) 这类趋势强度工具,先判断这次穿越值不值得理会。要求市场先表现出方向上的持续性,穿越才算数,就能去掉单纯零轴规则在区间里累积的大量来回交易。也可以让过滤条件保持在点数上:只有当动量离零轴的距离相对于当前的 ATR 足够大时,才把这次穿越算数,零轴上下几个最小变动价位的游移就会被忽略。

了解动量与相邻指标的共同点也有帮助。MACD 比较的是两条均线而不是两个收盘价,所以更平滑、转向更慢;RSI 则把上涨与下跌的幅度收进一个有上下界的刻度。让动量承担一个角色,例如方向过滤,再让有界振荡指标承担另一个角色,例如入场时机,每个工具各司其职,而不是让好几个工具回答同一个问题。

在 AlphaPrime 中

在 AlphaPrime 中,动量是策略生成器的内置分组,界面上名称为“动量 Momentum”,试用版也可以使用。可以调整的设置有“指标周期 N”,决定用来比较的收盘价往回数几根;以及“门槛值”,也就是与指标比较的水平。门槛值设在零轴,就是单纯的零轴规则;门槛值离开零轴,就是要求一段一定点数以上的走势。

条件涵盖基本读法,以及好几种动量专属的形态。基本条件包括“动量 向上穿越水平线”“动量 高于水平线”“动量 上升”与“动量 转为上升”,每一个都有对应的向下版本。形态条件更进一步:“动量 正向冲出近期新高”“动量 向上背离(价创低、动量 未创低)”“动量 自近期最低急翻正”,以及“动量 即将移出窗口的那一步上升”,它观察的正是即将从窗口最远端离开的那一段走势。“动量 在近期高低区间的位置上升”和“动量 距近期高低中点上升”则拿这条线与它自己近期的高低点比较,是处理长周期数据点数大小问题的实用做法。

生成器会把这些条件与其他类别的规则组合,在 GPU 上并行回测所有候选策略;你可以设置样本外检验门槛,筛出在从未见过的数据上依然站得住的组合。筛出的策略可以导出为 PowerLanguage 策略代码,让研究中找到的动量过滤条件,直接进入你熟悉的模拟与实盘流程。

常见问题

为什么有些图表的动量指标围绕一个固定基准,而不是零轴?

有些行情软件采用比值版本,用最新收盘价除以较早的收盘价,让线围绕一个固定基准而不是零轴。它以比例的方式呈现同样的方向,与 变动率指标 ROC 很接近。本页以及 AlphaPrime 的动量分组,采用的都是价差版本,以合约的价格点数衡量。

为什么我的动量水平在长周期回测里失灵了?

以点数设定的固定水平,等于假设这个合约的走势在整段测试期间大小不变。当价格长期大涨或大跌,典型走势的点数也会随之变大或变小,所以在历史前段很少见的水平,到了后段可能稀松平常。把读数对照当前的 ATR,或对照它自己近期的区间,就能让门槛保持合理比例。

穿越零轴就足以作为趋势入场吗?

单独使用通常不够。穿越只表示价格现在高于或低于窗口起点时的位置,而在区间行情里这件事会频繁翻转。多数系统化交易者会加上趋势强度或波动过滤,再用自己合约上的回测确认穿越是否真的带来额外信息。