通达信〖突破颈线模型〗多种算法精准识别关键阻力位有效突破源码
该指标融合了趋势分析与波段操作的双重功能,通过多种算法精准识别股价的底部反转、关键阻力位的有效突破以及顶部卖出时机,从而为投资者提供波段买卖的决策参考。
操作策略如下:
低位布局:当盘面出现“绝对底部”或“凹口淘金”等文字提示时,意味着股价已进入低位企稳阶段,此时可考虑逢低试探性建仓。
突破跟进:密切关注股价是否放量突破图表中的关键阻力线(如“妖线”或“颈线”),若伴随明确的突破信号,则可视为顺势加仓或追涨的良机。
高位止盈:当指标发出“卖”的信号,或趋势线出现高位死叉时,表明上涨动力减弱,应果断减仓或清仓,以锁定利润。
A5:MA(C,5);
A10:MA(C,10);
A20:MA(C,20);
A60:MA(C,60);
A120:MA(C,120)COLORYELLOW LINETHICK1;
A250:MA(C,250)COLORBLUE LINETHICK2;
LT:=LLVBARS(L,250);
LTT:=BARSLAST(CURRBARSCOUNT=CONST(LT)+1);
HT:=FINDHIGHBARS(H,LT+1,60,1);
妖线:DRAWLINE(CURRBARSCOUNT=CONST(HT)+1,H,ISLASTBAR,REF(H,HT),0),COLORWHITE,LINETHICK3;
突破:=CROSS(C,妖线) AND V>0;
DRAWTEXT(突破,LOW*1.2,' 妖'),COLORRED;
TT:=BARSLAST(CURRBARSCOUNT=CONST(HT)+1);
DRAWNULL,COLORRED;
T:=BARSLAST(CROSS(C,REF(H,TT)));
GL:=C/REF(H,TT);
TA:=BARSLAST(GL=HHV(GL,T+1));
DF:=(C-REF(C,TA+1))/REF(C,TA+1)*100;
JL:=L/REF(H,TT);
XG:=DF< -8 AND JL< 1.075 AND MIN(C,O)*1.005>=REF(H,TT);
XGT:=BARSLAST(COUNT(XG,T+1)=1 AND XG);
QF:=BACKSET(XGT=0,TA+1);
QFT:=BARSLAST(CROSS(QF=1,0.5));
XZF:=REFX(DF,BARSNEXT(XGT=0));
DRAWICON(CROSS(XGT=0,0.5),L*0.95,1);
DRAWLINE(T=0,REF(H,TT),QFT=0,REF(H,QFT),0),DOTLINE,COLORYELLOW;
DRAWLINE(QFT=0,REF(H,QFT),XGT=0,REF(H,TT),0),DOTLINE,COLORYELLOW;
DRAWTEXT(TT=0,REF(H,TT)*1.05,VARCAT(VARCAT('支撑价:',VAR2STR(REF(H,TT),2)),'元'))COLORYELLOW;
DRAWLINE(QFT=0,REF(H,QFT)*1.05,QFT=10,REF(H,QFT)*1.05,0),COLORWHITE,LINETHICK3;
DRAWTEXT(QFT=0,REF(H,QFT)*1.1,VARCAT(VARCAT('信号处跌幅:',VAR2STR(XZF,2)),'%'))COLORYELLOW;
ZYG21:=ZIG(3,6)< REF(ZIG(3,6),1) AND REF(ZIG(3,6),1)>=REF(ZIG(3,6),2) AND REF(ZIG(3,6),2)>=REF(ZIG(3,6),3);
ZYG41:=ZIG(3,22)< REF(ZIG(3,22),1) AND REF(ZIG(3,22),1)>=REF(ZIG(3,22),2) AND REF(ZIG(3,22),2)>=REF(ZIG(3,22),3);
ZYG61:=ZIG(3,51)< REF(ZIG(3,51),1) AND REF(ZIG(3,51),1)>=REF(ZIG(3,51),2) AND REF(ZIG(3,51),2)>=REF(ZIG(3,51),3);
ZYG81:=ZIG(3,72)< REF(ZIG(3,72),1) AND REF(ZIG(3,72),1)>=REF(ZIG(3,72),2) AND REF(ZIG(3,72),2)>=REF(ZIG(3,72),3);
卖:=(ZYG21+ZYG41+ZYG61+ZYG81),LINETHICK2;
SQ:=DRAWLINE(卖,H,BARSLAST(卖)>=1,REF(H,BARSLAST(卖)),1),COLORWHITE,NODRAW;
过峰:=C>SQ AND REF(C,1)< SQ;
VVOL:=IF(CURRBARSCOUNT=1 AND PERIOD=5,VOL*240/FROMOPEN,DRAWNULL),NODRAW;
预量:=VVOL/REF(V,1)>1.8;
现量:=V/REF(V,1)>1.5;
过峰1:=STICKLINE( 过峰,C,O,5,0)COLORFF00FF;
预量1:DRAWICON(过峰 AND 预量, H*1.01,14);
现量1:DRAWICON(过峰 AND 现量,(O+C)/2,23);
LT8:=LLVBARS(L,60);
LTT8:=BARSLAST(CURRBARSCOUNT=CONST(LT8)+1);
HT8:=FINDHIGHBARS(H,LT8+1,60,1);
A81:DRAWLINE(CURRBARSCOUNT=CONST(HT8)+1,H,ISLASTBAR,REF(H,HT8),0),COLORYELLOW,LINETHICK5;
突破颈线:=CROSS(C,A81);
DRAWTEXT(突破颈线,H, '突破颈线'),COLORMAGENTA;
A2:=REF(MA(C,20),1);
J1:=(MA(C,20)-A2)/A2*100;
MJ1:=MA(J1,3);
乖离2:=(MA(C,20)-MA(C,30))/MA(C,30)*100;
VAC1:=IF(BETWEEN(乖离2,-2,5),2,0);
XL1:=((LLV(LOW,3) = LLV(LOW,60)) AND ((CLOSE / REF(CLOSE,1)) >= 1.04));
XL2:=(((CLOSE - EMA(CLOSE,21)) / EMA(CLOSE,21)) * 100);
XL3:=CROSS(XL2,(0 - 20));
DRAWTEXT(FILTER(((XL1 > 0) AND LOW),5),(LOW - 0.0014),'●买点');
DRAWTEXT((XL3 > 0),(LOW - 0.0011),'●绝对底部')COLORMAGENTA;
HIGHN:=10;
LOWN:=10;
HIGHDISPLAY:=0;
LOWDISPLAY:=0;
ZGDISPLAY:=0;
MADISPLAY:=0;
AAB:=REF(H,HIGHN)=HHV(H,2*HIGHN+1);
QY:=BACKSET(AAB,HIGHN+1);
CC:=FILTER(QY,HIGHN) AND H=HHV(H,HIGHN+1);
DRAWICON(CC,H*1.005,2);
DDD:=BARSLAST(CC);
VARG:=IF(CC,CURRBARSCOUNT,0);
DINGBU:=IF(DDD,REF(H,DDD),H);
DINGBUTS:=IF(DDD,REF(VARG,DDD),VARG);
DINGBU1:=REF(DINGBU,DDD+1);
HG1:=CONST(DINGBUTS);
DINGBUTS1:=REF(DINGBUTS,DDD+1);
HG2:=CONST(DINGBUTS1);
DINGBU2:=REF(DINGBU1,DDD+1);
MMM:=IF(CURRBARSCOUNT>HG2,0,1);
AA1:=REF(L,LOWN)=LLV(L,2*LOWN+1);
QY1:=BACKSET(AA1,LOWN+1);
CC1:=FILTER(QY1,LOWN) AND L=LLV(L,LOWN+1);
DD1:=BARSLAST(CC1);
DDTS:=IF(CC1,CURRBARSCOUNT,0);
YDB:=IF(DD1,REF(L,DD1),L);
DDTS1:=IF(DD1,REF(DDTS,DD1),DDTS);
DDCS1:=CONST(DDTS1);
ZDB:=REF(YDB,DD1+1);
DDTS2:=REF(DDTS1,DD1+1);
DDCS2:=CONST(DDTS2);
低点支撑:DRAWLINE(CURRBARSCOUNT=DDCS2,L,CURRBARSCOUNT=DDCS1,L,1) COLORRED,DOTLINE;
TTT:=6;
A1:=REF(HIGH,6)=HHV(HIGH,2*TTT+1);
B1:=FILTER(A1,TTT);
C1:=BACKSET(B1,TTT+1);
D1:=FILTER(C1,TTT);
A22:=REF(LOW,TTT)=LLV(LOW,2*TTT+1);
B2:=FILTER(A22,TTT);
C2:=BACKSET(B2,TTT+1);
D2:=FILTER(C2,TTT);
E1:=(REF(LLV(LOW,2*TTT),1)+REF(HHV(HIGH,2*TTT),1))/2;
E2:=(HIGH+LOW)/2;
H1:=(D1 AND NOT(D2 AND E1>=E2)) OR BARSTATUS OR BARSCOUNT(CLOSE)=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,LOW,10000),X1));
G1:=F1>REF(F1,1);
I1:=BACKSET(G1,2);
LD:=I1>REF(I1,1);
UU:=BACKSET(BARSTATUS,BARSLAST(LD)+1);
DRAWTEXT(UU>REF(UU,1),LOW*1.025,' 凹口淘金 '),COLORYELLOW;
N:=5;
V11:=3*SMA((C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100,5,1)-2*SMA(SMA((C-LLV(L,N))/(HHV(H,N)-LLV(L,N))*100,5,1),3,1);
趋势线:=EMA(V11,3),LINETHICK2,COLORLIMAGENTA;
DRAWTEXT(CROSS(90,趋势线),H*1.01,'★卖'),COLORGREEN;

未来函数检测结果如下:
该公式包含未来函数:ZIG
该公式包含未来函数:BACKSET
该公式包含未来函数:DHIGH
该公式包含未来函数:BARSNEXT
该公式包含未来函数:REFX
定制指标公式、软件请联系QQ或微信同号:88652583
输出A5:收盘价的5日简单移动平均
输出A10:收盘价的10日简单移动平均
输出A20:收盘价的20日简单移动平均
输出A60:收盘价的60日简单移动平均
输出A120:收盘价的120日简单移动平均画黄色 线宽为1
输出A250:收盘价的250日简单移动平均画蓝色 线宽为2
LT赋值:250日内最低价距今天数
LTT赋值:上次到最后交易的周期=LT的最后一日取值设为常数+1距今天数
HT赋值:最高价在LT+1日前的60天内第1个最高价到当前周期的周期数
输出妖线:当满足条件到最后交易的周期=HT的最后一日取值设为常数+1时,在最高价位置画直线起点,当满足条件是否最后一个周期时,在HT日前的最高价位置画直线终点,0表示是否延长.,画白色,线宽为3
突破赋值:收盘价上穿妖线 AND 成交量(手)>0
当满足条件突破时,在最低价*1.2位置书写文字,画红色
TT赋值:上次到最后交易的周期=HT的最后一日取值设为常数+1距今天数
无效数,画红色
T赋值:上次收盘价上穿TT日前的最高价距今天数
GL赋值:收盘价/TT日前的最高价
TA赋值:上次GL=T+1日内GL的最高值距今天数
DF赋值:(收盘价-TA+1日前的收盘价)/TA+1日前的收盘价*100
JL赋值:最低价/TT日前的最高价
XG赋值:DF< -8 AND JL< 1.075 AND 收盘价和开盘价的较小值*1.005>=TT日前的最高价
XGT赋值:上次统计T+1日中满足XG的天数=1ANDXG距今天数
QF赋值:若XGT=0则将最近TA+1周期置为1
QFT赋值:上次QF=1上穿0.5距今天数
XZF赋值:下次XGT=0距今天数日后的DF
当满足条件XGT=0上穿0.5时,在最低价*0.95位置画1号图标
当满足条件T=0时,在TT日前的最高价位置画直线起点,当满足条件QFT=0时,在QFT日前的最高价位置画直线终点,0表示是否延长.,DOTLINE,画黄色
当满足条件QFT=0时,在QFT日前的最高价位置画直线起点,当满足条件XGT=0时,在TT日前的最高价位置画直线终点,0表示是否延长.,DOTLINE,画黄色
当满足条件TT=0时,在TT日前的最高价*1.05位置书写文字画黄色
当满足条件QFT=0时,在QFT日前的最高价*1.05位置画直线起点,当满足条件QFT=10时,在QFT日前的最高价*1.05位置画直线终点,0表示是否延长.,画白色,线宽为3
当满足条件QFT=0时,在QFT日前的最高价*1.1位置书写文字画黄色
ZYG21赋值:收盘价6%的之字转向< 1日前的收盘价6%的之字转向 AND 1日前的收盘价6%的之字转向>=2日前的收盘价6%的之字转向 AND 2日前的收盘价6%的之字转向>=3日前的收盘价6%的之字转向
ZYG41赋值:收盘价22%的之字转向< 1日前的收盘价22%的之字转向 AND 1日前的收盘价22%的之字转向>=2日前的收盘价22%的之字转向 AND 2日前的收盘价22%的之字转向>=3日前的收盘价22%的之字转向
ZYG61赋值:收盘价51%的之字转向< 1日前的收盘价51%的之字转向 AND 1日前的收盘价51%的之字转向>=2日前的收盘价51%的之字转向 AND 2日前的收盘价51%的之字转向>=3日前的收盘价51%的之字转向
ZYG81赋值:收盘价72%的之字转向< 1日前的收盘价72%的之字转向 AND 1日前的收盘价72%的之字转向>=2日前的收盘价72%的之字转向 AND 2日前的收盘价72%的之字转向>=3日前的收盘价72%的之字转向
卖赋值:(ZYG21+ZYG41+ZYG61+ZYG81),线宽为2
SQ赋值:当满足条件卖时,在最高价位置画直线起点,当满足条件上次卖距今天数>=1时,在上次卖距今天数日前的最高价位置画直线终点,1表示是否延长.,画白色,NODRAW
过峰赋值:收盘价>SQ AND 1日前的收盘价< SQ
VVOL赋值:如果到最后交易的周期=1ANDPERIOD=5,返回成交量(手)*240/当前离开盘分钟数,否则返回无效数,NODRAW
预量赋值:VVOL/1日前的成交量(手)>1.8
现量赋值:成交量(手)/1日前的成交量(手)>1.5
过峰1赋值:当满足条件过峰时,在收盘价和开盘价位置之间画柱状线,宽度为5,0不为0则画空心柱.COLORFF00FF
输出预量1:当满足条件过峰AND预量时,在最高价*1.01位置画14号图标
输出现量1:当满足条件过峰AND现量时,在(开盘价+收盘价)/2位置画23号图标
LT8赋值:60日内最低价距今天数
LTT8赋值:上次到最后交易的周期=LT8的最后一日取值设为常数+1距今天数
HT8赋值:最高价在LT8+1日前的60天内第1个最高价到当前周期的周期数
输出A81:当满足条件到最后交易的周期=HT8的最后一日取值设为常数+1时,在最高价位置画直线起点,当满足条件是否最后一个周期时,在HT8日前的最高价位置画直线终点,0表示是否延长.,画黄色,线宽为5
突破颈线赋值:收盘价上穿A81
当满足条件突破颈线时,在最高价位置书写文字,画洋红色
A2赋值:1日前的收盘价的20日简单移动平均
J1赋值:(收盘价的20日简单移动平均-A2)/A2*100
MJ1赋值:J1的3日简单移动平均
乖离2赋值:(收盘价的20日简单移动平均-收盘价的30日简单移动平均)/收盘价的30日简单移动平均*100
VAC1赋值:如果乖离2位于-2和5之间,返回2,否则返回0
XL1赋值:((3日内最低价的最低值 = 60日内最低价的最低值) AND ((收盘价 / 1日前的收盘价) >= 1.04))
XL2赋值:(((收盘价 - 收盘价的21日指数移动平均) / 收盘价的21日指数移动平均) * 100)
XL3赋值:XL2上穿(0-20)
当满足条件((XL1>0)ANDLOW)的5日过滤时,在(最低价-0.0014)位置书写文字
当满足条件(XL3>0)时,在(最低价-0.0011)位置书写文字画洋红色
HIGHN赋值:10
LOWN赋值:10
HIGHDISPLAY赋值:0
LOWDISPLAY赋值:0
ZGDISPLAY赋值:0
MADISPLAY赋值:0
AAB赋值:HIGHN日前的最高价=2*HIGHN+1日内最高价的最高值
QY赋值:若AAB则将最近HIGHN+1周期置为1
CC赋值:QY的HIGHN日过滤 AND 最高价=HIGHN+1日内最高价的最高值
当满足条件CC时,在最高价*1.005位置画2号图标
DDD赋值:上次CC距今天数
VARG赋值:如果CC,返回到最后交易的周期,否则返回0
DINGBU赋值:如果DDD,返回DDD日前的最高价,否则返回最高价
DINGBUTS赋值:如果DDD,返回DDD日前的VARG,否则返回VARG
DINGBU1赋值:DDD+1日前的DINGBU
HG1赋值:DINGBUTS的最后一日取值设为常数
DINGBUTS1赋值:DDD+1日前的DINGBUTS
HG2赋值:DINGBUTS1的最后一日取值设为常数
DINGBU2赋值:DDD+1日前的DINGBU1
MMM赋值:如果到最后交易的周期>HG2,返回0,否则返回1
AA1赋值:LOWN日前的最低价=2*LOWN+1日内最低价的最低值
QY1赋值:若AA1则将最近LOWN+1周期置为1
CC1赋值:QY1的LOWN日过滤 AND 最低价=LOWN+1日内最低价的最低值
DD1赋值:上次CC1距今天数
DDTS赋值:如果CC1,返回到最后交易的周期,否则返回0
YDB赋值:如果DD1,返回DD1日前的最低价,否则返回最低价
DDTS1赋值:如果DD1,返回DD1日前的DDTS,否则返回DDTS
DDCS1赋值:DDTS1的最后一日取值设为常数
ZDB赋值:DD1+1日前的YDB
DDTS2赋值:DD1+1日前的DDTS1
DDCS2赋值:DDTS2的最后一日取值设为常数
输出低点支撑:当满足条件到最后交易的周期=DDCS2时,在最低价位置画直线起点,当满足条件到最后交易的周期=DDCS1时,在最低价位置画直线终点,1表示是否延长. 画红色,DOTLINE
TTT赋值:6
A1赋值:6日前的最高价=2*TTT+1日内最高价的最高值
B1赋值:A1的TTT日过滤
C1赋值:若B1则将最近TTT+1周期置为1
D1赋值:C1的TTT日过滤
A22赋值:TTT日前的最低价=2*TTT+1日内最低价的最低值
B2赋值:A22的TTT日过滤
C2赋值:若B2则将最近TTT+1周期置为1
D2赋值:C2的TTT日过滤
E1赋值:(1日前的2*TTT日内最低价的最低值+1日前的2*TTT日内最高价的最高值)/2
E2赋值:(最高价+最低价)/2
H1赋值:(D1 AND 取反) OR 数据位置状态 OR 收盘价的有效数据周期数=1
L1赋值:(D2 AND 取反)
X1赋值:1日前的上次H1距今天数+1
F1赋值:若H1ANDCOUNT(L1,X1)>0则将最近X1日内如果L1,返回最低价,否则返回10000距今天数周期置为1
G1赋值:F1>1日前的F1
I1赋值:若G1则将最近2周期置为1
LD赋值:I1>1日前的I1
UU赋值:若数据位置状态则将最近上次LD距今天数+1周期置为1
当满足条件UU>1日前的UU时,在最低价*1.025位置书写文字,画黄色
N赋值:5
V11赋值:3*(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100的5日[1日权重]移动平均-2*(收盘价-N日内最低价的最低值)/(N日内最高价的最高值-N日内最低价的最低值)*100的5日[1日权重]移动平均的3日[1日权重]移动平均
趋势线赋值:V11的3日指数移动平均,线宽为2,画淡洋红色
当满足条件90上穿趋势线时,在最高价*1.01位置书写文字,画绿色