{波浪画线}
N1:=10;N2:=10;DISP:=2;
K:=IF(PERIOD=5,1,{日}
IF(PERIOD=6,1,{周}
IF(PERIOD=7,1,{月}
IF(PERIOD=8,1,{多分钟}
IF(PERIOD=9,1,{多日}
IF(PERIOD=10,1,{季}
IF(PERIOD=11,2,{年}
IF(PERIOD=4,1,{60F}
IF(PERIOD=3,1,{30F}
IF(PERIOD=2,1,{15F}
IF(PERIOD=1,1{5F},1{1F})))))))))))/10;
P1:=PEAK(1,K*N1,1);
P2:=PEAK(1,K*N1,2);
WP1:=PEAKBARS(1,K*N1,1);
WP2:=PEAKBARS(1,K*N1,2);
T1:=TROUGH(2,K*N2,1);
T2:=TROUGH(2,K*N2,2);
WT1:=TROUGHBARS(2,K*N2,1);
WT2:=TROUGHBARS(2,K*N2,2);
TJ1:=P1 T1 AND P2
ZD:=MAX(T1,T2);
ZG:=MIN(P1,P2);
LL:=MIN(T1,T2);
HH:=MAX(P1,P2);
TJ2:=FILTER(ZG ZD,2);
TJ3:=ZG=REF(ZG,BARSLAST(TJ2)) OR ZD=REF(ZD,BARSLAST(TJ2));
TJ4:=TJ1 TJ2 NOT(TJ3);
TJ5:=BETWEEN(ZD,REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)));
TJ6:=BETWEEN(ZG,REF(ZD,REF(BARSLAST(TJ4),1)),REF(ZG,REF(BARSLAST(TJ4),1)));
TJ7:=ZG REF(ZG,REF(BARSLAST(TJ4),1)) ZD REF(ZD,REF(BARSLAST(TJ4),1));
TJ8:=TJ4 NOT(TJ5 OR TJ6 OR TJ7);
ZSD:=IF(TJ8,ZD,DRAWNULL);
ZSG:=IF(TJ8,ZG,DRAWNULL);
ZSH:=IF(TJ8,HH,DRAWNULL);
ZSL:=IF(TJ8,LL,DRAWNULL);
STICKLINE(TJ8,ZSH,ZSL,0,-1),COLORMAGENTA;
STICKLINE(TJ8,ZSD,ZSG,IF(DISP=1,3,0),1),COLORMAGENTA;
DRAWTEXT(DISP=2,ZSH,'中枢'),COLORWHITE;
中枢高:=PLOYLINE(DISP=2,REF(ZSD,BARSLAST(TJ8))),CIRCLEDOT,COLORLIRED;
中枢低:=PLOYLINE(DISP=2,REF(ZSG,BARSLAST(TJ8))),CIRCLEDOT,COLORLIGREEN;
{中枢最高:PLOYLINE(DISP=2,REF(ZSH,BARSLAST(TJ8))),POINTDOT,COLORRED;
中枢最低:PLOYLINE(DISP=2,REF(ZSL,BARSLAST(TJ8))),POINTDOT,COLORGREEN;}
趋势高:=PLOYLINE(DISP=3,ZIG(1,K*N1)),COLORLIBLUE;
趋势低:=PLOYLINE(DISP=3,ZIG(2,K*N2)),COLORLIBLUE;
局部低点预选A:=BACKSET(LLV(L,5) REF(LLV(L,4),1),4);
局部低点预选B:=BACKSET(局部低点预选A=0 AND REF(局部低点预选A,1)=1,2);
局部低点预选C:=IF(局部低点预选B=1 AND REF(局部低点预选B,1)=0,-1,0);
局部高点预选A:=BACKSET(HHV(H,5) REF(HHV(H,4),1),4);
局部高点预选B:=BACKSET(局部高点预选A=0 AND REF(局部高点预选A,1)=1,2);
局部高点预选C:=IF(局部高点预选B=1 AND REF(局部高点预选B,1)=0,1,0);
缺口判断:=IF(L REF(H,1),1,IF(H REF(L,1),-1,0));
距前高天:=BARSLAST(局部高点预选C=1);
距前低天:=BARSLAST(局部低点预选C=-1);
小值周期:=LOWRANGE(L);
大值周期:=TOPRANGE(H);
低保留AA:=IF(局部低点预选C=-1 AND REF(距前高天,1) REF(距前低天,1) AND LLV(L,距前高天+1) REF(LLV(L,距前高天+1),1),-1,0);
低保留AB:=IF(局部低点预选C=-1 AND REF(距前高天,1) =REF(距前低天,1) AND (距前高天 =4 OR LLV(缺口判断,距前高天)=-1 OR LLV(L,距前低天+2) REF(LLV(L,距前低天+1),1)),-1,0);
低保留S:=IF((低保留AA=-1 OR 低保留AB=-1) AND L REF(H,距前高天+1),-1,0);
预判:=IF((距前低天 4 AND HHV(缺口判断,距前低天)!=1) OR REF(低保留S,距前低天)=0,1,0);
判断:=IF(局部高点预选C=1 AND REF(距前低天,1) =REF(距前高天,1) AND 预判=1 AND 大值周期 REF(小值周期,距前低天+1) AND 大值周期 REF(小值周期,距前低天) AND 大值周期 REF(大值周期,距前高天),1,0);
高保留A:=IF(局部高点预选C=1 AND REF(距前低天,1) REF(距前高天,1) AND HHV(H,距前低天+1) REF(HHV(H,距前低天+1),1),1,0);
高保留B:=IF(局部高点预选C=1 AND REF(距前低天,1) =REF(距前高天,1) AND REF(低保留S,距前低天)=-1 AND (距前低天 =4 OR HHV(缺口判断,距前低天)=1),1,0);
高保留:=IF((高保留A=1 OR 高保留B=1 OR 判断=1) AND H REF(L,距前低天+1),1,0);
预判A:=IF((距前高天 4 AND HHV(缺口判断,距前高天)!=1) OR REF(高保留,距前高天)=0,1,0);
判断A:=IF(局部低点预选C=-1 AND REF(距前高天,1) =REF(距前低天,1) AND 预判A=1 AND 小值周期 REF(大值周期,距前高天+1) AND 小值周期 REF(大值周期,距前高天) AND 小值周期 REF(小值周期,距前低天),-1,0);
低保留A:=IF(局部低点预选C=-1 AND REF(距前高天,1) REF(距前低天,1) AND LLV(L,距前高天+1) REF(LLV(L,距前高天+1),1),-1,0);
低保留B:=IF(局部低点预选C=-1 AND REF(距前高天,1) =REF(距前低天,1) AND (距前高天 =4 OR LLV(缺口判断,距前高天)=-1 OR 判断A=-1),-1,0);
低保留:=IF((低保留A=-1 OR 低保留B=-1) AND L REF(H,距前高天+1),-1,0);
距前高天A:=BARSLAST(高保留=1);
距前低天A:=BARSLAST(低保留=-1);
预判X:=IF((距前低天A 4 AND HHV(缺口判断,距前低天A)!=1) OR REF(低保留,距前低天A)=0,1,0);
判断X:=IF(局部高点预选C=1 AND REF(距前低天A,1) =REF(距前高天A,1) AND 预判X=1 AND 大值周期 REF(小值周期,距前低天A+1) AND 大值周期 REF(小值周期,距前低天A) AND 大值周期 REF(大值周期,距前高天A),1,0);
高保留XA:=IF(局部高点预选C=1 AND REF(距前低天A,1) REF(距前高天A,1) AND HHV(H,距前低天A+1) REF(HHV(H,距前低天A+1),1),1,0);
高保留XB:=IF(局部高点预选C=1 AND REF(距前低天A,1) =REF(距前高天A,1) AND REF(低保留,距前低天A)=-1 AND (距前低天A =4 OR HHV(缺口判断,距前低天A)=1),1,0);
高保留X:=IF((高保留XA=1 OR 高保留XB=1 OR 判断X=1) AND H REF(L,距前低天A+1),1,0);
预判XA:=IF((距前高天A 4 AND HHV(缺口判断,距前高天A)!=1) OR REF(高保留XA,距前高天A)=0,1,0);
判断XA:=IF(局部低点预选C=-1 AND REF(距前高天A,1) =REF(距前低天A,1) AND 预判XA=1 AND 小值周期 REF(大值周期,距前高天A+1) AND 小值周期 REF(大值周期,距前高天A) AND 小值周期 REF(小值周期,距前低天A),-1,0);
低保留XA:=IF(局部低点预选C=-1 AND REF(距前高天A,1) REF(距前低天A,1) AND LLV(L,距前高天A+1) REF(LLV(L,距前高天A+1),1),-1,0);
低保留XB:=IF(局部低点预选C=-1 AND REF(距前高天A,1) =REF(距前低天A,1) AND (距前高天A =4 OR LLV(缺口判断,距前高天A)=-1 OR 判断XA=-1),-1,0);
低保留X:=IF((低保留XA=-1 OR 低保留XB=-1) AND L REF(H,距前高天A+1),-1,0);
距前高天YA:=BARSLAST(高保留X=1);
距前低天YA:=BARSLAST(低保留X=-1);
预判YX:=IF((距前低天YA 4 AND HHV(缺口判断,距前低天YA)!=1) OR REF(低保留X,距前低天YA)=0,1,0);
判断YX:=IF(局部高点预选C=1 AND REF(距前低天YA,1) =REF(距前高天YA,1) AND 预判YX=1 AND 大值周期 REF(小值周期,距前低天YA+1) AND 大值周期 REF(小值周期,距前低天YA) AND 大值周期 REF(大值周期,距前高天YA),1,0);
高保留YXA:=IF(局部高点预选C=1 AND REF(距前低天YA,1) REF(距前高天YA,1) AND HHV(H,距前低天YA+1) REF(HHV(H,距前低天YA+1),1),1,0);
高保留YXB:=IF(局部高点预选C=1 AND REF(距前低天YA,1) =REF(距前高天YA,1) AND REF(低保留X,距前低天YA)=-1 AND (距前低天YA =4 OR HHV(缺口判断,距前低天YA)=1),1,0);
高保留YX:=IF((高保留YXA=1 OR 高保留YXB=1 OR 判断YX=1) AND H REF(L,距前低天YA+1),1,0);
预判YXA:=IF((距前高天YA 4 AND HHV(缺口判断,距前高天YA)!=1) OR REF(高保留YXA,距前高天YA)=0,1,0);
判断YXA:=IF(局部低点预选C=-1 AND REF(距前高天YA,1) =REF(距前低天YA,1) AND 预判YXA=1 AND 小值周期 REF(大值周期,距前高天YA+1) AND 小值周期 REF(大值周期,距前高天YA) AND 小值周期 REF(小值周期,距前低天YA),-1,0);
低保留YXA:=IF(局部低点预选C=-1 AND REF(距前高天YA,1) REF(距前低天YA,1) AND LLV(L,距前高天YA+1) REF(LLV(L,距前高天YA+1),1),-1,0);
低保留YXB:=IF(局部低点预选C=-1 AND REF(距前高天YA,1) =REF(距前低天YA,1) AND (距前高天YA =4 OR LLV(缺口判断,距前高天YA)=-1 OR 判断YXA=-1),-1,0);
低保留YX:=IF((低保留YXA=-1 OR 低保留YXB=-1) AND L REF(H,距前高天YA+1),-1,0);
AAAD:=IF(高保留YX=1 AND 低保留YX=-1 AND H REF(H,REF(距前高天YA,1)+2),1,IF(高保留YX=1 AND 低保留YX=-1 AND L REF(L,REF(距前低天YA,1)+2),-1,0));
极点保留:=IF(AAAD=0,高保留YX+低保留YX,AAAD);{www.7-0-8-2-2.com}
局部极点:=IF(极点保留=-1,L,IF(极点保留=1,H,DRAWNULL)) CIRCLEDOT COLORYELLOW;
{小折线}
DRAWLINE(极点保留=-1,局部极点,极点保留=1,局部极点,0)COLORLIRED;
DRAWLINE(极点保留=1,局部极点,极点保留=-1,局部极点,0)COLORYELLOW;
DD1:=BARSLAST(ABS(极点保留)!=1);
DRAWTEXT(极点保留=1,局部极点,'卖'),COLORGREEN;
{STICKLINE(极点保留=1,局部极点,局部极点,30,1),COLORCYAN;}
DRAWNUMBER(极点保留=1,局部极点,局部极点)COLORCYAN;
DRAWTEXT(极点保留=-1,局部极点,'买'),COLORRED;
{STICKLINE(极点保留=-1,局部极点,局部极点,30,1),COLORRED;}
DRAWNUMBER(极点保留=-1,局部极点,局部极点)COLORRED;
MA5:MA(CLOSE,5),COLORFF00FF,LINETHICK2;{www.7-0-8-2-2.com}
IF(MA5 REF(MA5,1),MA5,DRAWNULL),COLORWHITE,LINETHICK2;
{横虚线}
N:=8;
AA:=REF(H,N)=HHV(H,2*N+1);
AA1:=REF(L,N)=LLV(L,2*N+1);
QY:=BACKSET(AA,N+1);
QY1:=BACKSET(AA1,N+1);
CC:=FILTER(QY,N) AND H=HHV(H,N+1);
CC1:=FILTER(QY1,N) AND L=LLV(L,N+1);
DDD:=BARSLAST(CC);
DD2:=BARSLAST(CC1);
GDTS:=IF(CC,CURRBARSCOUNT,0);
DDTS:=IF(CC1,CURRBARSCOUNT,0);
DINGBUTS:=IF(DDD,REF(GDTS,DDD),GDTS);
DDTS1:=IF(DD2,REF(DDTS,DD2),DDTS);
GDCS1:=CONST(DINGBUTS);
DDCS1:=CONST(DDTS1);
GDCS13:=CONST(REF(HIGH,GDCS1-1));
DDCS13:=CONST(REF(L,DDCS1-1));
DINGBUTS1:=REF(DINGBUTS,DDD+1);
DDTS2:=REF(DDTS1,DD2+1);
GDCS2:=CONST(DINGBUTS1);
DDCS2:=CONST(DDTS2);GDCS23:=CONST(REF(HIGH,DINGBUTS1-1));
DDCS23:=CONST(REF(L,DDTS2-1));
XG1:=BACKSET(ISLASTBAR,GDCS1);
XD1:=BACKSET(ISLASTBAR,DDCS1);
XG2:=BACKSET(ISLASTBAR,DINGBUTS1);
XD2:=BACKSET(ISLASTBAR,DDTS2);
STICKLINE(XG2,GDCS23,GDCS23,2,0),COLORWHITE;
STICKLINE(XG1,GDCS13,GDCS13,2,0),COLORYELLOW;
STICKLINE(XD2,DDCS23,DDCS23,2,0),COLORGRAY;
STICKLINE(XD1,DDCS13,DDCS13,2,0),COLORCYAN;
{大折线}
A1:=REF(HIGH,10)=HHV(HIGH,2*10+1);
B1:=FILTER(A1,10);
C1:=BACKSET(B1,10+1);
D1:=FILTER(C1,10);{高点}
A2:=REF(LOW,10)=LLV(LOW,2*10+1);
B2:=FILTER(A2,10);
C2:=BACKSET(B2,10+1);
D2:=FILTER(C2,10);{低点}
E1:=(REF(LLV(LOW,2*10),1)+REF(HHV(HIGH,2*10),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,10000),X1));
G1:=F1 REF(F1,1);
I1:=BACKSET(G1,2);
LD:=I1 REF(I1,1);{过滤后低点}
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));
G2:=F2 REF(F2,1);
I2:=BACKSET(G2,2);
HD:=I2 REF(I2,1);{过滤后高点}
DRAWLINE(LD,L,HD,H,0),COLORMAGENTA,DOTLINE,LINETHICK1;
DRAWLINE(HD,H,LD,L,0),COLORMAGENTA,DOTLINE,LINETHICK1;
J1:=BACKSET(ISLASTBAR ,MIN(BARSLAST(HD),BARSLAST(LD))+1);
J2:=J1 REF(J1,1);
DRAWLINE(J2,IF(HD,H,L),ISLASTBAR ,IF(BARSLAST(HD) BARSLAST(LD),H,L),0),COLORWHITE,LINETHICK1;
{趋势线}
UU:=BACKSET(ISLASTBAR,BARSLAST(LD)+1);
VV:=UU REF(UU,1);
WW:=BACKSET(VV,REF(BARSLAST(LD),1)+2);
XX:=WW REF(WW,1);
DRAWLINE(XX,L,VV,L,1),COLORRED,LINETHICK2;
UU2:=BACKSET(ISLASTBAR,BARSLAST(HD)+1);
VV2:=UU2 REF(UU2,1);
WW2:=BACKSET(VV2,REF(BARSLAST(HD),1)+2);
XX2:=WW2 REF(WW2,1);
DRAWLINE(XX2,H,VV2,H,1),COLORGREEN,LINETHICK2;