P1:=3;
A10304:=REF(HIGH,3)=HHV(HIGH,2*3+1);
B10304:=FILTER(A10304,3);
C10304:=BACKSET(B10304,3+1);
D10304:=FILTER(C10304,3);{高点}
A20304:=REF(LOW,3)=LLV(LOW,2*3+1);
B20304:=FILTER(A20304,3);
C20304:=BACKSET(B20304,3+1);
D20304:=FILTER(C20304,3);{低点}
E10304:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2;
E20304:=(HIGH+LOW)/2;{高低点出现在同一K线上时可作取舍}
H10304:=(D10304 AND NOT(D20304 AND E10304>=E20304)) OR BARSTATUS=2 OR BARSCOUNT(CLOSE)=1;
L10304:=(D20304 AND NOT(D10304 AND E10304=E20304));
X10304:=REF(BARSLAST(H10304),1)+1;
F10304:=BACKSET(H10304 AND COUNT(L10304,X10304)>0,LLVBARS(IF(L10304,LOW,10000),X10304));
G10304:=F10304>REF(F10304,1);
I10304:=BACKSET(G10304,2);
LD0304:=I10304>REF(I10304,1);{过滤后低点}
L20304:=LD0304 OR BARSTATUS=2 OR BARSCOUNT(CLOSE)=1;
X20304:=REF(BARSLAST(L20304),1)+1;
F20304:=BACKSET(L20304 AND COUNT(H10304,X20304)>0,HHVBARS(IF(H10304,HIGH,0),X20304));
G20304:=F20304>REF(F20304,1);
I20304:=BACKSET(G20304,2);
HD0304:=I20304>REF(I20304,1);{过滤后高点}
UU0304:=BACKSET(BARSTATUS=2,BARSLAST(LD0304)+1);
VV0304:=UU0304>REF(UU0304,1);
UU20304:=BACKSET(BARSTATUS=2,BARSLAST(HD0304)+1);
VV20304:=UU20304>REF(UU20304,1);
{以下语句为三角形部分}
底:REF(L,BARSLAST(VV0304)),COLORred,LINETHICK1;
顶:REF(H,BARSLAST(VV20304)),COLORGreen,LINETHICK1;
{下跌三角形:绿色三角形画完介入}
StickLine(VV0304,顶,底,0,0),COLORGreen,linethick2;
DRAWLINE(VV20304,H,VV0304,L,0),COLORGreen,linethick2;{斜}
DRAWLINE(VV20304,H,VV0304,顶,0),COLORGreen,linethick2;
{上涨三角形:红色三角形画完出局}
StickLine(VV20304 ,顶,底,0,0),COLORred,linethick2;
DRAWLINE(VV0304,L,VV20304,H,0),COLORred,linethick2;{斜}
DRAWLINE(VV0304,L,VV20304,底,0),COLORred,linethick2;
{文字}
NN304:= DISPSTATUS=2;
DRAWTEXT(nn304,底,'底: '+NUMTOSTRN(底,2)+'元 '),ALIGN2,COLORred,LINETHICK1,VALIGN0;
DRAWTEXT(nn304,顶,'顶: '+NUMTOSTRN(顶,2)+'元 '),ALIGN2,COLORGreen,LINETHICK1,VALIGN2;
{箱体}
TY309:=C;
HD309:=FILTER(BACKSET(FILTER(REF(TY309,10)=HHV(TY309,2*10+1),10),10+1),10);
LD309:=FILTER(BACKSET(FILTER(REF(TY309,10)=LLV(TY309,2*10+1),10),10+1),10);
A309:=REF(C,BARSLAST(HD309));
B309:=REF(C,BARSLAST(LD309));
T1309:=BARSLAST(HD309)<BARSLAST(LD309) AND NOT(HD309) ;
T2309:=BARSLAST(HD309)>BARSLAST(LD309) AND NOT(LD309);
波浪顶:IF(T1309,A309,A309),COLORCYAN,POINTDOT,LINETHICK2;
波浪底:IF(T2309,B309,B309),COLORMAGENTA,POINTDOT,LINETHICK2;
a:=HHV(MA((L+H+C)/3,3),3);
b:=llv(MA((L+H+C)/3,3),10);
STICKLINE(DISPSTATUS=2,a,a,20,0),Coloryellow,linethick1;{小箱体--上沿}
DRAWTEXT(DISPSTATUS=2 ,a,NUMTOSTRN(a,3)),colorYELLOW;
STICKLINE(DISPSTATUS=2,b,b,20,0),COLORWhite,linethick1;{小箱体--下沿}
DRAWTEXT(DISPSTATUS=2,b,NUMTOSTRN(b,3)),COLORWhite;
k1:=llv(l,barslast(DISPSTATUS=1)+1);
aa1:=cost(95);
aa2:=cost(5);
ly:=(aa1-aa2)*100/(aa1+aa2);
N:=p1;{原码 N:=3;}
A1:=REF(H,N)=HHV(H,2*N+1);
B1:=FILTER(A1,N);
C1:=BACKSET(B1,N+1);
D1:=FILTER(C1,N);{高点}
A2:=REF(L,N)=LLV(L,2*N+1);
B2:=FILTER(A2,N);
C2:=BACKSET(B2,N+1);
D2:=FILTER(C2,N);{低点}
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2;
E2:=(H+L)/2;{高低点出现在同一K线上时可作取舍}
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR DISPSTATUS=2 OR BARSCOUNT(C)=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,L,10000),X1));
G1:=F1>REF(F1,1);
I1:=BACKSET(G1,2);
LD:=I1>REF(I1,1);{过滤后低点}
L2:=LD OR DISPSTATUS=2 OR BARSCOUNT(C)=1;
X2:=REF(BARSLAST(L2),1)+1;
F2:=BACKSET(L2 AND COUNT(H2,X2)>0,HHVBARS(IF(H2,H,0),X2));
G2:=F2>REF(F2,1);
I2:=BACKSET(G2,2);
HD:=I2>REF(I2,1);{过滤后高点}
R1:=BACKSET(DISPSTATUS=2,BARSLAST(HD)+1); S1:=R1>REF(R1,1); {前一高}
T1:=BACKSET(DISPSTATUS=2,BARSLAST(LD)+1); U1:=T1>REF(T1,1); {前一低}
R2:=BACKSET(S1,REF(BARSLAST(HD),1)+2); S2:=R2>REF(R2,1); {前二高}
T2:=BACKSET(U1,REF(BARSLAST(LD),1)+2); U2:=T2>REF(T2,1); {前二低}
T3:=BACKSET(U2,REF(BARSLAST(LD),1)+2); U3:=T3>REF(T3,1); {前三低}
T4:=BACKSET(U3,REF(BARSLAST(LD),1)+2); U4:=T4>REF(T4,1); {前四低}