畫線法__真正高手用的
KDTP
input:n(9),m(3);
RSV:=(CLOSE-LLV(LOW,N))/(HHV(HIGH,N)-LLV(LOW,N))*100;
K:=SMA(RSV,M,1);
D:=BARSLAST(CROSS(K,80));
KH:=REF(H,D);
PARTLINE(C<KH,KH),COLORGREEN,POINTDOT;
預(yù)警:CROSS(C,KH);
DRAWTEXT(CROSS(C,KH),L*0.995,'預(yù)警'),COLORGREEN;
KD指標(biāo)K值上穿80時(條件),取當(dāng)日最高價,向右畫線,直到某日收盤價突破該價格(突破該線),畫線結(jié)束。1、作出主圖指標(biāo);2突破時條件選股(預(yù)警)。
XH-Z zig-分段信號
INPUT:N(20,1,100);
M:=(SYSPARAM(4)-SYSPARAM(5))/SYSPARAM(5)*100,LINETHICK0;{確定高低點(diǎn)差}
M1:=IF(DATATYPE>5,M/6,IF(DATATYPE>3,M/8,M/10)),LINETHICK0;{確定ZIG轉(zhuǎn)向參數(shù)}
M1:IF(M1>1,FLOOR(M1),CEILING(M1)),LINETHICK0;
z:=zig(4,M1); f:=z-ref(z,1);
d:=FILTER(refx(f>0 and ref(f,1)<0,1)or BARPOS=1,2);{低點(diǎn)}
wd:=barslast(d);{低點(diǎn)位置}
g:=FILTER(refx(f<0 and ref(f,1)>0,1)or BARPOS=1,2);{高點(diǎn)}
wg:=barslast(g);{高點(diǎn)位置}
xwd:=if(sum(wd=0,2)>1,1,wd)linethick0;//低點(diǎn)位置確認(rèn)
xwg:=if(sum(wg=0,2)>1,1,wg)linethick0;//高點(diǎn)位置確認(rèn)
fd:=hhv(h,xwd)/ref(L,xwd)-1>M1/100;//低點(diǎn)鞏固系數(shù)
fg:=1-LLv(L,xwg)/ref(h,xwg)>M1/100;//高點(diǎn)鞏固系數(shù)
dqz:=BACKSET(ISLASTBAR and wd<wg and fd=0,xwd+1)=0;//低點(diǎn)過濾系數(shù)
gqz:=BACKSET(ISLASTBAR and wg<wd and fg=0,xwd+1)=0;//高點(diǎn)過濾系數(shù)
{以下輸出信號}
dd:dqz*d or BARPOS=1;{輸出低點(diǎn)}
gg:gqz*g or BARPOS=1;{輸出高點(diǎn)}
畫圓弧
ng\nd均為16
drawtext(sysparam(2)=barpos,c,'板塊:'+blkname),colorccffff,align4;
gg:="xh-z.gg";//(ng);
dd:="xh-z.dd";//(nd);
p:=SYSPARAM(1);
z:=gg*h+dd*L;
sd:=sum(dd,0);
sdd:=sd[p]-sd+1;
wx1:=barssince(sdd=3);
wx2:=barssince(sdd=2);
wx3:=barssince(sdd=1);
ry1:=hhv((wx1=0)*z,0);
ry2:=hhv((wx2=0)*z,0);
ry3:=hhv((wx3=0)*z,0);
rx2:=hhv((wx2=0)*wx1,wx1+1);
rx3:=hhv((wx3=0)*wx1,wx1+1);
x2:=rx2[p];
x3:=rx3[p];
y1:=ry1[p];
y2:=(ry2[p]-ry1[p]);
y3:=(ry3[p]-ry1[p]);
xy:=POW(x2,2)+POW(y2,2);
e:=(x3*xy/x2-(x3*x3+y3*y3))/(y3-x3*y2/x2);
d:=-(y2*e+xy)/x2;
y1:=POW((d*d+e*e)/4-POW((wx1+d/2),2),0.5);
y2:=-POW((d*d+e*e)/4-POW((wx1+d/2),2),0.5);
c1:=ref(L,wx1)-ref(y1,wx1);
yy:=(y1+c1);
c2:=ref(L,wx1)+ref(y1,wx1);
ye:=(y2+c2);
wyy:=abs(ref(yy,wx3)-ref(z,wx3))<0.01;
wye:=abs(ref(ye,wx3)-ref(z,wx3))<0.01;
if wyy[datacount] then
yy,LINETHICK2,COLORMAGENTA;
ELSE
ye,LINETHICK2,COLORMAGENTA;
sg:=sum(gg,0);
sgg:=sg[p]-sg+1;
wxg1:=barssince(sgg=3);
wxg2:=barssince(sgg=2);
wxg3:=barssince(sgg=1);
ryg1:=hhv((wxg1=0)*z,0);
ryg2:=hhv((wxg2=0)*z,0);
ryg3:=hhv((wxg3=0)*z,0);
rxg2:=hhv((wxg2=0)*wxg1,wxg1+1);
rxg3:=hhv((wxg3=0)*wxg1,wxg1+1);
xg2:=rxg2[p];
xg3:=rxg3[p];
yg1:=ryg1[p];
yg2:=(ryg2[p]-ryg1[p]);
yg3:=(ryg3[p]-ryg1[p]);
xyg:=POW(xg2,2)+POW(yg2,2);
eg:=(xg3*xyg/xg2-(xg3*xg3+yg3*yg3))/(yg3-xg3*yg2/xg2);
g:=-(yg2*eg+xyg)/xg2;
yg1:=POW((g*g+eg*eg)/4-POW((wxg1+g/2),2),0.5);
yg2:=-POW((g*g+eg*eg)/4-POW((wxg1+g/2),2),0.5);
cg1:=ref(z,wxg1)-ref(yg1,wxg1);
yyg:=(yg1+cg1);
cg2:=ref(z,wxg1)+ref(yg1,wxg1);
yeg:=(yg2+cg2);
wyyg:=abs(ref(yyg,wxg3)-ref(z,wxg3))<0.01;
wyeg:=abs(ref(yeg,wxg3)-ref(z,wxg3))<0.01;
if wyyg[datacount] then
yyg,LINETHICK2,COLORGREEN;
ELSE
yeg,LINETHICK2,COLORGREEN;
DRAWICON(dd,z,11);
DRAWICON(gg,z,10);
波段畫線
input:n(5,5,30);
fh:=high; fl:=low;
///以下找歷史最高點(diǎn),hh1表示最高價,phh1表示最高點(diǎn)位置///
hh1:=fh[1]; phh1:=1;
for i=1 to datacount do //從第1條K線開始,循環(huán)執(zhí)行下面3條復(fù)合語句,直到K線結(jié)束
if hh1<fh then begin //判斷
hh1:=fh; phh1:=i; //用hh1單值變量記錄歷史最高價,phh1記錄位置
end;
///以下找phh1之后的最低點(diǎn),ll表示最低價,pll最低點(diǎn)位置
if phh1<datacount then begin
ll:=fl[phh1+1];
for i=phh1 to datacount do
if ll>fl then begin
ll:=fl; pll:=i;
end;
end;
///以下用zig轉(zhuǎn)折模擬波段,通過參數(shù)n來調(diào)整波的分布///
///找歷史最高后的波峰最高點(diǎn),hh2次高價,phh2位置///
tj:=peakbars(high,n,1)=0;
nstart:=max(lbound(tj),phh1+1);
if nstart<=datacount then begin
hh2:=0;
for i=nstart to datacount do
if tj then begin
if hh2<fh then begin
hh2:=fh;
phh2:=i;
end;
end;
end;
//////以下畫線///////////
drawline(barpos=phh1,high,barpos=phh2,high,1),colormagenta;
drawline(barpos=phh1,high,barpos=pll,low,1),coloryellow;
波浪+趨勢
{以下語句為新結(jié)構(gòu)波浪}
A1:=REF(HIGH,3)=HHV(HIGH,2*3+1); B1:=FILTER(A1,3); C1:=BACKSET(B1,3+1); D1:=FILTER(C1,3);{高點(diǎn)}
A2:=REF(LOW,3)=LLV(LOW,2*3+1); B2:=FILTER(A2,3); C2:=BACKSET(B2,3+1); D2:=FILTER(C2,3);{低點(diǎn)}
E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2; E2:=(HIGH+LOW)/2;{高低點(diǎn)出現(xiàn)在同一K線上時可作取舍}
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);{過濾后低點(diǎn)}
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);{過濾后高點(diǎn)}
DRAWLINE(LD,L,HD,H,0),COLORWHITE,LINETHICK1,POINTDOT;
DRAWLINE(HD,H,LD,L,0),COLORWHITE,LINETHICK1,POINTDOT;
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,POINTDOT;
{以上語句為新結(jié)構(gòu)波浪}
A3:=H<REF(H,REF(BARSLAST(HD),1)+1);
B3:=REF(H,REF(BARSLAST(HD),1)+1)>REF(H,REF(BARSLAST(HD),1)+2+REF(BARSLAST(HD),REF(BARSLAST(HD),1)+2));
D3:=A3 AND B3 AND HD; E3:=BACKSET(D3,REF(BARSLAST(HD),1)+2); HH:=E3>REF(E3,1);{找出全部長期高點(diǎn)}
A4:=L>REF(L,REF(BARSLAST(LD),1)+1);
B4:=REF(L,REF(BARSLAST(LD),1)+1)<REF(L,REF(BARSLAST(LD),1)+2+REF(BARSLAST(LD),REF(BARSLAST(LD),1)+2));
D4:=A4 AND B4 AND LD; E4:=BACKSET(D4,REF(BARSLAST(LD),1)+2); LL:=E4>REF(E4,1);{找出全部長期低點(diǎn)}
DRAWICON(HH,H,10),ALIGN2; DRAWICON(LL,L,12),ALIGN1;
H3:=HH OR ISLASTBAR OR BARSCOUNT(C)=1; {后面進(jìn)行過濾,方法同前。只是不用考慮高低點(diǎn)出現(xiàn)在同一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),LINETHICK0; {長期低點(diǎn),也可供引用}
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),LINETHICK0;{長期高點(diǎn),也可供引用}
DRAWLINE(HZ,H,LZ,L,0),COLORGREEN,LINETHICK1;
DRAWLINE(LZ,L,HZ,H,0),COLORGREEN,LINETHICK1;{長期連線}
K1:=BACKSET(ISLASTBAR,MIN(BARSLAST(HZ),BARSLAST(LZ))+1); K2:=K1>REF(K1,1);
DRAWLINE(K2,IF(HZ,H,L),ISLASTBAR,C,0),COLORGREEN,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),COLORMAGENTA,LINETHICK1;
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),COLORMAGENTA,LINETHICK1;
前一低:REF(L,BARSLAST(VV)),COLOR99FF66,POINTDOT,LINETHICK3;
前二低:REF(L,BARSLAST(XX)),COLORFF66FF,POINTDOT,LINETHICK3;
前一高:REF(H,BARSLAST(VV2)),COLOR99FF66,POINTDOT,LINETHICK3;
前二高:REF(H,BARSLAST(XX2)),COLORFF66FF,POINTDOT,LINETHICK3;
短高:=REF(H,BARSLAST(VV2)),LINETHICK0;
短低:=REF(L,BARSLAST(VV)),LINETHICK0;
短比: (C-短低)/(短高-短低),LINETHICK0;
{以下語句是大盤趨勢疊加}
常數(shù):=REF(INDEXC,BARSLAST(VV))/REF(C,BARSLAST(VV));
疊1:INDEXC/常數(shù),COLORGRAY,LINETHICK0;
PARTLINE(1,疊1),COLORGRAY;
常數(shù)2:=REF(INDEXC,BARSLAST(XX))/REF(C,BARSLAST(XX));
疊2:INDEXC/常數(shù)2,COLORGRAY,LINETHICK0;
PARTLINE(1,疊2),COLORGRAY;
DRAWNUMBER(HD,1.02*H,DATEDIFF(REF(DATE,BARSLAST(LD)),DATE),0),COLORCYAN;
DRAWNUMBER(LD,0.98*L,DATEDIFF(REF(DATE,BARSLAST(HD)),DATE),0),COLORCYAN;
DRAWNUMBER(HD,H*(1+0.002),H,2),COLORBLUE,ALIGN0;
DRAWNUMBER(LD,L*(1.001-0.002),L,2),COLORBLUE,ALIGN0;
JGB
n=3 1 9999
A1:=REF(H,N)=HHV(H,2*N+1); B1:=FILTER(A1,N); C1:=BACKSET(B1,N+1); D1:=FILTER(C1,N);{高點(diǎn)}
A2:=REF(L,N)=LLV(L,2*N+1); B2:=FILTER(A2,N); C2:=BACKSET(B2,N+1); D2:=FILTER(C2,N);{低點(diǎn)}
E1:=(REF(LLV(L,2*N),1)+REF(HHV(H,2*N),1))/2; E2:=(H+L)/2;{高低點(diǎn)出現(xiàn)在同一K線上時可作取舍}
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR ISLASTBAR 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),LINETHICK0;{過濾后低點(diǎn)}
L2:=LD OR ISLASTBAR 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),LINETHICK0;{過濾后高點(diǎn)}
DRAWLINE(HD,H,LD,L,0),COLORYELLOW,LINETHICK1;DRAWLINE(LD,L,HD,H,0),COLORYELLOW,LINETHICK1;
{高低點(diǎn)之間作連線。Param#1調(diào)峰點(diǎn)參數(shù)N(3,2,999);}
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),COLORYELLOW;
{作最后的連線。這根線有時會不盡人意。}
JGE
n=3 2 9999 m =1 0 1
HD:="jgb.HD"(N);LD:="jgb.LD"(N);
DRAWLINE(LD,L,HD,H,0),COLORFF9900;DRAWLINE(HD,H,LD,L,0),COLORFF9900;
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),COLORFF9900;
R1:=BACKSET(ISLASTBAR,BARSLAST(HD)+1); S1:=R1>REF(R1,1); {前一高}
T1:=BACKSET(ISLASTBAR,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); {前二低}
短高:REF(H,BARSLAST(S1)),LINETHICK1; 短低:REF(L,BARSLAST(U1)),LINETHICK1;
短比:(C-短低)/(短高-短低),LINETHICK0;
DRAWLINE(S2,H,S1,H,1); DRAWLINE(U2,L,U1,L,1);
V1:=LINEVALUE(S2,H,S1,H,0,1); V2:=LINEVALUE(U2,L,U1,L,0,1);
DRAWICON(CROSS(C,V1),V1,4); DRAWICON(CROSS(V2,C),V2,5);
DRAWICON(CROSS(C,短高),短高,4); DRAWICON(CROSS(短低,C),短低,5);
A3:=H<REF(H,REF(BARSLAST(HD),1)+1);
B3:=REF(H,REF(BARSLAST(HD),1)+1)>REF(H,REF(BARSLAST(HD),1)+2+REF(BARSLAST(HD),REF(BARSLAST(HD),1)+2));
D3:=A3 AND B3 AND HD; E3:=BACKSET(D3,REF(BARSLAST(HD),1)+2); HZ:=E3>REF(E3,1);{找出全部長期高點(diǎn)}
A4:=L>REF(L,REF(BARSLAST(LD),1)+1);
B4:=REF(L,REF(BARSLAST(LD),1)+1)<REF(L,REF(BARSLAST(LD),1)+2+REF(BARSLAST(LD),REF(BARSLAST(LD),1)+2));
D4:=A4 AND B4 AND LD; E4:=BACKSET(D4,REF(BARSLAST(LD),1)+2); LZ:=E4>REF(E4,1);{找出全部長期低點(diǎn)}
R3:=BACKSET(ISLASTBAR,BARSLAST(HZ)+1); S3:=R3>REF(R3,1); {前一長高}
T3:=BACKSET(ISLASTBAR,BARSLAST(LZ)+1); U3:=T3>REF(T3,1); {前一長低}
長高:REF(H,BARSLAST(S3)),LINETHICK2; 長低:REF(L,BARSLAST(U3)),LINETHICK2;
長比:(C-長低)/(長高-長低),LINETHICK0;
PARTLINE(1,長低+(長高-長低)/2),COLORRED; PARTLINE(1,長低+(長高-長低)/3),POINTDOT,COLORDDDDDD;
PARTLINE(1,長低+2*(長高-長低)/3),POINTDOT,COLORDDDDDD;
{下面做大盤疊加,從可見的第一根K線開始。}
A:=BARSCOUNT(C)=SYSPARAM(2); B:=BARSLAST(A); CC:=REF(INDEXC,B)/REF(C,B);
DD1:=INDEXO/CC; DD2:=INDEXH/CC; DD3:=INDEXL/CC; DD4:=INDEXC/CC;
STICKLINE(M AND DD4>=REF(DD4,1),DD3,DD1,0.1,0),COLORFF66FF;
STICKLINE(M AND DD4>=REF(DD4,1),DD4,DD2,0.1,0),COLORFF66FF;
STICKLINE(M AND DD4>=REF(DD4,1),DD1,DD4,7,1),COLORFF66FF;
STICKLINE(M AND DD4<REF(DD4,1),DD3,DD2,0.1,0),COLOR99FF33;
STICKLINE(M AND DD4<REF(DD4,1),DD4,DD1,7,0),COLOR99FF33;
背離系數(shù):100*(C-DD4)/DD4,LINETHICK0;