〖多周期MACD实战算法〗副图,月周日信号嵌套策略指标
今天分享一个16年前的技术分析,多周期MACD指标在技术分析中占据重要地位,能从月周日期等多个时间维度捕捉市场趋势。本文将详解如何通过自定义公式实现多周期MACD计算与展示,并结合实战应用优化。
关键信号识别
低位金叉信号:当DIFF上穿DEA且DIFF小于负0.1时,视为低位金叉。
二次金叉信号:在DEA小于零时,DIFF第二次上穿DEA,形成二次金叉。
底背离信号:价格创新低而DIFF未创新低,且DIFF上穿DEA,确认底背离。
通过STICKLINE和DRAWLINE函数,将关键信号图形化展示,便于快速识别MACD交易信号。
面积背离与趋势确认
通过计算绿柱面积和红柱面积,分析面积背离,进一步确认趋势强度与背离情况。
具体公式如下:
DRAWGBK(OPEN>0,RGB(33,47,58),RGB(33,47,58),0,10,0);
月DIF:EMA(CLOSE,223)-EMA(CLOSE,479);
月DEA:EMA(月DIF,135);
DRAWBAND(月DEA,RGB(0,30,0),月DIF,RGB(50,0,0));
周DIF:=EMA(CLOSE,12*5)-EMA(CLOSE,26*5),COLORLIBLUE,DOTLINE;
周DEA:=EMA(周DIF,9*5),COLORLIMAGENTA,DOTLINE;
DRAWBAND(周DEA,RGB(0,80,0),周DIF,RGB(140,10,70));
DIFF:EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:EMA(DIFF,9);
MACD:2*(DIFF-DEA),COLORSTICK,LINETHICK2;
低位金叉:=CROSS(DIFF,DEA)&&DIFF<-0.1;
STICKLINE(低位金叉,0,0.08,3,0),COLORWHITE;
JCCOUNT:=COUNT(CROSS(DIFF,DEA),BARSLAST(DEA>=0));
二次金叉:=CROSS(DIFF,DEA)&&DEA<0&&COUNT(JCCOUNT=2,21)=1;
STICKLINE(二次金叉,0,0.06,3,0),COLORBLUE;
A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));
底背离:=REF(CLOSE,A1+1)>CLOSE&&DIFF>REF(DIFF,A1+1)&&CROSS(DIFF,DEA);
STICKLINE(底背离,0,0.03,3,0),COLORYELLOW;
底背:DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORMAGENTA,LINETHICK2;
A2:=BARSLAST(REF(CROSS(DEA,DIFF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE&&REF(DIFF,A2+1)>DIFF&&CROSS(DEA,DIFF);
顶背:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN,LINETHICK2;
三全项:=低位金叉&&二次金叉&&底背离;
DRAWTEXT(底背离,(HHV(DIFF,100)+LLV(DIFF,100))/2,'底背离'),COLORFF00FF;
DRAWICON(三全项,LLV(DIFF,100),41);
DRAWTEXT(三全项,LLV(DIFF,100),'三全项'),COLORYELLOW;
JC:=DEA-DIFF;
绿柱面积:=IF(MACD<0,SUM(MACD,BARSLAST(JC<0)),0);
红柱面积:=IF(MACD>0,SUM(MACD,BARSLAST(JC>0)),0);
本次最低价:=LLV(L,BARSLAST(JC<0));
本次最高价:=HHV(H,BARSLAST(JC>0));
X1:=IF(MACD<0,BARSLAST(CROSS(DIFF,DEA)),0);
前次绿柱面积:=REF(绿柱面积,X1+1);
前次最低价:=REF(本次最低价,X1+1);
Y1:=IF((绿柱面积<0&&ABS(绿柱面积)<ABS(前次绿柱面积)&&本次最低价<前次最低价),1,0);
RS1:=MACD<0&&REF(MACD,1)<0&&C<前次最低价&&ABS(绿柱面积)<ABS(前次绿柱面积)&&ABS(MACD)<ABS(REF(MACD,1));
底背驰:=IF(CROSS(DIFF,DEA),REF(Y1,1),0);
DRAWICON(底背驰,HHV(DIFF,100),41),COLORYELLOW;
DRAWTEXT(底背驰,HHV(DIFF,100),'积底背'),COLOR00FFFF;
T:=BARSLAST(CROSS(DIFF,DEA)&&DIFF<0);
T1:=SUMBARS(T=0,2);
T2:=SUMBARS(T=0,3);
M:=BARSLAST(CROSS(0,MACD));
M1:=SUMBARS(M=0,2);
M2:=SUMBARS(M=0,3);
D1:=REF(DIFF,BARSLAST(DIFF=LLV(DIFF,M+1)));
D2:=REF(D1,T1-1);
D3:=REF(D2,T1-1);
LT:=BARSLAST(L=LLV(L,M+1));
L1:=REF(L,LT);
L2:=REF(L1,T1-1);
L3:=REF(L2,T1-1);
XG:=T=0&&L1<L2&&L2<L3&&D1>D2&&D2>D3;
DRAWICON(XG,LLV(MACD,100)*0.8,1);
VAR1:=BACKSET(XG,T2+REF(LT,T2-1));
VAR2:=BACKSET(XG,T1+REF(LT,T1-1));
VAR3:=BACKSET(XG,T+REF(LT,T)+1);
DRAWLINE(CROSS(VAR1=1,0.5),DIFF,CROSS(VAR2=1,0.5)&&VAR1=1,DIFF,0),COLORBLUE,LINETHICK2;
DRAWLINE(CROSS(VAR2=1,0.5)&&VAR1=1,DIFF,VAR1=1&&VAR2=1&&CROSS(VAR3=1,0.5),DIFF,0),COLORMAGENTA,LINETHICK2;
MACD,COLORSTICK,LINETHICK2;
DRAWICON(CROSS(月DIF,月DEA),月DEA,34);
DRAWICON(CROSS(月DEA,月DIF),月DIF,35);
DRAWTEXT(CROSS(月DIF,月DEA),月DEA,'月'),COLORWHITE;
DRAWTEXT(CROSS(月DEA,月DIF),月DIF,'月'),COLORWHITE;
DRAWICON(CROSS(周DIF,周DEA),周DEA,38);
DRAWICON(CROSS(周DEA,周DIF),周DIF,39);
DRAWTEXT(CROSS(周DIF,周DEA),周DEA,'周'),COLORWHITE;
DRAWTEXT(CROSS(周DEA,周DIF),周DIF,'周'),COLORWHITE;