A1:=REF(HIGH,3)=HHV(HIGH,2*3+1);
B1:=FILTER(A1,3);
C1:=BACKSET(B1,3+1);
D1:=FILTER(C1,3);
A2:=REF(LOW,3)=LLV(LOW,2*3+1);
B2:=FILTER(A2,3);
C2:=BACKSET(B2,3+1);
D2:=FILTER(C2,3);
E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2;
E2:=(HIGH+LOW)/2;
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2));
H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1;
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,100000),X1)),NODRAW;
G1:=F1>REF(F1,1)||F1=1&&REF(NOT(F1>=0),1),NODRAW;
I1:=BACKSET(G1,2),NODRAW;
LD:=I1>REF(I1,1),NODRAW;
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2)),NODRAW;
G2:=F2>REF(F2,1)||F2=1&&REF(NOT(F2>=0),1),NODRAW;
I2:=BACKSET(G2,2),NODRAW;
HD:=I2>REF(I2,1),NODRAW;
LMID:=(L+REF(H,BARSLAST(HD)))/2;
HMID:=(H+REF(L,BARSLAST(LD)))/2;
LDRAW:=IF(LD,1,IF(EVERY(C<LMID,BARSLAST(LD)+1),1,0));
HDRAW:=IF(HD,1,IF(EVERY(C>HMID,BARSLAST(HD)+1),1,0));
AAA:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
BBB:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
DRAWLINE1(LD,L,HD,H,0),COLORRED,LINETHICK1,POINTDOT;
DRAWLINE1(HD,H,LD,L,0),COLORYELLOW,LINETHICK1,POINTDOT;
A:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
B:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
N:=BARSLAST(CROSS(A,0.5))+1;
M:=BARSLAST(CROSS(B,0.5))+1;
LVC:=6*ABS(N-M);
//DRAWSL(MIN(M,N)=N&&HD,(O+C)/2,0,LVC,0,COLORRED),DOT;//后面那个点的日期
//DRAWSL(MIN(M,N)=M&&LD,(O+C)/2,0,LVC,0,COLORGREEN),DOT;//后面那个点的日期
DRAWSL(MIN(M,N)=N&&HD,H,0,LVC,0,COLORRED),DOT;//后面那个点的日期
DRAWSL(MIN(M,N)=M&&LD,L,0,LVC,0,COLORGREEN),DOT;//后面那个点的日期
加入下面两句看下:
DRAWICON(HD&&LL1<LL2&&H>LL1+0.5*(HH2-LL1)&&H<LL1+0.618*(HH2-LL1),H,1);
DRAWICON(LD&&HH1>HH2&&L<HH1-0.5*(HH1-LL2)&&L>HH1-0.618*(HH1-LL2),L,2);
这样看下:
A1:=REF(HIGH,3)=HHV(HIGH,2*3+1);
B1:=FILTER(A1,3);
C1:=BACKSET(B1,3+1);
D1:=FILTER(C1,3);
A2:=REF(LOW,3)=LLV(LOW,2*3+1);
B2:=FILTER(A2,3);
C2:=BACKSET(B2,3+1);
D2:=FILTER(C2,3);
E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2;
E2:=(HIGH+LOW)/2;
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
L1:=(D2 AND NOT(D1 AND E1<E2));
H2:=D1 AND NOT(D2 AND E1>=E2);
X1:=REF(BARSLAST(H1),1)+1;
F1:=BACKSET(H1 AND COUNT(L1,X1)>0,LLVBARS(IF(L1,LOW,100000),X1)),NODRAW;
G1:=F1>REF(F1,1)||F1=1&&REF(NOT(F1>=0),1),NODRAW;
I1:=BACKSET(G1,2),NODRAW;
LD:=I1>REF(I1,1),NODRAW;
L2:=LD OR ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,HIGH,0),X2)),NODRAW;
G2:=F2>REF(F2,1)||F2=1&&REF(NOT(F2>=0),1),NODRAW;
I2:=BACKSET(G2,2),NODRAW;
HD:=I2>REF(I2,1),NODRAW;
LMID:=(L+REF(H,BARSLAST(HD)))/2;
HMID:=(H+REF(L,BARSLAST(LD)))/2;
LDRAW:=IF(LD,1,IF(EVERY(C<LMID,BARSLAST(LD)+1),1,0));
HDRAW:=IF(HD,1,IF(EVERY(C>HMID,BARSLAST(HD)+1),1,0));
AAA:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
BBB:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
DRAWLINE1(LD,L,HD,H,0),COLORRED,LINETHICK1,POINTDOT;
DRAWLINE1(HD,H,LD,L,0),COLORYELLOW,LINETHICK1,POINTDOT;
A:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
B:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
N:=BARSLAST(CROSS(A,0.5))+1;
M:=BARSLAST(CROSS(B,0.5))+1;
LVC:=6*ABS(N-M);
//DRAWSL(MIN(M,N)=N&&HD,(O+C)/2,0,LVC,0,COLORRED),DOT;//后面那个点的日期
//DRAWSL(MIN(M,N)=M&&LD,(O+C)/2,0,LVC,0,COLORGREEN),DOT;//后面那个点的日期
DRAWSL(MIN(M,N)=N&&HD,H,0,LVC,0,COLORRED),DOT;//后面那个点的日期
DRAWSL(MIN(M,N)=M&&LD,L,0,LVC,0,COLORGREEN),DOT;//后面那个点的日期
DRAWICON(HD&&L1<L2&&H>L1+0.5*(H2-L1)&&H<L1+0.618*(H2-L1),H,1);
DRAWICON(LD&&H1>H2&&L<H1-0.5*(H1-L2)&&L>H1-0.618*(H1-L2),L,2);

这样可以吗?
条件:
第二个顶分型比前一个分型高;
第二个底分型比前一个底分型低