以下是通达信看盘MACD副图公式原码
通达信看盘MACD副图公式原码
通过细看马格丽特老师的一些贴子,才知道自己人在写指标上的笨拙。特别是看了马格丽特老师关于引用周线信号的论述,更让我深感学无止境。
因为不才,KDJ与MACD引用只保留在日周两级的份上。具体说明还是看马格丽特老师的贴子吧。
整个指标都是拿了别人的东西勉强凑合而成,只加了一点自己的一点理念,有无用处自己判断。
{MACD}
DIF:(EMA(CLOSE,12)-EMA(CLOSE,26)),COLORFF00FF;
DEA:EMA(DIF,9),COLORCCC555;
MACD:(DIF-DEA)*2,COLORSTICK;
MACD2:=MA(MACD,4);
判断顶背:=IF(CROSS(DEA,DIF),HHV(DIF,10),REF(HHV(DIF,10),BARSLAST(CROSS(DEA,DIF))));
判断底背:=IF(CROSS(DIF,DEA),LLV(DIF,10),REF(LLV(DIF,10),BARSLAST(CROSS(DIF,DEA))));
{MACD红绿天和面积}
红天:IF(MACD>=0,BARSLAST(CROSS(MACD,0))+1,0),COLOR0000FF,NODRAW;
绿天:IF(MACD<0,BARSLAST(CROSS(0,MACD))+1,0),COLOR00FF00,NODRAW;
红柱面积:IF(红天>0,SUM(MACD,BARSLAST(CROSS(MACD,0))+1),0),COLOR0000FF,NODRAW;
绿柱面积:IF(绿天>0,SUM(MACD,BARSLAST(CROSS(0,MACD))+1),0),COLOR00FF00,NODRAW;
DF低位金叉:=CROSS(DIF,DEA) AND DIF<0;
DF金叉周期:=COUNT(CROSS(DIF,DEA),BARSLAST(DEA>=0));
DF上次金叉:=BARSLAST(REF(CROSS(DIF,DEA),1));
MD底背离:=REF(LLV(L,5),DF上次金叉+1)>LLV(L,5) AND LLV(MACD,5)>REF(LLV(MACD,5),DF上次金叉+1) AND CROSS(DIF,DEA);
DF二次金叉1:=CROSS(DIF,DEA) AND DEA<0 AND COUNT(DF金叉周期=2,21)=1;
DF二次金叉:=DF二次金叉1 AND MD底背离;
DF底背离:=REF(LLV(L,5),DF上次金叉+1)>LLV(L,5) AND DIF>REF(DIF,DF上次金叉+1) AND CROSS(DIF,DEA);
DF上次死叉:=BARSLAST(REF(CROSS(DEA,DIF),1));
DF顶背离:=REF(HHV(C,5),DF上次死叉+1)<H AND REF(DIF,DF上次死叉+1)>DIF AND CROSS(DEA,DIF);
绿柱短了:=(MACD>REF(MACD,1) AND DIF<DEA) AND COUNT(MACD>REF(MACD,1) AND DIF<DEA,10)=1 AND C>MA(C,55) AND COUNT(MACD<0,5)>=5;
DIFZ:=MACD.DIF#WEEK;
DEAZ:=MACD.DEA#WEEK;
DIFR:=MACD.DIF#DAY;
DEAR:=MACD.DEA#DAY;
WEKZ:=REFX(WEEKDAY<REF(WEEKDAY,1) OR DATETODAY(DATE)-DATETODAY(REF(DATE,1))>=7,1) OR ISLASTBAR;
WEKR:=REFX(DATETODAY(DATE)-DATETODAY(REF(DATE,1))>=7 OR DAYTODATE(HOUR)-DAYTODATE(REF(HOUR,1))>=4,3) OR ISLASTBAR;
WEKM:=REFX(DATETODAY(DATE)-DATETODAY(REF(DATE,1))>=7 OR DAYTODATE(HOUR)-DAYTODATE(REF(HOUR,1))>=8,7) OR ISLASTBAR;
WEKF:=REFX(DATETODAY(DATE)-DATETODAY(REF(DATE,1))>=7 OR DAYTODATE(HOUR)-DAYTODATE(REF(HOUR,1))>=16,15) OR ISLASTBAR;
DIFDD:=IF(PERIOD=5 AND WEKZ,DIFZ,IF(PERIOD=4 AND WEKR,DIFR,IF(PERIOD=3 AND WEKM,DIFR,IF(PERIOD=2 AND WEKF,DIFR,DRAWNULL))));
DEADD:=IF(PERIOD=5 AND WEKZ,DEAZ,IF(PERIOD=4 AND WEKR,DEAR,IF(PERIOD=3 AND WEKM,DEAR,IF(PERIOD=2 AND WEKF,DEAR,DRAWNULL))));
WDIF:ALIGNRIGHT(DIFDD),NODRAW,COLOR00FF99;
WDEA:ALIGNRIGHT(DEADD),NODRAW,COLOR00FF99;
WMACD:(WDIF-WDEA)*2,NODRAW,COLOR00FF99;
ZMACD:=WMACD;
CSTA1:=CONST(LLV(MACD,120))*1.35;
CSTQ:=IF(PERIOD=5,0.5,IF(PERIOD=4,0.35,IF(PERIOD=3,0.2,IF(PERIOD=2,0.15,DRAWNULL))));
{乖离www.guziyuan.cn}
HL乖离5:=(C/((HHV(C,5)+LLV(C,5))/2)-1)*100;
HL乖离10:=(C/((HHV(C,10)+LLV(C,10))/2)-1)*100;
{KDJ}
K:=KDJ.K;
D:=KDJ.D;
J:=KDJ.J;
KZ:=KDJ.K#WEEK;
DZ:=KDJ.D#WEEK;
JZ:=KDJ.J#WEEK;
KR:=KDJ.K#DAY;
DR:=KDJ.D#DAY;
JR:=KDJ.J#DAY;
KDZJC:=BARSLAST(WEEKOFYEAR<>REF(WEEKOFYEAR,1))+1;
ZJC2:=REF(KZ,KDZJC)<REF(DZ,KDZJC) AND KZ>DZ;
ZXC2:=REF(KZ,KDZJC)>REF(DZ,KDZJC) AND KZ<DZ;
KDRJC:=BARSLAST(DAY<>REF(DAY,1))+1;
RJC2:=REF(KR,KDRJC)<REF(DR,KDRJC) AND KR>DR;
RXC2:=REF(KR,KDRJC)>REF(DR,KDRJC) AND KR<DR;
KKZR:=IF(PERIOD=5,KZ,IF(PERIOD=4,KR,IF(PERIOD=3,KR,IF(PERIOD=2,KR,DRAWNULL))));
DDZR:=IF(PERIOD=5,DZ,IF(PERIOD=4,DR,IF(PERIOD=3,DR,IF(PERIOD=2,DR,DRAWNULL))));
JJZR:=IF(PERIOD=5,JZ,IF(PERIOD=4,JR,IF(PERIOD=3,JR,IF(PERIOD=2,JR,DRAWNULL))));
KDJJC:=IF(PERIOD=5,ZJC2,IF(PERIOD>1 AND PERIOD<5,RJC2,DRAWNULL));
KDJXC:=IF(PERIOD=5,ZXC2,IF(PERIOD>1 AND PERIOD<5,RXC2,DRAWNULL));
CONHH:=CONST(HHV(MAX(HHV(DIF,20),HHV(MACD,20)),90));
{画色}
DRAWBAND(WDIF*CSTQ+CSTA1,RGB(105,46,56),WDEA*CSTQ+CSTA1,RGB(0,108,108));
{柱子}
STICKLINE(HL乖离10>=20 AND REF(K>85,1) AND K<REF(K,1) AND H>REF(H,1),MACD,0,4,0),COLOR00FF00;
STICKLINE(ZMACD>0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,3,0),COLOR6060EE;
STICKLINE(ZMACD>0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,1.6,0),COLOR7070EE;
STICKLINE(ZMACD>0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,0.8,0),COLOR8080EE;
STICKLINE(ZMACD>0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,3,0),COLORA0A0A0;
STICKLINE(ZMACD>0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,1.8,0),COLORB0B0B0;
STICKLINE(ZMACD>0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,0.8,0),COLORC0C0C0;
STICKLINE(ZMACD<0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,3,0),COLOR003399;
STICKLINE(ZMACD<0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,1.6,0),COLOR114499;
STICKLINE(ZMACD<0 AND ZMACD>=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,0.8,0),COLOR225599;
STICKLINE(ZMACD<0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,3,0),COLORDDD000;
STICKLINE(ZMACD<0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,1.8,0),COLOREEE000;
STICKLINE(ZMACD<0 AND ZMACD<=REF(ZMACD,1),ZMACD*CSTQ+CSTA1,CSTA1,0.8,0),COLORFFF000;
STICKLINE(MACD>0 AND MACD>=REF(MACD,1),MACD,0,2,0),COLOR0000DD;
STICKLINE(MACD>0 AND MACD>=REF(MACD,1),MACD,0,1.2,0),COLOR0000EE;
STICKLINE(MACD>0 AND MACD>=REF(MACD,1),MACD,0,0.4,0),COLOR0000FF;
STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,2,0),COLORFF8888;
STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,1.2,0),COLORFF9999;
STICKLINE(MACD>0 AND MACD<REF(MACD,1),MACD,0,0.4,0),COLORFFAAAA;
STICKLINE(MACD<0 AND MACD>=REF(MACD,1),MACD,0,2,0),COLOR000077;
STICKLINE(MACD<0 AND MACD>=REF(MACD,1),MACD,0,1.2,0),COLOR000088;
STICKLINE(MACD<0 AND MACD>=REF(MACD,1) ,MACD,0,0.4,0),COLOR000099;
STICKLINE(MACD<0 AND MACD<REF(MACD,1),MACD,0,2,0),COLOR005500;
STICKLINE(MACD<0 AND MACD<REF(MACD,1),MACD,0,1.2,0),COLOR006600;
STICKLINE(MACD<0 AND MACD<REF(MACD,1),MACD,0,0.4,0),COLOR007700;
STICKLINE(DF二次金叉,0,DIF,3,0),COLORFF00FF;
临界柱H:=FILTER(COUNT(MACD>REF(MACD,1) AND MACD>0,6)=6,3) OR FILTER(COUNT(MACD<REF(MACD,1) AND MACD>0,6)=6,3);
临界柱L:=FILTER(COUNT(MACD<REF(MACD,1) AND MACD<0,6)=6,3) OR FILTER(COUNT(MACD>REF(MACD,1) AND MACD<0,6)=6,3);
STICKLINE(临界柱H,MACD,0,0,0),COLOR00FFFF;
STICKLINE(临界柱L,MACD,0,0,0),COLOR00FFFF;
STICKLINE(DF底背离,0,判断底背,1,0),COLOR990099;
STICKLINE(DF底背离 AND COUNT(DF底背离,30)=2,0,判断底背,1,0),COLOR00FFFF;
STICKLINE(绿柱短了,0,-MACD/2,1,0),COLOR00FFFF;
DRAWTEXT(DF二次金叉,DIF,' 二金'),COLOR00AAFF;
DRAWTEXT(DF底背离,REF(判断底背,1),' 底背'),COLOR00FF00;
STICKLINE(JJZR<=3,(CONHH*1.15),(CONHH*1.25),4,0),COLOR00FFFF;
STICKLINE(KKZR<25,(CONHH*1.18),(CONHH*1.22),3,0),COLORFF00FF;
STICKLINE(KKZR>=25,(CONHH*1.18),(CONHH*1.22),3,0),COLORC050AA;
STICKLINE(KKZR>=40,(CONHH*1.18),(CONHH*1.22),3,0),COLORBBBBBB;
STICKLINE(KKZR>=60,(CONHH*1.18),(CONHH*1.22),3,0),COLOR0000FF;
STICKLINE(KKZR>=80,(CONHH*1.18),(CONHH*1.22),3,0),COLOR00FFFF;
STICKLINE(KKZR>=90,(CONHH*1.18),(CONHH*1.22),3,0),COLOR00FF00;
DRAWICON(KDJJC,(CONHH*1.18),24);
DRAWICON(KDJXC,(CONHH*1.18),15);
STICKLINE(J<=3,(CONHH*1.01),(CONHH*1.12),4,0),COLOR00FFFF;
STICKLINE(K<25,(CONHH*1.05),(CONHH*1.1),3,0),COLORFF00FF;
STICKLINE(K>=25,(CONHH*1.05),(CONHH*1.1),3,0),COLORC050AA;
STICKLINE(K>=40,(CONHH*1.05),(CONHH*1.1),3,0),COLORBBBBBB;
STICKLINE(K>=60,(CONHH*1.05),(CONHH*1.1),3,0),COLOR0000FF;
STICKLINE(K>=80,(CONHH*1.05),(CONHH*1.1),3,0),COLOR00FFFF;
STICKLINE(K>=90,(CONHH*1.05),(CONHH*1.1),3,0),COLOR00FF00;
DRAWICON(CROSS(K,D),(CONHH*1.08),1);
DRAWICON(CROSS(D,K),(CONHH*1.08),2);
WDIF*CSTQ+CSTA1,COLORFFFFFF,DOTLINE;
WDEA*CSTQ+CSTA1,COLOR00FF99,DOTLINE;
IF(C>0,0,DRAWNULL),COLORBROWN;
K1:=BACKSET(DIF>REF(DIF,1),2);
强DIF:IF(K1,DIF,DRAWNULL),COLORRED;
K2:=BACKSET(DIF<REF(DIF,1),2);
弱DIF:IF(K2,DIF,DRAWNULL),COLORFF8B80;
K3:=BACKSET(DEA>REF(DEA,1),2);
强DEA:IF(K3,DEA,DRAWNULL),COLORLIRED;
K4:=BACKSET(DEA<REF(DEA,1),2);
弱DEA:IF(K4,DEA,DRAWNULL),COLORFF8B80;
底拐:=DRAWLINE(DIF>=HHV(DIF,21),DIF,DIF<=LLV(DIF,21),DIF,1),COLORWHITE,POINTDOT;
DRAWICON(强DIF>底拐 AND REF(DIF,1)=REF(底拐,1) AND REF(DIF,2)>REF(DIF,1),0,1);