今天,我们分享一套通达信格式的主图指标公式,它融合了多重平滑均线、价格形态识别、布林带相对位置以及突破回踩信号,试图从不同维度刻画价格运行的状态。这套工具可以帮助使用者更系统地观察市场行为,但需要明确:任何指标都只是辅助工具,不能作为交易决策的唯一依据。
指标公式源码(通达信格式)
B1:=MA(C,1);
B2:=SMA(SMA(SMA(B1,2,1),2,1),2,1);
SMA2:=MA(B2,3);
停损下限:IF(LLV(MA(B2,8),3)<B2,LLV(MA(B2,8),3),B2);
IF(B2>SMA2,B2,DRAWNULL),COLORRED,LINETHICK4;
IF(B2<SMA2,B2,DRAWNULL),COLORGREEN,LINETHICK4;
SNAKEA:HHV(MA(B2,1),13),COLORYELLOW;
VAR1A:=(2*CLOSE+HIGH+LOW)/4;
VAR2A:=MA(VAR1A,7);
VAR3A:=VAR2A-MA(VAR1A,7/2)<0;
VAR4A:=VAR2A-MA(VAR1A,7/2)>0;
VAR5A:=BARSLAST(VAR3A);
VAR6A:=0-BARSLAST(VAR4A);
VAR7A:=IF(VAR3A<=0,VAR5A,VAR6A);
STICKLINE(SNAKEA>B2 AND B2>SMA2,SNAKEA,B2,0,0),COLORBLUE;
STICKLINE(SNAKEA>SMA2 AND B2<SMA2,SNAKEA,SMA2,0,0),COLORBLUE;
VAR11A:=(CLOSE*2+HIGH+LOW)/4;
VAR21A:=EMA(VAR11A,13)-EMA(VAR11A,34);
VAR31A:=EMA(VAR21A,5);
VAR2:=((CLOSE > REF(CLOSE,1)) AND (CLOSE > REF(CLOSE,2)));
VAR3:=((REF(VAR2,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR4:=((REF(VAR3,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR5:=((REF(VAR4,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR6:=((REF(VAR5,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR7:=((REF(VAR6,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR8:=((REF(VAR7,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR9:=((REF(VAR8,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VARA:=((REF(VAR9,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VARB:=((REF(VARA,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VARC:=((REF(VARB,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VARD:=((REF(VARC,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VARE:=((CLOSE < REF(CLOSE,1)) AND (CLOSE < REF(CLOSE,2)));
VARF:=((REF(VARE,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR10:=((REF(VARF,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR11:=((REF(VAR10,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR12:=((REF(VAR11,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR13:=((REF(VAR12,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR14:=((REF(VAR13,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR15:=((REF(VAR14,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR16:=((REF(VAR15,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR17:=((REF(VAR16,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR18:=((REF(VAR17,1) AND (CLOSE <= REF(CLOSE,1))) AND (CLOSE >= REF(CLOSE,2)));
VAR19:=((REF(VAR18,1) AND (CLOSE >= REF(CLOSE,1))) AND (CLOSE <= REF(CLOSE,2)));
VAR1B:=(REF((((((((((((VARE OR VARF) OR VAR10) OR VAR11) OR VAR12) OR VAR13) OR VAR14) OR VAR15) OR VAR16) OR VAR17) OR VAR18) OR VAR19),1) AND VAR2);
STICKLINE(VAR1B,O,O+(C-O)/3,2,0),COLOR10FFFF;
STICKLINE(VAR1B,O,O+(C-O)/3,1,0),COLOR00FFFF;
AA:=(REF((((((((((((VAR2 OR VAR3) OR VAR4) OR VAR5) OR VAR6) OR VAR7) OR VAR8) OR VAR9) OR VARA) OR VARB) OR VARC) OR VARD),1) AND VARE);
STICKLINE(AA,O,O+(C-O)/3,2,0),COLOR00EE00;
STICKLINE(AA,O,O+(C-O)/3,1,0),COLOR00FF00;
A13:=EMA(CLOSE,55);
A14:=MA(CLOSE,75);
A15:=EMA(A14,3);
A16:=EMA(A15,3);
A17:=(HIGH + LOW) / 5;
A18:=(MA(A17,4)) - (MA(A17,34));
A19:=CROSS(A18,0);
A20:=CROSS(0,A18);
A21:=BARSLAST(A19);
A22:=BARSLAST(A20);
A23:=REF(A19,1);
A24:=REF(A20,1);
A25:=BARSLAST(A23);
A26:=BARSLAST(A24);
A27:=IF((A25 < A26),(REF((HHV(HIGH,2)),A25)),(REF((LLV(LOW,2)),A26)));
A28:=(((REF(CLOSE,1)) <= (REF(A27,1))) AND (CLOSE > A27)) AND (A21 < A22);
A29:=(((REF(CLOSE,1)) >= (REF(A27,1))) AND (CLOSE < A27)) AND (A22 < A21);
A30:=A28 AND ((COUNT(A28,A21)) = 1);
A31:=A29 AND ((COUNT(A29,A22)) = 1);
A32:=A30 AND ((REF(BARSLAST(A31),1)) < (REF(BARSLAST(A30),1)));
A33:=A31 AND ((REF(BARSLAST(A31),1)) > (REF(BARSLAST(A30),1)));
AC:=AMOUNT/(VOL);
YY:=MA(AC,13);
LLL:=(C-YY)/YY*100;
MIDC := MA(CLOSE,22);
UPPERC:= MIDC + 2*STD(C,22);
LOWERC:= MIDC - 2*STD(C,22);
BBA:=(C-LOWERC)/(UPPERC-LOWERC);
BBC:=FORCAST(BBA,3);
LIFENGCYC:=(REF(LLL,1)<-15 AND REF(BBA,1)<0 AND LLL>REF(LLL,1));
STICKLINE(LIFENGCYC>0,C,O,2,0),COLOR10ABFF;
DRAWTEXT(LIFENGCYC>0,LOW*0.99,'☆'),COLORDD00DD;
TJ:=DYNAINFO(4)>0
AND HHV(HIGH,10)/LLV(LOW,10)<1.25
AND REF(CLOSE,1)<(LLV(LOW,15)+(HHV(HIGH,15)-LLV(LOW,15))*0.85)
AND CLOSE>OPEN
AND CLOSE>=HHV(HIGH,10);
STICKLINE(C/REF(C,1)>=1.096 AND H=C,O,C,1,0),COLORYELLOW;
放量突破:TJ,NODRAW,COLORRED;
DRAWTEXT(TJ,L-0.3,'放量突破'),COLORRED;
W1:=C=HHV(C,20);
W2:=BARSLAST(W1);
W3:=IF(W2>0,REF(C,W2),REF(C,W2));
W4:=CROSS(C,REF(W3,1));
突破回踩:=W4 AND COUNT(W4,5)=1;
DRAWTEXT(突破回踩>0,MA(L,3),'突破回踩'),COLORYELLOW;
一、核心趋势骨架:多重平滑均线与停损下限
公式的第一部分围绕变量 B2 展开。B1 是收盘价的1周期简单移动平均(即收盘价本身),随后对 B1 进行三次迭代的2周期SMA平滑,得到 B2。这种处理相当于对价格进行了三重平滑,滤除了大量噪音。SMA2 是 B2 的3周期移动平均,两者共同构成了一组短期趋势跟踪线。 - 停损下限:通过 IF(LLV(MA(B2,8),3)<B2, LLV(MA(B2,8),3), B2) 计算,用于判断当前 B2 是否高于最近3根K线的8周期均线最低值,若是则返回该最低值作为潜在支撑,否则返回 B2 本身。这可以理解为一条动态移动的止损参考线。
- 红绿趋势线:当 B2 > SMA2 时,用红色粗线绘制 B2,代表短期趋势向上;当 B2 < SMA2 时,用绿色粗线绘制 B2,代表短期趋势向下。这是整个指标中最直观的趋势方向指示器。
- SNAKEA(黄线):计算 B2 的13周期最高值(HHV(MA(B2,1),13)),相当于一条趋势上轨,用于界定短期波动区间。
此外,公式中还绘制了蓝色柱状线,当 SNAKEA > B2 AND B2 > SMA2 时,在 SNAKEA 与 B2 之间填充蓝色;当 SNAKEA > SMA2 AND B2 < SMA2 时,在 SNAKEA 与 SMA2 之间填充蓝色。这些蓝色区域直观展示了价格(或趋势线)偏离上轨的程度,偏离过大往往意味着超买或回调风险。
二、价格形态识别:转折点与反转信号
公式中部使用了一长串逻辑判断,用于识别价格的连续摆动结构。其核心思想是标记出连续的“高-低-高”或“低-高-低”模式。 - VAR2 到 VARD:定义了一系列价格相对关系。例如 VAR2 表示当日收盘价高于前两日的收盘价(连续两日上涨);VAR3 表示前一日满足 VAR2 但当日收盘介于前一日和前两日收盘之间(回调或停顿)。类似的模式被扩展到上涨序列(VAR2 ~ VARD) 和下跌序列(VARE ~ VAR19),覆盖了最多连续17根K线的价格摆动。
- VAR1B:条件是前一日处于下跌序列中的任意一个状态,而当日满足 VAR2(即上涨启动)。当 VAR1B 成立时,在K线实体的前三分之一处绘制青色半透明柱状线,提示可能为下跌转上涨的拐点。
- AA:条件相反——前一日处于上涨序列中的任意一个状态,而当日满足 VARE(即下跌启动)。此时在K线实体的前三分之一处绘制绿色半透明柱状线,提示上涨转下跌的拐点。
这两种信号类似于分型或波段的极值点,可以帮助使用者识别短期趋势的潜在转折。
三、多周期交叉与“生命线”信号
公式后半部分引入了多个不同周期的均线和交叉判断。 - A13~A16:包括55周期指数均线、75周期简单均线及其三重平滑,构成了中长期趋势背景。
- A18 与 A19/A20:A18 是4周期与34周期均值的差值,A19 为该差值上穿零轴,A20 为下穿零轴。随后通过 A21、A22 记录两次交叉之间的间隔,并利用 A27 在高低点之间切换,最终生成 A28(向上突破前高)和 A29(向下跌破前低)信号。A30~A33 进一步确认这些突破的唯一性。
- LIFENGCYC(生命线):结合三个条件:
- 昨日 LLL(价格与13周期均价成交额均值的偏离度)小于 -15,即超卖;
- 昨日 BBA(布林带相对位置)小于 0,即价格处于布林带下半区;
- 今日 LLL 大于昨日 LLL,即偏离度开始回升。 当三者同时满足时,绘制蓝色实体K线并标注紫色星号“☆”。这个信号试图捕捉超卖区域止跌回升的潜在机会。
四、突破类信号:放量突破与突破回踩
公式最后给出了两个常见的突破信号。 - 放量突破(TJ):需要同时满足:
- 动态行情正常(DYNAINFO(4)>0);
- **10日内价格波动幅度小于25%**(HHV(HIGH,10)/LLV(LOW,10)<1.25),即处于横盘整理;
- 昨日收盘价位于15日价格区间的85%分位以下(靠近低位);
- 当日收阳且收盘价创10日新高。 满足条件时,在最低价下方标注红色文字 “放量突破”。该信号用于识别横盘整理后的向上突破。
- 突破回踩:首先找到20日最高收盘价的位置(W1),记录其价格(W3),当收盘价上穿该价格时(W4),且该上穿是5日内首次,则定义为 “突破回踩” 信号。在最低价均线附近标注黄色文字。这用于捕捉突破前高后的确认买点。
- 此外,公式还单独绘制了涨幅超过9.6%且以最高价收盘的K线(黄色填充),用于标记强势涨停状态。
五、指标的应用场景与局限
这套主图指标涵盖了趋势跟踪、摆动转折、超卖反弹、突破确认等多种逻辑,非常适合用于日线级别的技术分析。使用者可以重点关注: - 红绿粗线的方向变化;
- 青色/绿色半透明柱的转折提示;
- 紫色星号的超卖反弹机会;
- “放量突破”与“突破回踩” 的连续验证。
建议将该指标与成交量变化、市场整体环境以及基本面信息相互印证。最后,技术分析只是理解价格历史的一种工具,未来走势永远存在不确定性,请始终保持独立判断与风险意识。
|