参考:
MM:=9;
NN:=3;
KU1:=HIGH=HHV(HIGH,MM);
KD1:=LOW=LLV( LOW,MM);
UL:=VALUEWHEN(REF(KU1,NN)=1 AND EVERY(KU1=0,NN) ,REF(HIGH,NN));
DL:=VALUEWHEN(REF(KD1,NN)=1 AND EVERY(KD1=0,NN),REF(LOW,NN));
SFX:=VALUEWHEN(HIGH>=MA(CLOSE,3),UL);
XFX:=VALUEWHEN(LOW<=MA(CLOSE,3),DL);
STICKLINE(BARSLAST(ABS(SFX-REF(SFX,1)))<BARSLAST(CLOSE>SFX AND REF(CLOSE,1)<REF(SFX,1)),SFX,SFX,COLORGREEN,1);
STICKLINE(BARSLAST(ABS(XFX-REF(XFX,1)))<BARSLAST(CLOSE<XFX AND REF(CLOSE,1)>REF(XFX,1)),XFX,XFX,COLORRED,1);
DRAWSL(BARSLAST(ABS(SFX-REF(SFX,1)))<BARSLAST(CLOSE>SFX AND REF(CLOSE,1)<REF(SFX,1)),SFX,0,-5,0,COLORGREEN),DOT;
DRAWSL(BARSLAST(ABS(XFX-REF(XFX,1)))<BARSLAST(CLOSE<XFX AND REF(CLOSE,1)>REF(XFX,1)),XFX,0,-5,0,COLORRED),DOT;
//DRAWICON(E1>E2 AND E2>E3 AND E3>E4,XFX,4),ALIGN2,VALIGN0;
//DRAWICON(E1<E2 AND E2<E3 AND E3<E4,SFX,5),ALIGN2,VALIGN2;
DRAWNUMBER(REFX(ISLASTBAR,5),REFX(SFX,5),REFX(SFX,5),0,COLORGREEN),ALIGN2,VALIGN2;
DRAWNUMBER(REFX(ISLASTBAR,5),REFX(XFX,5),REFX(XFX,5),0,COLORRED),ALIGN2,VALIGN0;
DRAWNUMBER(ISLASTBAR,XFX,C-XFX,0,COLORRED),ALIGN2,VALIGN0;
DRAWNUMBER(ISLASTBAR,SFX,SFX-C,0,COLORGREEN),ALIGN2,VALIGN2;
PLAYSOUND(CROSS(C,SFX) OR CROSSDOWN(C,XFX),'C');
PLAYSOUND(CROSS(REF(C,1),SFX) OR CROSSDOWN(REF(C,1),XFX),'S');
DT:=C>SFX;//3线顺上
KT:=C<XFX;//3线顺下
N1:=BARSLAST(CROSS(C,SFX))+1;
N2:=BARSLAST(CROSSDOWN(C,SFX))+1;
A1:=BACKSET(ISLASTBAR&&N2<N1||REFX(N1=1,1),LLVBARS(L,N2)+1);
A2:=BACKSET(ISLASTBAR&&N2>N1||REFX(N2=1,1),HHVBARS(H,N1)+1);
//DRAWLINE1(A2>REF(A2,1),H,A1>REF(A1,1),L,0),COLORGREEN,LINETHICK2;
//DRAWLINE1(A1>REF(A1,1),L,A2>REF(A2,1),H,0),COLORRED,LINETHICK2;
SS:(SFX+XFX)/2;
如下修改:
MM:=9;
NN:=3;
KU1:=HIGH=HHV(HIGH,MM);
KD1:=LOW=LLV( LOW,MM);
UL:=VALUEWHEN(REF(KU1,NN)=1 AND EVERY(KU1=0,NN) ,REF(HIGH,NN));
DL:=VALUEWHEN(REF(KD1,NN)=1 AND EVERY(KD1=0,NN),REF(LOW,NN));
SFX:=VALUEWHEN(HIGH>=MA(CLOSE,3),UL);
XFX:=VALUEWHEN(LOW<=MA(CLOSE,3),DL);
STICKLINE(BARSLAST(ABS(SFX-REF(SFX,1)))<BARSLAST(CLOSE>SFX AND REF(CLOSE,1)<REF(SFX,1)),SFX,SFX,COLORGREEN,1);
STICKLINE(BARSLAST(ABS(XFX-REF(XFX,1)))<BARSLAST(CLOSE<XFX AND REF(CLOSE,1)>REF(XFX,1)),XFX,XFX,COLORRED,1);
DRAWSL(BARSLAST(ABS(SFX-REF(SFX,1)))<BARSLAST(CLOSE>SFX AND REF(CLOSE,1)<REF(SFX,1)),SFX,0,-5,0,COLORGREEN),DOT;
DRAWSL(BARSLAST(ABS(XFX-REF(XFX,1)))<BARSLAST(CLOSE<XFX AND REF(CLOSE,1)>REF(XFX,1)),XFX,0,-5,0,COLORRED),DOT;
//DRAWICON(E1>E2 AND E2>E3 AND E3>E4,XFX,4),ALIGN2,VALIGN0;
//DRAWICON(E1<E2 AND E2<E3 AND E3<E4,SFX,5),ALIGN2,VALIGN2;
DRAWNUMBER(REFX(ISLASTBAR,5),REFX(SFX,5),REFX(SFX,5),0,COLORGREEN),ALIGN2,VALIGN2;
DRAWNUMBER(REFX(ISLASTBAR,5),REFX(XFX,5),REFX(XFX,5),0,COLORRED),ALIGN2,VALIGN0;
DRAWNUMBER(ISLASTBAR,XFX,C-XFX,0,COLORRED),ALIGN2,VALIGN0;
DRAWNUMBER(ISLASTBAR,SFX,SFX-C,0,COLORGREEN),ALIGN2,VALIGN2;
PLAYSOUND(CROSS(C,SFX) OR CROSSDOWN(C,XFX),'C');
PLAYSOUND(CROSS(REF(C,1),SFX) OR CROSSDOWN(REF(C,1),XFX),'S');
DT:=C>SFX;//3线顺上
KT:=C<XFX;//3线顺下
N1:=BARSLAST(CROSS(C,SFX))+1;
N2:=BARSLAST(CROSSDOWN(C,SFX))+1;
A1:=BACKSET(ISLASTBAR&&N2<N1||REFX(N1=1,1),LLVBARS(L,N2)+1);
A2:=BACKSET(ISLASTBAR&&N2>N1||REFX(N2=1,1),HHVBARS(H,N1)+1);
//DRAWLINE1(A2>REF(A2,1),H,A1>REF(A1,1),L,0),COLORGREEN,LINETHICK2;
//DRAWLINE1(A1>REF(A1,1),L,A2>REF(A2,1),H,0),COLORRED,LINETHICK2;
SS:=(SFX+XFX)/2;
DRAWHORIZONTALLINE(SS<>REF(SS,1),SS,COLORMAGENTA);