过滤高低点出现在同一K线 主图K线画三角形 通达信主图指标 源码
首先声明这是网上的东西,不过我知道不会做指标人的痛苦,就是这样的主图指标源码网上公开的,但是复制下来没法用,通不过。最近有几个朋友求助修改,于是随手也发这里,喜欢你就看看。勿喜绕道。有图有真相。
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 ISLASTBAR OR BARSCOUNT(CLOSE)=1;
H20304:=D10304 AND NOT(D20304 AND E10304>=E20304);
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 ISLASTBAR OR BARSCOUNT(CLOSE)=1;
X20304:=REF(BARSLAST(L20304),1)+1;
F2:=BACKSET(L20304 AND COUNT(H20304,X20304)>0,HHVBARS(IF(H20304,HIGH,0),X20304));
G20304:=F2>REF(F2,1); I2:=BACKSET(G20304,2);
HD0304:=I2>REF(I2,1);{过滤后高点}
J1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HD0304),BARSLAST(LD0304))+1);
J2:=J1>REF(J1,1);
A3:=H;
B3:=REF(H,REF(BARSLAST(HD0304),1)+1)>REF(H,REF(BARSLAST(HD0304),1)+2+REF(BARSLAST(HD0304),REF(BARSLAST(HD0304),1)+2));
D3:=A3 AND B3 AND HD0304;
E3:=BACKSET(D3,REF(BARSLAST(HD0304),1)+2);
HH:=E3>REF(E3,1);{找出全部长期高点}
A4:=L>REF(L,REF(BARSLAST(LD0304),1)+1);
B4:=REF(L,REF(BARSLAST(LD0304),1)+1);
D4:=A4 AND B4 AND LD0304;
E4:=BACKSET(D4,REF(BARSLAST(LD0304),1)+2);
LL:=E4>REF(E4,1);{找出全部长期低点}
H3:=HH OR ISLASTBAR OR BARSCOUNT(C)=1; {后面进行过滤,方法同前。只是不用考虑高低点出现在同一K线}
X3:=REF(BARSLAST(H3),1)+1;
F3:=BACKSET(H3 AND COUNT(LL,X3)>0,LLVBARS(IF(LL,L,POW(10,20)),X3));
G3:=F3>REF(F3,1);
I3:=BACKSET(G3,2);
LZ:=I3>REF(I3,1); {长期低点,也可供引用}
L4:=LZ OR ISLASTBAR OR BARSCOUNT(C)=1;
X4:=REF(BARSLAST(L4),1)+1;
F4:=BACKSET(L4 AND COUNT(HH,X4)>0,HHVBARS(IF(HH,H,-POW(10,20)),X4));
G4:=F4>REF(F4,1);
I4:=BACKSET(G4,2);
HZ:=I4>REF(I4,1);{长期高点,也可供引用}
K1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HZ),BARSLAST(LZ))+1);
K2:=K1>REF(K1,1);
UU:=BACKSET(ISLASTBAR,BARSLAST(LD0304)+1);
VV:=UU>REF(UU,1);
WW:=BACKSET(VV,REF(BARSLAST(LD0304),1)+2);
XX:=WW>REF(WW,1);
UU2:=BACKSET(ISLASTBAR,BARSLAST(HD0304)+1);
VV2:=UU2>REF(UU2,1);
WW2:=BACKSET(VV2,REF(BARSLAST(HD0304),1)+2);
XX20304:=WW2>REF(WW2,1);
前一低:=REF(L,BARSLAST(VV)),COLOR99FF66,LINETHICK2;
前二低:=REF(L,BARSLAST(XX)),COLORFF66FF,LINETHICK2;
前一高:=REF(H,BARSLAST(VV2)),COLOR99FF66,LINETHICK2;
前二高:=REF(H,BARSLAST(XX20304)),COLORFF66FF,LINETHICK2;
短高:=REF(H,BARSLAST(VV2));短低:=REF(L,BARSLAST(VV));
短比:=(C-短低)/(短高-短低),NODRAW;{以下语句为三角形部分}
底:REF(L,BARSLAST(VV)),COLORRED,LINETHICK2;
顶:REF(H,BARSLAST(VV2)),COLORGREEN,LINETHICK2;
{下迭三角形}
STICKLINE(VV,顶,底,0,0),COLORFF6633,LINETHICK3;
DRAWLINE(VV2,H,VV,L,0),COLORBLUE,LINETHICK3;{斜}
DRAWLINE(VV2,H,VV,顶,0),COLORFF6633,LINETHICK3;{顶}
DRAWTEXT(ISLASTBAR,顶,STRCAT((''),CON2STR(顶,2))),COLORGREEN;
DRAWTEXT(ISLASTBAR,底,STRCAT((''),CON2STR(底,2))),COLORRED;
{上涨三角形}
STICKLINE(VV2 ,顶,底,0,0),COLORRED,LINETHICK3;
DRAWLINE(VV,L,VV2,H,0),COLORRED,LINETHICK3;{斜}
DRAWLINE(VV,L,VV2,底,0),COLORRED,LINETHICK3;