
🎁 福利分享
今天拆解的指标叫「MACD实战解盘副图」
MACD大家都在用,但多数人只盯着"金叉买、死叉卖" 🔄 这个指标的逻辑不一样——它不看你有没有叉,它看的是有没有人"越界" 🚧 越过了某条线,才算多空真正分出胜负。叉不叉只是表面,越没越界才是本质
如果需要本期 完整源码,请看文末提示!
🔧 两层"越界"逻辑,把信号分出真假
第一层:DIFF越过零轴——多空分水岭
DIFF从下方穿到上方,多头第一次越界;反过来,空头越界 ⚡ 零轴是最基本的分界线,零轴之下的金叉和零轴之上的死叉,往往是陷阱而非机会。这个指标把所有穿越零轴的时刻都标出来(DIF图标=多头越界,DEF图标=空头越界)
第二层:越过历史区间——趋势是否真的反转
零轴太基础,源码还画了两条动态线——DEFUL和DEFDL
DEFUL:MACD柱在多头区间内,历史上曾经达到过的最高点 DEFDL:MACD柱在空头区间内,历史上曾经达到过的最低点
越过了DEFUL,说明多头力量创了新高;跌破DEFDL,说明空头力量创了新低 📈📉 不是跟昨天比,是跟历史比
最关键的条件:ICON条件
DRAWICON((LLV(MACD2,4)>0) AND (MACD2<REF(MACD2,1)) AND (REF(MACD2,1)>REF(MACD2,2)) AND (REF(MACD2,2)>REF(MACD2,3)))
连续四根MACD柱,第一根在零轴以上(多头区域),后面三根一根比一根低——多头在收缩,但还没翻空 🌊 这是涨势中的"喘口气",不是"到头"。喘完一口气,往往还有下一波
反过来,HHV条件=跌势中的"反弹",不是"见底",只是空头的休息
💡 实战怎么用
老话说"看山是山,看水是水"——大多数人看MACD只看金叉死叉,那是"看山是山" 🏔️ 真正用好MACD,是看它越没越过历史区间,有没有在越界后回踩确认。越过了,才算多空真正分出胜负

指标安装方法:
先点赞+再看后,发送指标口令ZS260614,即可获取导入指标。
指标完整源码:
DIFF:=(EMA(CLOSE,12) - EMA(CLOSE,26));
DEA:=EMA(DIFF,9);
MACD2:=(2 * (DIFF - DEA));
DU0:=CROSS(DIFF,0);
UD0:=CROSS(0,DIFF);
TDU0:=BARSLAST(DU0);
TUD0:=BARSLAST(UD0);
DU3:=REF(DU0,1);
UD3:=REF(UD0,1);
TDU3:=BARSLAST(DU3);
TUD3:=BARSLAST(UD3);
UDGLINE:=IF((TDU3 < TUD3),REF(HHV(HIGH,2),TDU3),REF(LLV(LOW,2),TUD3));
JDU0:=(((REF(CLOSE,1) <= REF(UDGLINE,1)) AND (CLOSE > UDGLINE)) AND (TDU0 < TUD0));
JUD0:=(((REF(CLOSE,1) >= REF(UDGLINE,1)) AND (CLOSE < UDGLINE)) AND (TUD0 < TDU0));
JDU1:=(JDU0 AND (COUNT(JDU0,TDU0) = 1));
JUD1:=(JUD0 AND (COUNT(JUD0,TUD0) = 1));
JDU2:=(JDU1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));
JUD2:=(JUD1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));
JDU3:=(JDU1 AND (REF(BARSLAST(JUD1),1) > REF(BARSLAST(JDU1),1)));
JUD3:=(JUD1 AND (REF(BARSLAST(JUD1),1) < REF(BARSLAST(JDU1),1)));
BSLINE:=IF((BARSLAST(JDU2) < BARSLAST(JUD2)),IF(REF(CROSS(0,MACD2),1),LLV(LOW,2),REF(LLV(LOW,2),BARSLAST(REF(CROSS(0,MACD2),1)))),IF(REF(CROSS(MACD2,0),1),HHV(HIGH,2),REF(HHV(HIGH,2),BARSLAST(REF(CROSS(MACD2,0),1)))));
DRAWICON((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))),0,10);
STICKLINE((MACD2>=0),0,MACD2,3,1),COLOR0000FF;
STICKLINE(((MACD2>=0) AND (MACD2 < REF(MACD2,1))),0,MACD2,3,0),COLORCYAN;
STICKLINE((MACD2<0),0,MACD2,3,0),COLORFFFF00;
STICKLINE(((MACD2<0) AND (MACD2 > REF(MACD2,1))),0,MACD2,3,1),COLORRED;
DIF:DIFF,LINETHICK2,COLOR00FFFF;
DEF:DEA,COLOR00FF00;
MACD:MACD2,LINETHICK0,COLORFFFF00;
DEFUT:=BARSLAST(CROSS(MACD2,0));
DEFDT:=BARSLAST(CROSS(0,MACD2));
DEFUL:=IF((MACD2 >= 0),HHV(MACD2,(DEFUT + 1)),REF(HHV(MACD2,(DEFUT + 1)),(DEFDT + 1)));
DEFDL:=IF((MACD2 < 0),LLV(MACD2,(DEFDT + 1)),REF(LLV(MACD2,(DEFDT + 1)),(DEFUT + 1)));
DEFU2L:=REF(DEFUL,(DEFUT + 1));
DEFD2L:=REF(DEFDL,(DEFDT + 1));
DRAWICON(((((LLV(MACD2,4) > 0) AND (MACD2 < REF(MACD2,1))) AND (REF(MACD2,1) > REF(MACD2,2))) AND (REF(MACD2,2) > REF(MACD2,3))),MACD2,5);
DRAWICON(((((HHV(MACD2,4) < 0) AND (MACD2 > REF(MACD2,1))) AND (REF(MACD2,1) < REF(MACD2,2))) AND (REF(MACD2,2) < REF(MACD2,3))),MACD2,4);
DRAWICON(((((JUD1 OR (BARSLAST(JDU1) > BARSLAST(JUD1))) AND (MACD2 >= 0)) AND (REF(MACD2,1) < REF(DEFU2L,1))) AND (MACD2 > DEFU2L)),MACD2,12);
DRAWICON(((((JDU1 OR (BARSLAST(JDU1) < BARSLAST(JUD1))) AND (MACD2 < 0)) AND (REF(MACD2,1) > REF(DEFD2L,1))) AND (MACD2 < DEFD2L)),MACD2,12);
