图中当高1成立时,如果高1大于高2或高3、高N时,想过滤掉被突破的前高点,请老师们指点!一个朋友问到,一时无法解答,求助各位高手! 原公式如下: INPUT: N(5,1,100); A:=REF(C,N)=HHV(C,2*N+1); B:=FILTER(A,N); D:=BACKSET(B,N+1); E:=FILTER(D,N);{高点} R1:=BACKSET(BARSTATUS=2,BARSLAST(E)+1); S1:=R1>REF(R1,1); {前一高} R2:=BACKSET(S1,REF(BARSLAST(E),1)+2); S2:=R2>REF(R2,1); {前二高} R3:=BACKSET(S2,REF(BARSLAST(E),1)+2); S3:=R3>REF(R3,1); {前三高} R4:=BACKSET(S3,REF(BARSLAST(E),1)+2); S4:=R4>REF(R4,1); {前四高} R5:=BACKSET(S4,REF(BARSLAST(E),1)+2); S5:=R5>REF(R5,1); {前五高} 提示:重点不是画线,而是定位前的过滤,当高1成立后如果大于前面的高点,那就过滤掉前面的,这样高2或高3也就自动上移了! 授人与渔,定会鱼米满仓!请老师们不吝赐教,感谢了!
爱约股解答:
INPUT: N(5,1,100);
A:=REF(C,N)=HHV(C,2*N+1);
B:=FILTER(A,N);
D:=BACKSET(B,N+1);
E:=FILTER(D,N);{高点}
R1:=BACKSET(BARSTATUS=2,BARSLAST(E)+1);
S1:=R1>REF(R1,1); {前一高}
R2:=BACKSET(S1,REF(BARSLAST(E),1)+2);
S2:=R2>REF(R2,1); {前二高}
R3:=BACKSET(S2,REF(BARSLAST(E),1)+2);
S3:=R3>REF(R3,1); {前三高}
R4:=BACKSET(S3,REF(BARSLAST(E),1)+2);
S4:=R4>REF(R4,1); {前四高}
R5:=BACKSET(S4,REF(BARSLAST(E),1)+2);
S5:=R5>REF(R5,1); {前五高}
HC1:REF(c ,BARSLAST(s1)),LINETHICK0;
HC2:REF(c ,BARSLAST(s2)),LINETHICK0;
HC3:REF(c ,BARSLAST(s3)),LINETHICK0;
HC4:REF(c ,BARSLAST(s4)),LINETHICK0;
HC5:REF(c ,BARSLAST(s5)),LINETHICK0;
STICKLINE(BARSLAST(s1)>0 ,HC1 ,HC1 ,16 ,1 );
STICKLINE(BARSLAST(s2)>0 ,HC2 ,HC2 ,16 ,1 );
STICKLINE(BARSLAST(s3)>0 ,HC3 ,HC3 ,16 ,1 );
STICKLINE(BARSLAST(s4)>0 AND (HC1<HC2 OR HC1<HC3),HC4 ,HC4 ,16 ,1 );
STICKLINE(BARSLAST(s5)>0 AND (HC1<HC3 OR HC1<HC2),HC5 ,HC5 ,16 ,1 );;