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); {前四低} |