通达信大趋势指标公式源码
指标构成与功能
1. 周期自适应参数:按分时/日/周/月/季/年自动调整取样周期,跨周期通用。
2. 均线趋势线:EMA7(灰)与 EMA19(品红)双均线;死叉段变绿线提示风险。
3. 波段连线(UP/DOWN):自动连接有效高低点,白线为下行结构线。
4. 自动高低点(蓝线/红线):蓝线取8周期小波段、红线取5周期中波段,形成ZIG折线结构。
5. 水平压力/支撑:在最近高低点画横线(粉、蓝),并标出压力位、支撑位。
6. KDJ变体压力线:用两套随机指标交叉算出中期压力2,白条显示。
7. 底部线:30周期最高价,绿条表示大底区。
8. 主均线通道:MA20(黄)、MA89(浅绿),并叠加 &177;2σ 上下极限(虚线为MA89通道),判断超买超卖与箱体边界。
9. 多级买点/卖点:
- 买点1、买点2:基于ZIG 6/22/51/72 多级转折共振
- 卖点:共振顶部转折
- 买点3:开盘低于三均线与均价,收盘上穿,且MACD柱与DEA同步走强,图标提示
使用法
- 看趋势:EMA7上穿EMA19且不出现绿线,为多头格局。
- 看位置:价格触及上极限减仓、下极限低吸;MA89通道定大级别边界。
- 看结构:红线/蓝线折点为关键转折;横线为即时压力支撑。
- 看信号:出现“买点1/买点2”及图标可作中短线进场参考;卖点提示减仓。
- 多周期验证:切换到日线、周线确认信号一致性,避免小周期假信号。
适合波段与趋势交易,不宜单独使用,需结合量能与大盘环境。
T:=PERIOD;
D:=IF(T=0,30,{1F}
IF(T=1,25,{5F}
IF(T=8,25,{多分钟}
IF(T=2,20,{15F}
IF(T=3,20,{30F}
IF(T=4,20,{60F}
IF(T=5,10,{日}
IF(T=6,10,{周}
IF(T=7,10,{月}
IF(T=9,10,{多日}
IF(T=10,10{季},10{年})))))))))));
RMA:=EMA(CLOSE,7),COLORLIGRAY;
NMA:=EMA(CLOSE,19),COLORMAGENTA;
RISK:=IF(NMA>RMA,NMA,DRAWNULL),COLORGREEN;
UP:DRAWLINE(L=LLV(L,BARSLAST(CROSS(NMA,RMA))+1) AND L=LLV(L,D) AND RMA<=NMA,L,H=HHV(H,BARSLAST(CROSS(RMA,NMA))+1) AND H=HHV(H,D) AND RMA>=NMA,H,0);
DOWN:DRAWLINE(H=HHV(H,BARSLAST(CROSS(RMA,NMA))+1) AND H=HHV(H,D) AND RMA>=NMA,H,L=LLV(L,BARSLAST(CROSS(NMA,RMA))+1) AND L=LLV(L,D) AND RMA<=NMA,L,0),COLORWHITE;
A1:=REF(H,8)=HHV(H,2*8+1);
B1:=FILTER(A1,8);
C1:=BACKSET(B1,8+1);
D1:=FILTER(C1,8);{高点}
R11:=BACKSET(ISLASTBAR,BARSLAST(D1)+1); S11:=R11>REF(R11,1);
DRAWLINE(D1,H,S11,H,1),COLORBLUE;
A2:=REF(L,8)=LLV(L,2*8+1);
B2:=FILTER(A2,8);
C2:=BACKSET(B2,8+1);
D2:=FILTER(C2,8);{低点}
T11:=BACKSET(ISLASTBAR,BARSLAST(D2)+1); U11:=T11>REF(T11,1);
DRAWLINE(D2,L,U11,L,1),COLORBLUE;
M:=INTPART(3*8/5);
A12:=REF(H,M)=HHV(H,2*M+1);
B12:=FILTER(A12,M);
C12:=BACKSET(B12,M+1);
D12:=FILTER(C12,M);{高点}
R112:=BACKSET(ISLASTBAR,BARSLAST(D12)+1); S112:=R112>REF(R112,1);
DRAWLINE(D12,H,S112,H,1),COLORRED;
A22:=REF(L,M)=LLV(L,2*M+1);
B22:=FILTER(A22,M);
C22:=BACKSET(B22,M+1);
D22:=FILTER(C22,M);{低点}
T112:=BACKSET(ISLASTBAR,BARSLAST(D22)+1); U112:=T112>REF(T112,1);
DRAWLINE(D22,L,U112,L,1),COLORRED;
VAR1111:=BACKSET(REF(HIGH,2)=HHV(HIGH,5),3);
VAR2222:=CROSS(VAR1111,0.9);
VAR3333:=BACKSET(REF(LOW,2)=LLV(LOW,5),3);
VAR4444:=CROSS(VAR3333,0.9);
压力:= REF(HIGH,BARSLAST(VAR2222));
STICKLINE(CLOSE,REF(HIGH,BARSLAST(VAR2222)),REF(HIGH,BARSLAST(VAR2222)),0.5,1),COLOREA91B5,LINETHICK3;
支撑:= REF(LOW,BARSLAST(VAR4444));
STICKLINE(CLOSE,REF(LOW,BARSLAST(VAR4444)),REF(LOW,BARSLAST(VAR4444)),0.5,1),COLOR00B4FF,LINETHICK3;
下档线:=(((CLOSE - LLV(LOW,13)) / (HHV(HIGH,13) - LLV(LOW,13))) * 100);
RRRSV:=SMA(下档线,3,1);
KKK:=SMA(RRRSV,3,1);
DDD:=((3 * RRRSV) - (2 * KKK));
JJ12:=(((CLOSE - LLV(LOW,55)) / (HHV(HIGH,55) - LLV(LOW,55))) * 100);
RSV24:=SMA(JJ12,3,1);
K24:=SMA(RSV24,3,1);
D24:=((3 * RSV24) - (2 * K24));
压力2:=IF(CROSS(D24,DDD),HIGH,REF(HIGH,BARSLAST(CROSS(D24,DDD)))),COLORFFFFFF;
压力位:=IF(ISLASTBAR,压力2,DRAWNULL);
STICKLINE(ISLASTBAR ,压力位,压力位,120,0),LINETHICK4,COLORFFFFFF;
底部:=LLV(HIGH,30),COLOR00FF00;
底部位:=IF(ISLASTBAR,底部,DRAWNULL);
STICKLINE(ISLASTBAR ,底部位,底部位,100,0),LINETHICK4,COLOR00FF00;
LHZ2: MA(CLOSE,89),COLORLIGREEN,LINETHICK2;
LHZ: MA(CLOSE,20),COLORYELLOW,LINETHICK2;
上极限: LHZ+2*STD(CLOSE,20);
下极限: LHZ-2*STD(CLOSE,20);
上极限2: LHZ2+2*STD(CLOSE,89),DOTLINE;
下极限2: LHZ2-2*STD(CLOSE,89),DOTLINE;
VAR101:=IF(TROUGHBARS(3,16,1)=0 AND HIGH>LOW+0.04,4,0);
VAR111:=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);
VAR121:=ZIG(3,6)=REF(ZIG(3,6),2) AND REF(ZIG(3,6),2)>=REF(ZIG(3,6),3);
VAR131:=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);
VAR141:=ZIG(3,22)=REF(ZIG(3,22),2) AND REF(ZIG(3,22),2)>=REF(ZIG(3,22),3);
VAR151:=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);
VAR161:=ZIG(3,51)=REF(ZIG(3,51),2) AND REF(ZIG(3,51),2)>=REF(ZIG(3,51),3);
VAR171:=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);
VAR181:=ZIG(3,72)=REF(ZIG(3,72),2) AND REF(ZIG(3,72),2)>=REF(ZIG(3,72),3);
买点1:=VAR101;
买点2:=(VAR111+VAR131+VAR151+VAR171);
卖点1:=(VAR121+VAR141+VAR161+VAR181),LINETHICK2;
VAR1:=MA(CLOSE,5);
VAR2:=MA(CLOSE,10);
VAR3:=MA(CLOSE,30);
VARB:=SUM(CLOSE*VOL*100,28)/SUM(VOL*100,28);
VARC:=INTPART(VARB*100)/100;
VARD:=EMA(CLOSE,5)-EMA(CLOSE,10);
VARE:=EMA(VARD,9);
VAR13:=REF(VARE,1);
VAR14:=VARE;
VAR15:=VAR14-VAR13;
VAR16:=REF(VARD,1);
VAR17:=VARD;
VAR18:=VAR17-VAR16;
VAR19:=OPEN;
VAR1A:=CLOSE;
买点3:=IF(VAR19<=VAR1 AND VAR19<=VAR2 AND VAR19<=VAR3 AND VAR1A>=VAR1 AND VAR1A>=VARC AND VAR15>0 AND VAR18>0,0.5,0);
DRAWICON(买点3>0,LOW-0.01,1);
DRAWTEXT(买点1>0,LOW-0.01,'*买点1'),COLORRED;
DRAWTEXT(买点2>0,LOW-0.01,'*买点2'),COLORGREEN;

未来函数检测结果如下:
该公式包含未来函数:ZIG
该公式包含未来函数:TROUGH
该公式包含未来函数:TROUGHBARS
该公式包含未来函数:BACKSET
T赋值:周期类型
D赋值:如果T=0,返回30,否则返回如果T=1,返回25,否则返回如果T=8,返回25,否则返回如果T=2,返回20,否则返回如果T=3,返回20,否则返回如果T=4,返回20,否则返回如果T=5,返回10,否则返回如果T=6,返回10,否则返回如果T=7,返回10,否则返回如果T=9,返回10,否则返回如果T=10,返回10,否则返回10
RMA赋值:收盘价的7日指数移动平均,画淡灰色
NMA赋值:收盘价的19日指数移动平均,画洋红色
RISK赋值:如果NMA>RMA,返回NMA,否则返回无效数,画绿色
输出UP:当满足条件最低价=上次NMA上穿RMA距今天数+1日内最低价的最低值ANDL=D日内最低价的最低值ANDRMA<=NMA时,在最低价位置画直线起点,当满足条件最高价=上次RMA上穿NMA距今天数+1日内最高价的最高值ANDH=D日内最高价的最高值ANDRMA>=NMA时,在最高价位置画直线终点,0表示是否延长.
输出DOWN:当满足条件最高价=上次RMA上穿NMA距今天数+1日内最高价的最高值ANDH=D日内最高价的最高值ANDRMA>=NMA时,在最高价位置画直线起点,当满足条件最低价=上次NMA上穿RMA距今天数+1日内最低价的最低值ANDL=D日内最低价的最低值ANDRMA<=NMA时,在最低价位置画直线终点,0表示是否延长.,画白色
A1赋值:8日前的最高价=2*8+1日内最高价的最高值
B1赋值:A1的8日过滤
C1赋值:若B1则将最近8+1周期置为1
D1赋值:C1的8日过滤
R11赋值:若是否最后一个周期则将最近上次D1距今天数+1周期置为1
S11赋值:R11>1日前的R11
当满足条件D1时,在最高价位置画直线起点,当满足条件S11时,在最高价位置画直线终点,1表示是否延长.,画蓝色
A2赋值:8日前的最低价=2*8+1日内最低价的最低值
B2赋值:A2的8日过滤
C2赋值:若B2则将最近8+1周期置为1
D2赋值:C2的8日过滤
T11赋值:若是否最后一个周期则将最近上次D2距今天数+1周期置为1
U11赋值:T11>1日前的T11
当满足条件D2时,在最低价位置画直线起点,当满足条件U11时,在最低价位置画直线终点,1表示是否延长.,画蓝色
M赋值:3*8/5的整数部分
A12赋值:M日前的最高价=2*M+1日内最高价的最高值
B12赋值:A12的M日过滤
C12赋值:若B12则将最近M+1周期置为1
D12赋值:C12的M日过滤
R112赋值:若是否最后一个周期则将最近上次D12距今天数+1周期置为1
S112赋值:R112>1日前的R112
当满足条件D12时,在最高价位置画直线起点,当满足条件S112时,在最高价位置画直线终点,1表示是否延长.,画红色
A22赋值:M日前的最低价=2*M+1日内最低价的最低值
B22赋值:A22的M日过滤
C22赋值:若B22则将最近M+1周期置为1
D22赋值:C22的M日过滤
T112赋值:若是否最后一个周期则将最近上次D22距今天数+1周期置为1
U112赋值:T112>1日前的T112
当满足条件D22时,在最低价位置画直线起点,当满足条件U112时,在最低价位置画直线终点,1表示是否延长.,画红色
VAR1111赋值:若2日前的最高价=5日内最高价的最高值则将最近3周期置为1
VAR2222赋值:VAR1111上穿0.9
VAR3333赋值:若2日前的最低价=5日内最低价的最低值则将最近3周期置为1
VAR4444赋值:VAR3333上穿0.9
压力赋值: 上次VAR2222距今天数日前的最高价
当满足条件收盘价时,在上次VAR2222距今天数日前的最高价和上次VAR2222距今天数日前的最高价位置之间画柱状线,宽度为0.5,1不为0则画空心柱.,COLOREA91B5,线宽为3
支撑赋值: 上次VAR4444距今天数日前的最低价
当满足条件收盘价时,在上次VAR4444距今天数日前的最低价和上次VAR4444距今天数日前的最低价位置之间画柱状线,宽度为0.5,1不为0则画空心柱.,COLOR00B4FF,线宽为3
下档线赋值:(((收盘价 - 13日内最低价的最低值) / (13日内最高价的最高值 - 13日内最低价的最低值)) * 100)
RRRSV赋值:下档线的3日[1日权重]移动平均
KKK赋值:RRRSV的3日[1日权重]移动平均
DDD赋值:((3 * RRRSV) - (2 * KKK))
JJ12赋值:(((收盘价 - 55日内最低价的最低值) / (55日内最高价的最高值 - 55日内最低价的最低值)) * 100)
RSV24赋值:JJ12的3日[1日权重]移动平均
K24赋值:RSV24的3日[1日权重]移动平均
D24赋值:((3 * RSV24) - (2 * K24))
压力2赋值:如果D24上穿DDD,返回最高价,否则返回上次D24上穿DDD距今天数日前的最高价,COLORFFFFFF
压力位赋值:如果是否最后一个周期,返回压力2,否则返回无效数
当满足条件是否最后一个周期时,在压力位和压力位位置之间画柱状线,宽度为120,0不为0则画空心柱.,线宽为4,COLORFFFFFF
底部赋值:30日内最高价的最低值,COLOR00FF00
底部位赋值:如果是否最后一个周期,返回底部,否则返回无效数
当满足条件是否最后一个周期时,在底部位和底部位位置之间画柱状线,宽度为100,0不为0则画空心柱.,线宽为4,COLOR00FF00
输出LHZ2: 收盘价的89日简单移动平均,画淡绿色,线宽为2
输出LHZ: 收盘价的20日简单移动平均,画黄色,线宽为2
输出上极限: LHZ+2*收盘价的20日估算标准差
输出下极限: LHZ-2*收盘价的20日估算标准差
输出上极限2: LHZ2+2*收盘价的89日估算标准差,DOTLINE
输出下极限2: LHZ2-2*收盘价的89日估算标准差,DOTLINE
VAR101赋值:如果收盘价16%之字转向的前1个波谷位置=0ANDHIGH>最低价+0.04,返回4,否则返回0
VAR111赋值:收盘价6%的之字转向>1日前的收盘价6%的之字转向 AND 1日前的收盘价6%的之字转向<=2日前的收盘价6%的之字转向 AND 2日前的收盘价6%的之字转向<=3日前的收盘价6%的之字转向
VAR121赋值:收盘价6%的之字转向=2日前的收盘价6%的之字转向 AND 2日前的收盘价6%的之字转向>=3日前的收盘价6%的之字转向
VAR131赋值:收盘价22%的之字转向>1日前的收盘价22%的之字转向 AND 1日前的收盘价22%的之字转向<=2日前的收盘价22%的之字转向 AND 2日前的收盘价22%的之字转向<=3日前的收盘价22%的之字转向
VAR141赋值:收盘价22%的之字转向=2日前的收盘价22%的之字转向 AND 2日前的收盘价22%的之字转向>=3日前的收盘价22%的之字转向
VAR151赋值:收盘价51%的之字转向>1日前的收盘价51%的之字转向 AND 1日前的收盘价51%的之字转向<=2日前的收盘价51%的之字转向 AND 2日前的收盘价51%的之字转向<=3日前的收盘价51%的之字转向
VAR161赋值:收盘价51%的之字转向=2日前的收盘价51%的之字转向 AND 2日前的收盘价51%的之字转向>=3日前的收盘价51%的之字转向
VAR171赋值:收盘价72%的之字转向>1日前的收盘价72%的之字转向 AND 1日前的收盘价72%的之字转向<=2日前的收盘价72%的之字转向 AND 2日前的收盘价72%的之字转向<=3日前的收盘价72%的之字转向
VAR181赋值:收盘价72%的之字转向=2日前的收盘价72%的之字转向 AND 2日前的收盘价72%的之字转向>=3日前的收盘价72%的之字转向
买点1赋值:VAR101
买点2赋值:(VAR111+VAR131+VAR151+VAR171)
卖点1赋值:(VAR121+VAR141+VAR161+VAR181),线宽为2
VAR1赋值:收盘价的5日简单移动平均
VAR2赋值:收盘价的10日简单移动平均
VAR3赋值:收盘价的30日简单移动平均
VARB赋值:收盘价*成交量(手)*100的28日累和/成交量(手)*100的28日累和
VARC赋值:VARB*100的整数部分/100
VARD赋值:收盘价的5日指数移动平均-收盘价的10日指数移动平均
VARE赋值:VARD的9日指数移动平均
VAR13赋值:1日前的VARE
VAR14赋值:VARE
VAR15赋值:VAR14-VAR13
VAR16赋值:1日前的VARD
VAR17赋值:VARD
VAR18赋值:VAR17-VAR16
VAR19赋值:开盘价
VAR1A赋值:收盘价
买点3赋值:如果VAR19<=VAR1ANDVAR19<=VAR2ANDVAR19<=VAR3ANDVAR1A>=VAR1ANDVAR1A>=VARCANDVAR15>0ANDVAR18>0,返回0.5,否则返回0
当满足条件买点3>0时,在最低价-0.01位置画1号图标
当满足条件买点1>0时,在最低价-0.01位置书写文字,画红色
当满足条件买点2>0时,在最低价-0.01位置书写文字,画绿色