ARTICLE · 1302462
ADX+EMA幅图指标公式源码
第一点,ADX计算链。 TR→DMP/DMM→PDI/MDI→DX→ADX,每一层都用SMA(…,N,1)。wh6的SMA是递归写法,权重参数1意味着当前值权重较大,不是简单平均。
第二点,BARSLAST做状态锁。 LON := BARSLAST(LSTART) < BARSLAST(LRESET)。这行不是在比较日期,是在比较“距离上次启动的周期数”和“距离上次重置的周期数”哪个更小。哪个更小,说明哪个事件更近。
第三点,未来函数排查。 全篇没有BACKSET、没有ZIG、没有REFX。所有取值都指向历史或当前。但注意:ADX14>REF(ADX14,1)在盘中最后一根K上会随价格变动,这是实时计算的特征,不是未来函数。收盘后数值固定,文字标注不会漂移。
N5:=14;
M5:=20;
A5:=30;
E5:=1;
TR5:=MAX(MAX(H-L,ABS(H-REF(C,1))),ABS(L-REF(C,1)));
HD5:=H-REF(H,1);
LD5:=REF(L,1)-L;
DMP5:=IF(HD5>0 AND HD5>LD5,HD5,0);
DMM5:=IF(LD5>0 AND LD5>HD5,LD5,0);
ATR5:=SMA(TR5,N5,1);
PDI5:=IF(ATR5>0,SMA(DMP5,N5,1)/ATR5*100,0);
MDI5:=IF(ATR5>0,SMA(DMM5,N5,1)/ATR5*100,0);
DX5:=IF(PDI5+MDI5>0,ABS(PDI5-MDI5)/(PDI5+MDI5)*100,0);
ADX145:=SMA(DX5,N5,1);
EMA205:=EMA(C,M5);
LSTART5:=ADX145>A5 AND ADX145>REF(ADX145,1) AND L>EMA205;
LRESET5:=H<EMA205;
LON5:=BARSLAST(LSTART5)<BARSLAST(LRESET5);
SSTART5:=ADX145>A5 AND ADX145>REF(ADX145,1) AND H<EMA205;
SRESET5:=L>EMA205;
SON5:=BARSLAST(SSTART5)<BARSLAST(SRESET5);
LRET5:=LON5 AND L<=EMA205 AND H>=EMA205;
LAGE5:=BARSLAST(LRET5);
LPRICE5:=REF(H,LAGE5)+E5;
SRET5:=SON5 AND H>=EMA205 AND L<=EMA205;
SAGE5:=BARSLAST(SRET5);
SPRICE5:=REF(L,SAGE5)-E5;
X05:=LON5 AND LAGE5>0 AND LAGE5<1000 AND H>=LPRICE5 AND REF(H,1)<REF(LPRICE5,1);
Y05:=SON5 AND SAGE5>0 AND SAGE5<1000 AND L<=SPRICE5 AND REF(L,1)>REF(SPRICE5,1);
X5B:=X05 AND BARSLAST(LRET5)<BARSLAST(REF(X05,1));
Y5B:=Y05 AND BARSLAST(SRET5)<BARSLAST(REF(Y05,1));
BAGE5:=BARSLAST(LRESET5);
SAGE2E:=BARSLAST(SRESET5);
BPREV5:=BARSLAST(REF(X5B,1));
SPREV5:=BARSLAST(REF(Y5B,1));
X2F:=X5B AND BPREV5<BAGE5;
X1F:=X5B AND BPREV5>=BAGE5;
Y2F:=Y5B AND SPREV5<SAGE2E;
Y1F:=Y5B AND SPREV5>=SAGE2E;
DRAWTEXT(X1F,L,'多'),COLORYELLOW,FONTSIZE20,VALIGN0;
DRAWTEXT(X2F,L,'再多'),COLORYELLOW,FONTSIZE20,VALIGN0;
DRAWTEXT(Y1F,H,'空'),COLORGREEN,FONTSIZE20;
DRAWTEXT(Y2F,H,'再空'),COLORGREEN,FONTSIZE20;
EMA20LINE5:EMA205,COLORYELLOW;
指标效果图:


















































































