通达信一阳定势+强势突破 自动画线 可修改源码做预警公式

[复制链接]
查看363 | 回复0 | 2021-8-28 00:20:14 | 显示全部楼层 |阅读模式

以下是通达信一阳定势+强势突破 自动画线 可修改源码做预警公式(无源码的请下载附件导入)

可修改指标源码做成预警公式。因为用到自动划线所以指标有未来函数,但是信号不会漂移,可用沙盘试验,信号出来后就是连续跌停信号也不会消失,因为划线是取近期一段交易日的数据,之前符合条件的信号不会再显示,使用沙盘倒推功能能看到历史符合条件的信号
 

笔周期:=3;
画趋势:=0;
A1:=REF(HIGH,3)=HHV(HIGH,笔周期*3+1);
B1:=FILTER(A1,3);
C1:=BACKSET(B1,3+1);
D1:=FILTER(C1,3);{高点}
A2:=REF(LOW,3)=LLV(LOW,笔周期*3+1);
B2:=FILTER(A2,3);
C2:=BACKSET(B2,3+1);
D2:=FILTER(C2,3);{低点}
E1:=(REF(LLV(LOW,2*3),1)+REF(HHV(HIGH,2*3),1))/2;
E2:=(HIGH+LOW)/2;{高低点出现在同一K线上时可作取舍}
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR BARSTATUS=2 OR BARSCOUNT(CLOSE)=1;
H2:=D1 AND NOT(D2 AND E1>=E2);
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,LOW,10000),X1));
G1:=F1>REF(F1,1);
I1:=BACKSET(G1,2);
LD:=I1>REF(I1,1);{过滤后低点}
L2:=LD OR BARSTATUS=2 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);{过滤后高点}
DRAWLINE(LD,L,HD,H,0),COLORYELLOW,LINETHICK1;
DRAWLINE(HD,H,LD,L,0),COLORYELLOW,LINETHICK1;
J1:=BACKSET(BARSTATUS=2,MIN(BARSLAST(HD),BARSLAST(LD))+1);
J2:=J1>REF(J1,1);
A3:=H;
B3:=REF(H,REF(BARSLAST(HD),1)+1)>REF(H,REF(BARSLAST(HD),1)+2+REF(BARSLAST(HD),REF(BARSLAST(HD),1)+2));DRAWTEXT_FIX(1,0.980,20,1,'★分析家公式网'),COLOR666666;
D3:=A3 AND B3 AND HD;
E3:=BACKSET(D3,REF(BARSLAST(HD),1)+2);
HH:=E3>REF(E3,1);{找出全部长期高点}
A4:=L>REF(L,REF(BARSLAST(LD),1)+1);
B4:=REF(L,REF(BARSLAST(LD),1)+1);
D4:=A4 AND B4 AND LD;
E4:=BACKSET(D4,REF(BARSLAST(LD),1)+2);
LL:=E4>REF(E4,1);{找出全部长期低点}
H3:=HH OR BARSTATUS=2 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 BARSTATUS=2 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(BARSTATUS=2,MIN(BARSLAST(HZ),BARSLAST(LZ))+1); K2:=K1>REF(K1,1);
UU:=BACKSET(BARSTATUS=2,BARSLAST(LD)+1);
VV:=UU>REF(UU,1);
WW:=BACKSET(VV,REF(BARSLAST(LD),1)+2);
XX:=WW>REF(WW,1);
WWQ:=BACKSET(XX,REF(BARSLAST(LD),1)+2);
XXQ:=WWQ>REF(WWQ,1);
下轨:=DRAWLINE(XX,L,VV,L,1),COLORMAGENTA,LINETHICK2;{画趋势线}
UU2:=BACKSET(BARSTATUS=2,BARSLAST(HD)+1);
VV2:=UU2>REF(UU2,1);
WW2:=BACKSET(VV2,REF(BARSLAST(HD),1)+2);
XX2:=WW2>REF(WW2,1);
WW3Q:=BACKSET(XX2,REF(BARSLAST(HD),1)+2);
XX3Q:=WW3Q>REF(WW3Q,1);
WW4Q:=BACKSET(XX3Q,REF(BARSLAST(HD),1)+2);
XX4Q:=WW4Q>REF(WW4Q,1);
上轨:=DRAWLINE(XX2,H,VV2,H,1),COLORMAGENTA,LINETHICK2;{画趋势线};
上轨1:=DRAWLINE(XX2,H,VV2,H,1);
Q0:=BARSLAST(XX2>0);
Q1:=BARSLAST(XX>0);
Q2:=BARSLAST(WW2>0);
Q3:=BARSLAST(VV>0);
Q4:=BARSLAST(XXQ>0);
Q5:=BARSLAST(XX3Q>0);
Q6:=BARSLAST(XX4Q>0);
近期低:REF(L,BARSLAST(VV)),DOTLINE,COLOR99FF66;
近期高:REF(H,BARSLAST(VV2)),DOTLINE,COLOR99FF66;
上次低:REF(L,BARSLAST(XX)),DOTLINE,COLORFF66FF;
上次高:REF(H,BARSLAST(XX2)),DOTLINE,COLORFF66FF;
ABC:=IF(Q5>Q4,REF(L,BARSLAST(XXQ)),0),DOTLINE,COLORCYAN;
①②③:=IF(Q5<Q4,REF(H,BARSLAST(XX3Q)),0),DOTLINE,COLORCYAN;
笔:DRAWLINE(J2,IF(HD,H,L),BARSTATUS=2,IF(BARSLAST(HD)>BARSLAST(LD),H,L),0),DOTLINE,COLORYELLOW,LINETHICK1;
DRAWTEXT( VV=1 AND Q0>Q1,L,'C')COLORMAGENTA;
DRAWTEXT(VV2=1 AND Q0>Q1,H,'B')COLORMAGENTA;
DRAWTEXT( XX=1 AND Q0>Q1,L,'A')COLORMAGENTA;
DRAWTEXT(XX2=1 AND Q5>Q4 ,H,'◆2')COLORMAGENTA;
DRAWTEXT(XXQ=1 AND Q5>Q4 ,L,'◆1')COLORMAGENTA;
DRAWTEXT( VV=1 AND Q0<Q1,L,'B-')COLORMAGENTA;
DRAWTEXT(VV2=1 AND Q0<Q1,H,'C-')COLORMAGENTA;
DRAWTEXT(XX2=1 AND Q0<Q1,H,'A-')COLORMAGENTA;
DRAWTEXT(XX=1 AND Q5<Q4,L,'◆2')COLORMAGENTA;
DRAWTEXT(XX3Q=1 AND Q5<Q4,H,'◆1')COLORMAGENTA;
V00:=HIGH<REF(HIGH,1) AND LOW<REF(LOW,1);
V01:=HIGH<REF(HIGH,1) AND LOW>REF(LOW,1);
V02:=HIGH>REF(HIGH,1) AND LOW<REF(LOW,1);
V03:=HIGH>REF(HIGH,1) AND LOW>REF(LOW,1);
V04:=REF(HIGH,2)<HIGH AND REF(LOW,2)<LOW AND REF(HIGH,2)>REF(HIGH,1) AND REF(LOW,2) < REF(LOW,1);
V1:=COUNT(V00,3)>=1 AND LLVBARS(LOW,3)=1 AND V03;
V2:=COUNT(V00,4)>=1 AND LLVBARS(LOW,4)=2 AND V04;
V3:=COUNT(V00,4)>=1 AND COUNT(V01 OR V02,4)=1 AND LLVBARS(LOW,4)=1 AND V03;
V4:=COUNT(V00,5)>=1 AND COUNT(V01 OR V02,5)=2 AND LLVBARS(LOW,5)=2 AND V04;
XG1:=V1 OR V2 OR V3 OR V4;
XG2:=C>REF(HIGH,1);
XG:=XG1 AND XG2;
{收敛突破:=上次低<近期低 AND 上次高>近期高 AND CROSS(C,上轨) AND C>O;
DRAWTEXT(收敛突破=1,L,'收敛突破'),COLORYELLOW;}
突破:=CROSS(C,近期高) AND C>O;
STICKLINE(突破,OPEN,CLOSE,2.8,0),COLORMAGENTA;
强势突破:=上次低<近期低 AND 上次高<近期高 AND CROSS(C,近期高) AND C>O;
STICKLINE(强势突破,OPEN,CLOSE,2.8,0),COLORMAGENTA;
DRAWTEXT(强势突破=1,H,'强势突破'),COLORYELLOW;
{反弹突破:=CROSS(C,上次低) AND C>O;
STICKLINE(反弹突破,OPEN,CLOSE,2.8,1),COLORMAGENTA;
STICKLINE(反弹突破,OPEN,CLOSE,1,1),COLORWHITE;
DRAWTEXT(反弹突破=1,L,'反弹突破'),COLORYELLOW;}
DRAWTEXT(突破=1,L,' 突破'),COLORYELLOW;
一阳定势:=CROSS(C,近期高) AND CROSS(C,上次高) AND C>O;
STICKLINE(一阳定势,OPEN,CLOSE,2.8,0),COLORMAGENTA;
DRAWTEXT(一阳定势=1,(OPEN+CLOSE)/2,' 一阳定势'),COLORRED;

STICKLINE(一阳定势,OPEN,CLOSE,1,0),COLORYELLOW;
STICKLINE(强势突破,OPEN,CLOSE,1,0),COLORYELLOW;

104100337.png

104100337.png

1041233629.png

1041233629.png

回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则