OptiNod 学院
ADX / DMI:衡量趋势强度
把ADX当作入场过滤条件:ADX低于20时,其他趋势指标的信号一律作废。
很多文章把ADX当作入场工具来讲:ADX高于25买入,低于25卖出,+DI上穿 −DI时入场。这种用法与Welles Wilder在1978年的 New Concepts in Technical Trading Systems 中发表ADX时的本意不同。Wilder把ADX设计成区分“现在处于什么状态”的过滤器,并写明入场方向要用其他工具来定。
这个差别是决定性的。把ADX当作单纯的数值来读就失去了意义,它应当被看作一个条件。ADX低于20的意思是“现在市场没有趋势”,因此不能把它当作卖出信号。在没有趋势的状态下,直接接受MACD金叉或突破200 EMA这类趋势指标的信号,每次都会变成假信号。所以把ADX用作入场过滤,等于在输入阶段就滤掉一半以上的趋势指标信号,这在趋势跟踪系统中最能减少亏损。

非对称响应:开始快,结束慢
ADX的计算结构是:先把 ±DM做14根K线平滑,再用TR(真实波幅)标准化,得到 +DI、−DI;然后用 DX = 100×|+DI − −DI| / (+DI + −DI) 得到两条线之差与两者之和的比值;再把这个DX做14根K线(Wilder)平滑,就是ADX。也就是说,ADX是 +DI与 −DI之差的绝对值除以两者之和(DX)后再平滑的比率,所以对趋势开始和结束的响应速度是非对称的。
趋势开始时,一侧的 +DM迅速增加,另一侧停留在0附近,比率因此陡峭上升。ADX在箱体中于15~18之间波动,一旦真正的趋势启动,3~5根K线之内就会穿过25。这种快速反应是ADX作为入场过滤器的优点。
结束时正好相反。即使趋势开始降温,+DM和 −DM也都在缓慢减小,比率只是平缓地走平。ADX从40降到25,通常要10~20根K线。由于这种非对称,ADX对趋势结束的提示是滞后的。等结束变得明确时,价格已经回吐了相当一部分。
所以ADX在入场和出场上要分工。入场阶段ADX反应快、有用(快速穿过20)。但在出场阶段ADX太慢,出场要交给价格结构上对前一个波段低点的跌破,或者ATR移动止损等其他工具。

入场过滤:作为筛除其他信号的条件
把ADX用作入场条件,最简单的办法是给所有趋势指标信号加上一个条件。ADX不在20以上,该K线的趋势信号全部舍弃。
以MSFT日线为例,价格位于200 EMA之上,正在向前一个支撑回调,在RSI重新站上50的那根K线收盘时,考虑买入入场。但如果同一根K线的ADX低于20,就直接放弃入场。只有ADX在20以上时才买入入场,止损设在回调低点下方。持仓期间ADX跌到20以下,则视为趋势消失,部分止盈。
仅这一个条件,就能把趋势跟踪系统的假信号减少近一半。即使像SPY这样的大型资产,一年中也有40%左右的时间ADX在20以下。这段时间里出现的所有“趋势信号”,从一开始就很可能是噪声。
通常趋势基准线多用25。这里把20设为门槛,是为了在趋势初期ADX触及25之前的阶段不错过,把入场候选提前一点筛出来。在需要更确定信号的位置,再同时参考25或30。
反过来,ADX高于30时,同一个指标信号的可信度明显提高。信号相同,但趋势更强了。

25以上开始回落的ADX:比价格更早的减弱
有一个位置,ADX的方向比数值更重要。这就是ADX在25~40区域形成高点并开始回落的那一刻。
价格仍在沿趋势方向运动,也可能再创一次新高。但ADX下降意味着 +DI与 −DI之差(DX)在缩小,这清楚地说明能创出新高的增量买盘正在变弱。创新高的力量减弱了。
铜期货在2024年4月的强势上涨中,日线ADX升到42后开始回落。之后价格又两次尝试创新高,但ADX没有再回升。第二次创新高尝试失败后,接着出现了为期6周的大幅调整。ADX的顶点比价格的顶点早了9根K线。
这个信号用在提前对已有仓位止盈上。不能把它当作新的入场信号。从看到25以上回落的ADX开始,停止新的趋势入场,并把已有趋势仓位平掉一半。剩下的跟踪到价格结构出问题,也就是前一个波段低点被跌破为止。

+DI/−DI交叉:不单独使用
有些入门书教大家,把与ADX面板一起绘制的 +DI(绿色)、−DI(红色)两条线的交叉当作买卖信号。这种用法与Wilder的原文不同,回测中也完全站不住脚。
在包括箱体在内的所有状态下,+DI/−DI的简单交叉可信度只有50%左右,实际上近似抛硬币。在箱体中两条线频繁交叉,不断产生假信号。只有在趋势区间,也就是ADX在20以上且ADX正在上升的区间,交叉才有意义。两个条件缺一个,就舍弃这个交叉。
加上这些条件之后,+DI/−DI交叉就变成趋势正在加快的确认信号。不把它当作单独的入场触发,而是作为与其他信号一起看的辅助确认。单独使用与ADX的本意正好相反。

ADX 50以上:持续不了多久
ADX在50以上,从统计上看是持续不了多久的区间。SPY日线上,ADX 50以上一次连续超过5根K线的情况,一年只有一两次,山寨币这类高波动资产,最多也就5~10根K线。
在这个区间里,最吃亏的行为是加仓买入。把ADX 50解读为“趋势非常强”而进场,就是在趋势的最后一段以最差的盈亏比入场。在50以上,要暂缓新的入场,提高已有仓位的止盈比例,一旦确认ADX见顶,就把移动止损再上移一档。
白银(SLV)日线在2024年5月的强势反弹中,ADX升到53,仅4根K线就形成高点并回落。价格在顶点时又涨了3%,但之后一个月内调整了18%。ADX在50以上看起来像机会,实际上是危险区间。

为什么14是平滑的平衡点
很多用户为了更快的信号,把Wilder的默认值14缩短到7或10。这种改动会破坏ADX计算上的平衡。
ADX的计算式本身包含两步14根K线的平滑。第一步是 +DM、−DM的平滑,第二步是比率的平滑。两次平滑都设为14根K线时,噪声能被充分滤掉,同时对真正的趋势开始仍能在3~5根K线内做出反应。缩短到7,噪声会原样通过,ADX每根K线都在15~25之间来回,入场过滤器的价值就消失了。
需要更快的信号时,不要缩短ADX的参数,而是把K线周期下调一级。日线ADX(14)和1小时线ADX(14)保持同样的平滑平衡,只是看的时间单位更短。
用时间周期分工弥补滞后性
ADX是对平滑后的比率再平滑得到的值,从计算结构上说是滞后指标。ADX以收盘价穿过20时,该趋势已经走了一段。要减轻这种反应偏晚的问题,就要把时间周期分开来看。缩短参数会破坏平滑的平衡,所以不是答案。
日线ADX用来判断当前是否有趋势。它回答的是“现在有没有趋势,这个趋势是在加快还是在降温”。入场时机由同一资产1小时线或4小时线的价格结构来负责。日线ADX为22,确认处于趋势区间的同时,在4小时线价格回调到前一个支撑后又收复的那根K线入场。
这样分工后,ADX反应偏晚反而起到了平稳确认趋势的作用。入场用较短周期的快信号来抓,这次入场是否处在真正的趋势区间内,则由日线ADX平稳地支撑。两个时间周期分工之后,反应偏晚反而成了优点。

除了入场过滤,还要配合其他工具
在基于ADX的系统中,如果不同时看两件事,系统就无法正常运转。
- 方向工具:ADX只告诉你强度。方向由200 EMA的上方、下方,或价格结构中高点、低点的走势来定。ADX在25以上只说明“有趋势”,是上涨还是下跌,要由其他工具回答。
- 用价格结构出场:ADX的结束信号很慢。所以趋势结束的出场,由前一个波段低点收盘价被跌破这类价格结构信号来负责。ADX只用来提前止盈,不用作出场触发。