手机端
当前位置:爱约股 > 公式技巧 > 做个趋势线突破与回踩选股公式

做个趋势线突破与回踩选股公式

如何将本公式修改成选股公式呢?我使用的参数是21 1、三根压力线目前只需要,股价上穿红色压力线, 2、回踩红色压力线(是否量化成股价高于红色压力线且距离不超过3%?) 在论坛找了好久也没弄明白,各位老师这个能做成选股公式吗? input: N(5,1,100); EMA13:=EMA(C,13); ma30:=ma(c,30); ma72:=ma(c,72); {地心引力:(ma30+ma72)/2,POINTDOT,ColorFF7F93,LINETHICK3; 上引力:(ma30+ma72)/2*0.9,POINTDOT,ColorFF7F93,LINETHICK3; 下引力:(ma30+ma72)/2*1.1,POINTDOT,ColorFF7F93,LINETHICK3;} {DRAWGBKLAST(CLOSE>0,STRIP(RGB(95,95,95),RGB(0,0,0),0));} ema17:=ema(c,17); 主筹估算:=EMA(WINNER(c)*70,3); 散筹估算:=EMA((WINNER((c)*1.1)-WINNER((c)*0.9))*70,3); 筹码锁定:=散筹估算-主筹估算 ; 动态底部:=EMA(IF(LREF(Al,1); Al2:=BACKSET(nnl,LLVBARS(L,lhnh)+1); Bl2:=Al2>REF(Al2,1); 前高:REF(H,BARSLAST(bl)),PRECIS2,COLORff00ff,LINETHICK2; DRAWTEXT(nnl,前高,'前高:'+前高),ALIGN2,COLORGREEN; 前低:REF(L,BARSLAST(Bl2)),PRECIS2,COLORGREEN,LINETHICK2; DRAWTEXT(nnl,前低*1.009,'前低: '+前低),ALIGN2,COLORGREEN; Fl1:((前高-前低)*0.191)+前低,POINTDOT,ColorFF7F93,LINETHICK3; DRAWTEXT(BARSLAST(Bl)>BARSLAST(Bl2) and nnl,Fl1,'0.236: '+Fl1),Color938C93; Fl2:((前高-前低)*0.382)+前低,POINTDOT,Color5E8C93,LINETHICK3; DRAWTEXT(BARSLAST(Bl)>BARSLAST(Bl2) and nnl,Fl2,'0.382: '+Fl2),ALIGN2,COLORGREEN; Fl3:((前高-前低)*0.5)+前低,POINTDOT,COLOR00ffff,LINETHICK4; DRAWTEXT(nnl,Fl3,'0.5:'+Fl3),ALIGN2,Color918C93; Fl4:((前高-前低)*0.618)+前低,POINTDOT,Color918C93,LINETHICK3; DRAWTEXT(BARSLAST(Bl)>BARSLAST(Bl2)and nnl,Fl4,'0.618: '+Fl4),ALIGN2,COLORGREEN; Fl5:((前高-前低)*0.809)+前低,POINTDOT,Color918C67,LINETHICK3; DRAWTEXT(BARSLAST(Bl)>BARSLAST(Bl2) and nnl,Fl5,'0.764: '+Fl5),ALIGN2,COLORGREEN; pp:=MAX( BARSLAST(bl),BARSLAST(Bl2))+1; k1:=pp-1; k2:=pp-3; k3:=pp-5; k4:=pp-8; k5:=pp-13; k6:=pp-21; k7:=pp-34; k8:=pp-55; k9:=pp-89; k10:=pp-144; k11:=pp-233; k12:=pp-377; VERTLINE(FILTER(c=ref(c,k1),0) ,1 ); VERTLINE(FILTER(c=ref(c,k2),0) ,1 ); VERTLINE(FILTER(c=ref(c,k3),0),1 ); VERTLINE(FILTER(c=ref(c,k4),0) ,1 ); VERTLINE(FILTER(c=ref(c,k5),0) ,1 ); VERTLINE(FILTER( c=ref(c,k6),0),1 ); VERTLINE(FILTER( c=ref(c,k7),0),1 ); VERTLINE(FILTER(c=ref(c,k8),0),1 ); VERTLINE(FILTER(c=ref(c,k9),0),1 ); VERTLINE(FILTER(c=ref(c,k10),0),1 ); VERTLINE(FILTER(c=ref(c,k11),0),1 ); DRAWTEXT(FILTER(c=ref(c,k1),0),(HHV( h,80 )+LLV(l ,80 ))/2,'1'),COLORred,LINETHICK1; DRAWTEXT(FILTER( c=ref(c,k2),0),(HHV( h,80 )+LLV(l ,80 ))/2,'3'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k3),0),(HHV( h,80 )+LLV(l ,80 ))/2,'5'),COLORGREEN,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k4),0),(HHV( h,80 )+LLV(l ,80 ))/2,'8'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k5),0),(HHV( h,80 )+LLV(l ,80 ))/2,'13'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k6),0),(HHV( h,80 )+LLV(l ,80 ))/2,'21转'),COLORGREEN,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k7),0),(HHV( h,80 )+LLV(l ,80 ))/2,'34'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k8),0),(HHV( h,80 )+LLV(l ,80 ))/2,'55'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k9),0),(HHV( h,80 )+LLV(l ,80 ))/2,'89'),COLORGREEN,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k10),0),(HHV( h,80 )+LLV(l ,80 ))/2,'144'),COLORred,LINETHICK1; DRAWTEXT(FILTER(c=ref(c,k11),0),(HHV( h,80 )+LLV(l ,80 ))/2,'233'),COLORGREEN,LINETHICK1; A1:=ref(h,N)=hhv(h,2*N+1); B1:=filter(A1,N); C1:=backset(B1,N+1); D1:=filter(C1,n) or BARSTATUS=2;{高点} 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 barstatus=2 OR barscount(c)=1; L1:=(D2 AND not(D1 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 barstatus=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(barstatus=2,barslast(HD)+1); S1:=R1>ref(R1,1); {前一高} T1:=backset(barstatus=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); {前四低} R3:=backset(S2,ref(barslast(HD),1)+2); S3:=R3>ref(R3,1); {前三高} R4:=backset(S3,ref(barslast(HD),1)+2); S4:=R4>ref(R4,1); {前四高} 短期压力:drawline(S2,h,S1,h,1),Colorred,LINETHICK2; 短期支撑:drawline(U2,l,U1,l,1),Colorgreen,LINETHICK2; 中期压力:drawline(S3,h,S2,h,1),Coloryellow,LINETHICK2; 中期支撑:drawline(U3,l,U2,l,0),Colorgreen,LINETHICK2; 长期压力:drawline(S4,h,S3,h,1),COLORwhite,LINETHICK2; 长期支撑:drawline(U4,l,U3,l,0),Colorgreen,LINETHICK2; DRAWICON(S1,H,10); DRAWICON(S2,H,10); DRAWICON(S3,H,10); DRAWICON(S4,H,10);

爱约股解答:

{趋势线突破}

input: N(21,1,100);

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 barstatus=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 barstatus=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(barstatus=2,barslast(HD)+1); 

S1:=R1>ref(R1,1); {前一高}

T1:=backset(barstatus=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); {前二低}

HH1:=if(s2,H,ref(H,BARSLAST(s2)));

HH2:=if(s1,H,ref(H,BARSLAST(s1)));

LL1:=if(u2,l,ref(l,BARSLAST(u2)));

LL2:=if(u1,l,ref(l,BARSLAST(u1)));

上线:=HH1+(HH2-HH1)*BARSLAST(s2)/(BARSLAST(s2)-BARSLAST(s1));

突破:cross(c,上线);

 

{回踩趋势线}

input: N(21,1,100);

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 barstatus=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 barstatus=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(barstatus=2,barslast(HD)+1); 

S1:=R1>ref(R1,1); {前一高}

T1:=backset(barstatus=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); {前二低}

HH1:=if(s2,H,ref(H,BARSLAST(s2)));

HH2:=if(s1,H,ref(H,BARSLAST(s1)));

LL1:=if(u2,l,ref(l,BARSLAST(u2)));

LL2:=if(u1,l,ref(l,BARSLAST(u1)));

上线:=HH1+(HH2-HH1)*BARSLAST(s2)/(BARSLAST(s2)-BARSLAST(s1));

突破:=cross(c,上线);

天数:=barslast(突破);

回踩:=count(c>上线,天数+1)=天数+1 and 天数>=3 and l/上线<=1.01 AND MIN(C,O)>L;

第一次:CROSS(COUNT(回踩,天数+1),0.5);

TAG:
分享至:

相关推荐