昨天有人在评论区问 ADX 是什么,正好今天这个 020 就是标准 DMI,借它讲一遍。
先算波幅。MTR是 14 天的真实波幅之和 —— 每天取这三个里最大的:当日最高减最低、当日最高减昨收、昨收减当日最低,加起来。这是分母。
再算方向。HD是今天最高减昨天最高(创新高的幅度),LD是昨天最低减今天最低(创新低的幅度)。DMP把 14 天里 "HD>0 且 HD>LD" 的部分加起来 —— 只有当天确实创出更高的高点才算;DMM对称地加下跌动量。
PDI=DMP×100/MTR,这是 + DI,代表上涨方向占波幅的百分比。MDI=DMM×100/MTR,这是 - DI,代表下跌方向占波幅。
ADX=MA(|MDI-PDI|/(MDI+PDI)×100, 6)。注意 ADX 不算方向 —— 它只看 + DI 和 - DI 差多远,差得越远 ADX 越高,说明趋势越强。ADX 上升不管是涨还是跌。
最后XG:CROSS(ADX,MDI) AND PDI>REF(PDI,1):
ADX 上穿 MDI—— 趋势强度线从下跌动量线下方穿上来
PDI 比昨天高—— 上涨方向在抬头
源码直接复制,日线使用:
N:=14; M:=6; MTR:=SUM(MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(REF(CLOSE,1)-LOW)),N); HD:=HIGH-REF(HIGH,1); LD:=REF(LOW,1)-LOW; DMP:=SUM(IF(HD>0 AND HD>LD,HD,0),N); DMM:=SUM(IF(LD>0 AND LD>HD,LD,0),N); PDI:=DMP*100/MTR; MDI:=DMM*100/MTR; ADX:=MA(ABS(MDI-PDI)/(MDI+PDI)*100,M); XG:CROSS(ADX,MDI) AND PDI>REF(PDI,1);
说个容易踩的坑:ADX 不指方向。它从低位爬上来,可能是上涨趋势,也可能是下跌趋势 —— 只是趋势在变强。这公式用ADX 上穿 MDI(-DI)且+DI 在抬头来过滤方向,逻辑上是对的。但名字叫 "超跌企稳反弹",源码里没有任何超跌判断—— 没看 RSI、没看距均线多远、没看跌了多少。它只是个 "趋势刚开始转强" 的信号,至于之前跌没跌透,公式不知道。
指标仅为技术交流,不构成投资建议。市场有风险,入市需谨慎。
扩展阅读:https://mp.weixin.qq.com/s/ulNhpk6vZjTSPhlKyY4UiA


