新建一个mx作为被调用指标:
[PEL] 复制代码 INPUT:P(14,1,200,1),M(6,1,200,1);
T:TIME;
V1:MAX(MAX(HIGH-LOW,ABS(HIGH-REF(CLOSE,1))),ABS(LOW-REF(CLOSE,1)));
TR1:SUM(V1,P);//调用1
HD := HIGH-REF(HIGH,1);
LD := REF(LOW,1)-LOW;
DMP: SUM(IF(HD>0 AND HD>LD,HD,0),P);//调用2-3
DMM: SUM(IF(LD>0 AND LD>HD,LD,0),P);
PDI: DMP*100/TR1;
MDI: DMM*100/TR1;
ADX: MA(ABS(MDI-PDI)/(MDI+PDI)*100,M);
RADX:REF(ADX,M);
以小周期调用大周期30分钟为例:
[PEL] 复制代码
LAST_C:=CALLSTOCK('',vtCLOSE,4,-1);
LAST_H:=CALLSTOCK('',vtHIGH,4,-1);
LAST_L:=CALLSTOCK('',vtLOW,4,-1);
INPUT:P(14,1,200,1),M(6,1,200,1);
T:="MX.T#MIN30";
TR1X:="MX.TR1##MIN30"(P-1,M);
LEN:=BARSLAST(REF(T,1)<>T)+1;
H1:=HHV(H,LEN);
L1:=LLV(L,LEN);
TR1:=TR1X+MAX(MAX(H1-L1,ABS(H1-LAST_C)),ABS(L1-LAST_C));
HD := H1-LAST_H;
LD := LAST_L-L1;
DMPX:="MX.DMP##MIN30"(P-1,M);
DMP:DMPX+IF(HD>0 AND HD>LD,HD,0);
DMMX:="MX.DMM##MIN30"(P-1,M);
DMM:DMMX+IF(LD>0 AND LD>HD,LD,0);
PDI: DMP*100/TR1;
MDI: DMM*100/TR1;
ADXX:="MX.ADX##MIN30"(P,M-1);
ADX:(ADXX*(M-1)+(ABS(MDI-PDI)/(MDI+PDI)*100))/M;
RADX:="MX.RADX#MIN30";
ADXR:(ADX+RADX)/2
如果要调整为其他大周期:
1.其中涉及到的跨周期调用都要改周期,包括3个调用K数据的周期以及若干 个跨周期跨指标调用的
2.不适用于调用日线。
结果展示:
5分钟周期,在10点取值:
切换到30分钟:
|