通达信全能主图指标公式源码
发布日期: 2025-07-27 | 阅读量:26
{ 程序化指标全能主图指标 }
{ 趋势持仓 + 支撑阻力 + 买卖信号 + K线形态识别 }
{ SAR趋势持仓判断 }
持仓 :IF(CLOSE >= SAR(4, 2, 20), SAR(4, 2, 20), DRAWNULL), CIRCLEDOT, COLORRED;
空仓 :IF(CLOSE <= SAR(4, 2, 20), SAR(4, 2, 20), DRAWNULL), CIRCLEDOT, COLORGREEN;
{ 获利比例计算(可选)}
获利百分比 := WINNER(CLOSE) * 100, NODRAW, COLORWHITE;
{ 支撑与阻力计算 }
V1 := ABS((2 * CLOSE + HIGH + LOW) / 4 - MA(CLOSE, 20)) / MA(CLOSE, 20);
V2 := (1 - 7 / 100) * DMA(CLOSE, V1);
V3 := (1 + 7 / 100) * DMA(CLOSE, V1);
V5 := MA((LOW + HIGH + CLOSE) / 3, 5);
{ 支撑与阻力线 }
支撑位 := REFDATE(V2, DATE), POINTDOT, LINETHICK3, COLORCC66FF;
阻力位 := REFDATE(V3, DATE), POINTDOT, LINETHICK3, COLORGREEN;
{ 趋势角度判断 }
MA1 := MEMA(CLOSE, 5);
MA2 := ATAN((MA1 / REF(MA1, 1) - 1) * 100) * 180 / 3.1416;
MA3 := IF(MA2 > 0, MA2, MA2);
{ 常规均线 }
MA5 := MA(CLOSE, 5), COLORYELLOW;
MA10 := MA(CLOSE, 10), COLORBLUE, LINETHICK2;
MA20 := MA(CLOSE, 20), COLORRED;
MA30 := MA(CLOSE, 30), COLORGREEN;
{ K线形态识别 }
VAR1 := CLOSE = HHV(CLOSE, 4) AND (REF(CLOSE, 1) >= REF(CLOSE, 2) OR REF(CLOSE, 1) >= REF(CLOSE, 3)) OR
REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 2) OR
REF(CLOSE, 2) = HHV(CLOSE, 4) AND REF(CLOSE, 3) = LLV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1) OR
REF(CLOSE, 3) = HHV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1) AND CLOSE >= REF(CLOSE, 2);
VAR2 := CLOSE = HHV(CLOSE, 4) AND REF(CLOSE, 1) = LLV(CLOSE, 4);
VAR3 := CLOSE = LLV(CLOSE, 4) AND (REF(CLOSE, 1) < REF(CLOSE, 2) OR REF(CLOSE, 1) < REF(CLOSE, 3)) OR
REF(CLOSE, 1) = LLV(CLOSE, 4) AND CLOSE < REF(CLOSE, 2) OR
REF(CLOSE, 2) = LLV(CLOSE, 4) AND REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE < REF(CLOSE, 1) OR
REF(CLOSE, 3) = LLV(CLOSE, 4) AND CLOSE < REF(CLOSE, 1) AND CLOSE < REF(CLOSE, 2);
VAR4 := REF(CLOSE, 1) = LLV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 2) OR
REF(CLOSE, 2) = LLV(CLOSE, 4) AND REF(CLOSE, 1) <= REF(CLOSE, 3) AND
REF(CLOSE, 2) < REF(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1);
{ 买卖信号变量 }
VAR5 := REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE < REF(CLOSE, 2) OR
(REF(CLOSE, 2) = HHV(CLOSE, 4) AND REF(CLOSE, 1) > REF(CLOSE, 3) OR
REF(CLOSE, 3) = HHV(CLOSE, 4) AND REF(CLOSE, 1) > REF(CLOSE, 2)) AND
REF(CLOSE, 2) >= REF(CLOSE, 4) AND CLOSE < REF(CLOSE, 1);
VAR6 := V5 > REF(V5, 1) AND REF(V5, 1) < REF(V5, 2);
VAR7 := LOW < HHV(V5, 13) AND HIGH > HHV(V5, 13) AND CLOSE > REF(CLOSE, 1) AND CLOSE > OPEN;
VAR8 := VAR7 AND COUNT(VAR6, 2);
VAR9 := 100 * EMA(EMA(CLOSE - REF(CLOSE, 1), 6), 6) / EMA(EMA(ABS(CLOSE - REF(CLOSE, 1)), 6), 6);
VAR10 := EMA(MA(CLOSE, 13), 13);
VAR11 := FILTER((LLV(VAR9, 2) = LLV(VAR9, 7) AND COUNT(VAR9 < 0, 2) AND CROSS(VAR9, MA(VAR9, 2))) = 1, 5);
VAR12 := FILTER((HHV(VAR9, 2) = HHV(VAR9, 7) AND COUNT(VAR9 > 50, 2) AND CROSS(MA(VAR9, 2), VAR9)) = 1, 1);
VAR13 := SMA(EMA((CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1), 5) * 100, 3, 1) * 10;
VAR14 := FILTER(((CROSS(VAR13, 0) OR CROSS(CLOSE, VAR10)) AND VAR11) = 1, 3);
VAR15 := MA(CLOSE, 18) >= REF(MA(CLOSE, 18), 3) AND CROSS(CLOSE, MA(CLOSE, 18));
VAR16 := VAR8 AND NOT(REF(VAR8, 1));
{ RSV、KDJ指标 }
RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 100;
K := SMA(RSV, 3, 1);
D := SMA(K, 3, 1);
J := 3 * K - 2 * D;
{ 金叉死叉信号 }
金叉 := CROSS(J, D);
死叉 := CROSS(D, J);
{ 程序化指标创作买卖信号组合 }
买1 := (VAR14 OR VAR15) AND VAR11;
买2 := (VAR14 OR VAR15) AND VAR4;
买3 := (VAR14 OR VAR15) AND VAR2;
买4 := (VAR2 AND VAR11) OR (VAR4 AND VAR11);
买5 := (金叉 AND VAR4) OR (金叉 AND VAR2) OR (金叉 AND VAR11);
{ 涨停跌停标记 }
STICKLINE(CLOSE > REF(CLOSE, 1) * 1.0985 AND CLOSE = HIGH, CLOSE, OPEN, 4, -1), COLOR00FFFF;
STICKLINE(CLOSE < REF(CLOSE, 1) * 0.9015 AND CLOSE = LOW, CLOSE, OPEN, 4, -1), COLORGREEN;
{ K线颜色绘制 }
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 3, 0), COLORFF7700;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 2.2, 0), COLORFF9900;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 1.5, 0), COLORFFBB00;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 0.5, 0), COLORCYAN;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 3, 0), COLOR000099;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 2.2, 0), COLOR0000CC;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 1.5, 0), COLOR0000FF;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 0.5, 0), COLORCC66FF;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 3, 0), COLOR009900;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 2.2, 0), COLOR00BB00;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 1.5, 0), COLOR00DD00;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 0.5, 0), COLOR00FF00;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 3, 0), COLOR999999;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 2.2, 0), COLORBBBBBB;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 1.5, 0), COLORDDDDDD;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 0.5, 0), COLORFFFFFF;
STICKLINE(金叉, OPEN, CLOSE, 0.5, 0), COLORYELLOW;
STICKLINE(死叉, OPEN, CLOSE, 0.5, 0), COLOR000099;
{ 信号图标绘制 }
DRAWICON(VAR16, LOW - 0.02, 7);
DRAWICON(买1 OR 买2 OR 买3 OR 买4 OR 买5, LOW - 0.01, 1);
DRAWICON(死叉 OR VAR12 OR CROSS(40, VAR9), HIGH + 0.01, 2);
{ 趋势持仓 + 支撑阻力 + 买卖信号 + K线形态识别 }
{ SAR趋势持仓判断 }
持仓 :IF(CLOSE >= SAR(4, 2, 20), SAR(4, 2, 20), DRAWNULL), CIRCLEDOT, COLORRED;
空仓 :IF(CLOSE <= SAR(4, 2, 20), SAR(4, 2, 20), DRAWNULL), CIRCLEDOT, COLORGREEN;
{ 获利比例计算(可选)}
获利百分比 := WINNER(CLOSE) * 100, NODRAW, COLORWHITE;
{ 支撑与阻力计算 }
V1 := ABS((2 * CLOSE + HIGH + LOW) / 4 - MA(CLOSE, 20)) / MA(CLOSE, 20);
V2 := (1 - 7 / 100) * DMA(CLOSE, V1);
V3 := (1 + 7 / 100) * DMA(CLOSE, V1);
V5 := MA((LOW + HIGH + CLOSE) / 3, 5);
{ 支撑与阻力线 }
支撑位 := REFDATE(V2, DATE), POINTDOT, LINETHICK3, COLORCC66FF;
阻力位 := REFDATE(V3, DATE), POINTDOT, LINETHICK3, COLORGREEN;
{ 趋势角度判断 }
MA1 := MEMA(CLOSE, 5);
MA2 := ATAN((MA1 / REF(MA1, 1) - 1) * 100) * 180 / 3.1416;
MA3 := IF(MA2 > 0, MA2, MA2);
{ 常规均线 }
MA5 := MA(CLOSE, 5), COLORYELLOW;
MA10 := MA(CLOSE, 10), COLORBLUE, LINETHICK2;
MA20 := MA(CLOSE, 20), COLORRED;
MA30 := MA(CLOSE, 30), COLORGREEN;
{ K线形态识别 }
VAR1 := CLOSE = HHV(CLOSE, 4) AND (REF(CLOSE, 1) >= REF(CLOSE, 2) OR REF(CLOSE, 1) >= REF(CLOSE, 3)) OR
REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 2) OR
REF(CLOSE, 2) = HHV(CLOSE, 4) AND REF(CLOSE, 3) = LLV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1) OR
REF(CLOSE, 3) = HHV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1) AND CLOSE >= REF(CLOSE, 2);
VAR2 := CLOSE = HHV(CLOSE, 4) AND REF(CLOSE, 1) = LLV(CLOSE, 4);
VAR3 := CLOSE = LLV(CLOSE, 4) AND (REF(CLOSE, 1) < REF(CLOSE, 2) OR REF(CLOSE, 1) < REF(CLOSE, 3)) OR
REF(CLOSE, 1) = LLV(CLOSE, 4) AND CLOSE < REF(CLOSE, 2) OR
REF(CLOSE, 2) = LLV(CLOSE, 4) AND REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE < REF(CLOSE, 1) OR
REF(CLOSE, 3) = LLV(CLOSE, 4) AND CLOSE < REF(CLOSE, 1) AND CLOSE < REF(CLOSE, 2);
VAR4 := REF(CLOSE, 1) = LLV(CLOSE, 4) AND CLOSE >= REF(CLOSE, 2) OR
REF(CLOSE, 2) = LLV(CLOSE, 4) AND REF(CLOSE, 1) <= REF(CLOSE, 3) AND
REF(CLOSE, 2) < REF(CLOSE, 4) AND CLOSE >= REF(CLOSE, 1);
{ 买卖信号变量 }
VAR5 := REF(CLOSE, 1) = HHV(CLOSE, 4) AND CLOSE < REF(CLOSE, 2) OR
(REF(CLOSE, 2) = HHV(CLOSE, 4) AND REF(CLOSE, 1) > REF(CLOSE, 3) OR
REF(CLOSE, 3) = HHV(CLOSE, 4) AND REF(CLOSE, 1) > REF(CLOSE, 2)) AND
REF(CLOSE, 2) >= REF(CLOSE, 4) AND CLOSE < REF(CLOSE, 1);
VAR6 := V5 > REF(V5, 1) AND REF(V5, 1) < REF(V5, 2);
VAR7 := LOW < HHV(V5, 13) AND HIGH > HHV(V5, 13) AND CLOSE > REF(CLOSE, 1) AND CLOSE > OPEN;
VAR8 := VAR7 AND COUNT(VAR6, 2);
VAR9 := 100 * EMA(EMA(CLOSE - REF(CLOSE, 1), 6), 6) / EMA(EMA(ABS(CLOSE - REF(CLOSE, 1)), 6), 6);
VAR10 := EMA(MA(CLOSE, 13), 13);
VAR11 := FILTER((LLV(VAR9, 2) = LLV(VAR9, 7) AND COUNT(VAR9 < 0, 2) AND CROSS(VAR9, MA(VAR9, 2))) = 1, 5);
VAR12 := FILTER((HHV(VAR9, 2) = HHV(VAR9, 7) AND COUNT(VAR9 > 50, 2) AND CROSS(MA(VAR9, 2), VAR9)) = 1, 1);
VAR13 := SMA(EMA((CLOSE - REF(CLOSE, 1)) / REF(CLOSE, 1), 5) * 100, 3, 1) * 10;
VAR14 := FILTER(((CROSS(VAR13, 0) OR CROSS(CLOSE, VAR10)) AND VAR11) = 1, 3);
VAR15 := MA(CLOSE, 18) >= REF(MA(CLOSE, 18), 3) AND CROSS(CLOSE, MA(CLOSE, 18));
VAR16 := VAR8 AND NOT(REF(VAR8, 1));
{ RSV、KDJ指标 }
RSV := (CLOSE - LLV(LOW, 9)) / (HHV(HIGH, 9) - LLV(LOW, 9)) * 100;
K := SMA(RSV, 3, 1);
D := SMA(K, 3, 1);
J := 3 * K - 2 * D;
{ 金叉死叉信号 }
金叉 := CROSS(J, D);
死叉 := CROSS(D, J);
{ 程序化指标创作买卖信号组合 }
买1 := (VAR14 OR VAR15) AND VAR11;
买2 := (VAR14 OR VAR15) AND VAR4;
买3 := (VAR14 OR VAR15) AND VAR2;
买4 := (VAR2 AND VAR11) OR (VAR4 AND VAR11);
买5 := (金叉 AND VAR4) OR (金叉 AND VAR2) OR (金叉 AND VAR11);
{ 涨停跌停标记 }
STICKLINE(CLOSE > REF(CLOSE, 1) * 1.0985 AND CLOSE = HIGH, CLOSE, OPEN, 4, -1), COLOR00FFFF;
STICKLINE(CLOSE < REF(CLOSE, 1) * 0.9015 AND CLOSE = LOW, CLOSE, OPEN, 4, -1), COLORGREEN;
{ K线颜色绘制 }
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 3, 0), COLORFF7700;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 2.2, 0), COLORFF9900;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 1.5, 0), COLORFFBB00;
STICKLINE(OPEN >= CLOSE, CLOSE, OPEN, 0.5, 0), COLORCYAN;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 3, 0), COLOR000099;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 2.2, 0), COLOR0000CC;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 1.5, 0), COLOR0000FF;
STICKLINE(CLOSE > OPEN, CLOSE, OPEN, 0.5, 0), COLORCC66FF;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 3, 0), COLOR009900;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 2.2, 0), COLOR00BB00;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 1.5, 0), COLOR00DD00;
STICKLINE(VAR3, OPEN, (OPEN + CLOSE) / 2, 0.5, 0), COLOR00FF00;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 3, 0), COLOR999999;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 2.2, 0), COLORBBBBBB;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 1.5, 0), COLORDDDDDD;
STICKLINE(VAR4, OPEN, (OPEN + CLOSE) / 2, 0.5, 0), COLORFFFFFF;
STICKLINE(金叉, OPEN, CLOSE, 0.5, 0), COLORYELLOW;
STICKLINE(死叉, OPEN, CLOSE, 0.5, 0), COLOR000099;
{ 信号图标绘制 }
DRAWICON(VAR16, LOW - 0.02, 7);
DRAWICON(买1 OR 买2 OR 买3 OR 买4 OR 买5, LOW - 0.01, 1);
DRAWICON(死叉 OR VAR12 OR CROSS(40, VAR9), HIGH + 0.01, 2);

指标公式逻辑介绍
核心指标体系
1.1 趋势持仓系统
SAR抛物线:4/2/20参数设置
持仓信号:红点标记(收盘≥SAR)
空仓信号:绿点标记(收盘≤SAR)
1.2 支撑阻力系统
动态通道:7%波动率构建
支撑位:紫色点线(V2)
阻力位:绿色点线(V3)
1.3 均线组合
快线组:5日(黄)/10日(蓝)
中线组:20日(红)/30日(绿)
趋势角度:5日EMA的弧度角度
2. 智能交易信号
2.1 买入信号(黄色箭头)
✅ 五重触发条件:
趋势突破+超卖反弹(买1)
底部反转+量能配合(买2)
新高突破+KDJ金叉(买3)
形态共振(买4)
多指标协同(买5)
2.2 卖出信号(绿色箭头)
❌ 三重触发条件:
KDJ死叉
超买回落(VAR9<40)
趋势破位(VAR12)
3. 特色功能模块
3.1 K线形态识别
四日形态:VAR1-VAR5精确识别
顶部形态(VAR3)
底部形态(VAR4)
中继形态(VAR2)
3.2 量价分析
获利比例:WINNER函数计算
资金效率:VAR9动量指标
异常波动:涨停/跌停特殊标记