通达信实战很强的MACD指标公式源码
指标构成与信号说明
核心MACD部分
`DIFF`:短期(12日)与长期(26日)指数移动平均线的差值,是快线。
`DEA`:`DIFF`的9日指数移动平均线,是慢线。
`MACD`柱:`2(DIFF-DEA)`,以彩色柱状图(COLORSTICK)显示,代表`DIFF`与`DEA`的差值放大。
`力`:与`MACD`柱数值相同,但不绘制图形(NODRAW),用于内部计算或数值参考。
`持`、`观`、`股`、`望`:当`DIFF`在`DEA`之上时,`持`线显示`DIFF`(红色),`股`线显示`DEA`(青色);当`DEA`在`DIFF`之上时,`观`线显示`DEA`(橙色),`望`线显示`DIFF`(绿色)。这直观地标出了快慢线的相对位置。
背离信号
`底背离`:当股价创新低(与前一个金叉点相比)但`DIFF`未创新低,且此时`DIFF`上穿`DEA`(金叉)时,在`DEA`线位置标记一个红色的“X”点(CROSSDOT)。
`势`线:连接上述底背离信号发生点与前一个金叉点的`DEA`值,形成一条红色线段,提示潜在的底部反转区域。
`顶背离`:当股价创新高(与前一个死叉点相比)但`DIFF`未创新高,且此时`DEA`下穿`DIFF`(死叉)时,判定为顶背离条件。
`压`线:连接上述顶背离信号发生点与前一个死叉点的`DEA`值,形成一条绿色线段,提示潜在的顶部反转区域。
买卖点图标信号
1. 买入信号图标:
红箭头(11号):连续两日收盘价上涨(`CC`)且`DEA`连续两日下降(`EE`)时,在零轴上方标记。
笑脸(16号):连续两日收盘价下跌(`LL`)且`DEA`连续两日上升(`GG`)时,在零轴下方标记。
大红点(2号):股价创180日新高(`DD`)且满足`DEA`连续两日下降(`EE`)以及`DEA`未处180日最高位时,在零轴上方标记。
2. 卖出/警示信号图标:
绿三角(9号):股价创180日新低(`FF`)且满足`DEA`连续两日上升(`GG`)以及`DEA`未处180日最低位时,在零轴下方标记。
MACD柱状图颜色规则
红色柱:`MACD`为正值(零轴上)且今日值大于昨日值(增强)。
洋红色柱:`MACD`为正值但今日值小于昨日值(减弱)。
黄色柱:`MACD`为负值(零轴下)且今日值大于昨日值(空头动能减弱)。
绿色柱:`MACD`为负值且今日值小于昨日值(空头动能增强)。
其他辅助信号
`介入区`:当`MACD`柱(蓝柱区域)连续两日缩短(负值减小)时,在对应的`DEA`值位置画一个白色点状线。
`进`:与`底背离`信号逻辑类似,当底背离条件(`BB`)成立时,在`DEA`线位置画一条蓝色线段(`进`)。
“火”与“山”信号:基于5日EMA的短期趋势。当短期EMA连续3日下降后首次走平或上升(`火=0`),且上一日的下降天数大于过去5日的上升天数总和时,在`DIFF`线附近标记红色“●”和黄色“&164;”符号。同时,当“山”从0变为正数(即5日EMA由跌转升)时,绘制一个红色宽柱。
KDJ共振信号:当KDJ指标的J值从负值上穿0轴时,在`DIFF`线附近标记“短”字,提示可能的短线机会。
图形修饰
`DRAWBAND`:在`DIFF`与`DEA`之间填充色带,直观显示两线之间的区域。
多条`STICKLINE`:根据上述规则,用不同颜色绘制`MACD`柱状图,以区分动能强弱变化。
SHORT:=12;
LONG:=26;
M:=9;
DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG),LINETHICK0;
DEA : EMA(DIFF,M),LINETHICK0;
DRAWBAND(DIFF,RGB(155,50,50),DEA,RGB(0,100,50));
力:2*(DIFF-DEA),NODRAW;
MACD : 2*(DIFF-DEA), COLORSTICK,LINETHICK2;
DD:=C=HHV(C,180);
EE:=DEA< REF(DEA,1) AND REF(DEA< REF(DEA,1),1)=1;
CC:=C> REF(C,1) AND REF(C> REF(C,1),1)=1;
DRAWICON(CC AND EE,0.1,11);
A1:=BARSLAST(REF(CROSS(DIFF,DEA),1));
底背离:=IF(REF(CLOSE,A1+1)>CLOSE AND DIFF>REF(DIFF,A1+1) AND CROSS(DIFF,DEA),1.2,DRAWNULL),COLORRED,LINETHICK4,CROSSDOT;
势:DRAWLINE(A1=0,DEA,底背离,DEA,0),COLORRED LINETHICK2;
DRAWICON(DD AND EE AND DEA< HHV(DEA,180),0.1,2);
A2:=BARSLAST(REF(CROSS(DEA,DIFF),1));
顶背离:=REF(CLOSE,A2+1)<CLOSE AND REF(DIFF,A2+1)>DIFF AND CROSS(DEA,DIFF),COLORWHITE;
压:DRAWLINE(A2=0,DEA,顶背离,DEA,0),COLORGREEN LINETHICK2;
FF:=C=LLV(C,180);
GG:= DEA> REF(DEA,1) AND REF(DEA> REF(DEA,1),1)=1;
LL:=C< REF(C,1) AND REF(C< REF(C,1),1)=1;
DRAWICON(LL AND GG,-0.1,16);
DRAWICON(FF AND GG AND DEA> LLV(DEA,180),-0.3,9);
MM:=IF(MACD< 0,MACD,0);
JJ:=MM> REF(MM,1);
ZZ:=REF(JJ,1)=1;
介入区:(JJ AND ZZ)*DEA,POINTDOT,COLORFFFFFF;{MACD蓝柱缩短---指今日比昨天短}
STICKLINE(介入区=DEA,DEA,DIFF,0,0),COLORFFFFFF;
STICKLINE(MACD<REF(MACD,1)AND MACD>0,0,MACD,0,0),COLORFF00FF;
STICKLINE(MACD<REF(MACD,1)AND MACD<0,0,MACD,0,0)COLOR00FF00;
STICKLINE(MACD>REF(MACD,1)AND MACD,0,MACD,0,0),COLORYELLOW;
STICKLINE(MACD>REF(MACD,1)AND MACD>0,0,MACD,0,0),COLORRED;
持:IF(DIFF>=DEA,DIFF,DRAWNULL),COLORRED;
观:IF(DEA>=DIFF,DEA,DRAWNULL),COLORFF9900;
股:IF(DIFF>=DEA,DEA,DRAWNULL),COLOR00FFFF;
望:IF(DEA>=DIFF,DIFF,DRAWNULL),COLOR00FF00;
AA:=BARSLAST(REF(CROSS(DIFF,DEA),1));
BB:=REF(CLOSE,AA+1)>CLOSE AND DIFF>REF(DIFF,AA+1) AND CROSS(DIFF,DEA);
进:DRAWLINE(AA=0,DEA,BB,DEA,0),COLOR0000FF;
STICKLINE(BB,0,0.1,0,1),COLORFFFFFF;
{-股票公式网站 }
火:=BARSLAST(EMA(CLOSE,5)<REF(EMA(CLOSE,5),1)),COLORRED;
山:=COUNT(EMA(CLOSE,5)>REF(EMA(CLOSE,5),1),5),COLORGREEN;
DRAWTEXT(REF(火,3)>0 AND REF(火,2)>0 AND REF(火,1)>0 AND 火=0 AND REF(火,1)>山,DIFF,'●'),COLORRED;
DRAWTEXT(REF(火,3)>0 AND REF(火,2)>0 AND REF(火,1)>0 AND 火=0 AND REF(火,1)>山,DIFF,'¤'),COLORYELLOW;
STICKLINE(REF(山,1)=0 AND 山>0,0,0.1{-1},5,2),COLORRED;
DRAWTEXT(REF("KDJ.J",1)<0 AND "KDJ.J">0,DIFF,'短'),COLORRED ;

未来函数检测结果如下:
该公式没有未来函数
定制指标公式、软件请联系QQ或微信同号:88652583
SHORT赋值:12
LONG赋值:26
M赋值:9
输出DIFF : 收盘价的SHORT日指数移动平均 - 收盘价的LONG日指数移动平均,线宽为0
输出 DEA : DIFF的M日指数移动平均,线宽为0
画带状线
输出力:2*(DIFF-DEA),NODRAW
输出平滑异同平均线 : 2*(DIFF-DEA), COLORSTICK,线宽为2
DD赋值:收盘价=180日内收盘价的最高值
EE赋值:DEA< 1日前的DEA AND 1日前的DEA<1日前的DEA=1
CC赋值:收盘价> 1日前的收盘价 AND 1日前的收盘价>1日前的收盘价=1
当满足条件CCANDEE时,在0.1位置画11号图标
A1赋值:上次1日前的DIFF上穿DEA距今天数
底背离赋值:如果A1+1日前的收盘价>CLOSEANDDIFF>A1+1日前的DIFFANDCROSS(DIFF,DEA),返回1.2,否则返回无效数,画红色,线宽为4,CROSSDOT
输出势:当满足条件A1=0时,在DEA位置画直线起点,当满足条件底背离时,在DEA位置画直线终点,0表示是否延长.,画红色 线宽为2
当满足条件DDANDEEANDDEA<180日内DEA的最高值时,在0.1位置画2号图标
A2赋值:上次1日前的DEA上穿DIFF距今天数
顶背离赋值:A2+1日前的收盘价<收盘价 AND A2+1日前的DIFF>DIFF AND DEA上穿DIFF,画白色
输出压:当满足条件A2=0时,在DEA位置画直线起点,当满足条件顶背离时,在DEA位置画直线终点,0表示是否延长.,画绿色 线宽为2
FF赋值:收盘价=180日内收盘价的最低值
GG赋值: DEA> 1日前的DEA AND 1日前的DEA>1日前的DEA=1
LL赋值:收盘价< 1日前的收盘价 AND 1日前的收盘价<1日前的收盘价=1
当满足条件LLANDGG时,在-0.1位置画16号图标
当满足条件FFANDGGANDDEA>180日内DEA的最低值时,在-0.3位置画9号图标
MM赋值:如果平滑异同平均线<0,返回平滑异同平均线,否则返回0
JJ赋值:MM> 1日前的MM
ZZ赋值:1日前的JJ=1
输出 介入区:(JJ AND ZZ)*DEA,POINTDOT,COLORFFFFFF
当满足条件介入区=DEA时,在DEA和DIFF位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLORFFFFFF
当满足条件平滑异同平均线<1日前的平滑异同平均线ANDMACD>0时,在0和平滑异同平均线位置之间画柱状线,宽度为0,0不为0则画空心柱.,COLORFF00FF
当满足条件平滑异同平均线<1日前的平滑异同平均线ANDMACD<0时,在0和平滑异同平均线位置之间画柱状线,宽度为0,0不为0则画空心柱.COLOR00FF00
当满足条件平滑异同平均线>1日前的平滑异同平均线ANDMACD时,在0和平滑异同平均线位置之间画柱状线,宽度为0,0不为0则画空心柱.,画黄色
当满足条件平滑异同平均线>1日前的平滑异同平均线ANDMACD>0时,在0和平滑异同平均线位置之间画柱状线,宽度为0,0不为0则画空心柱.,画红色
输出持:如果DIFF>=DEA,返回DIFF,否则返回无效数,画红色
输出 观:如果DEA>=DIFF,返回DEA,否则返回无效数,COLORFF9900
输出 股:如果DIFF>=DEA,返回DEA,否则返回无效数,COLOR00FFFF
输出望:如果DEA>=DIFF,返回DIFF,否则返回无效数,COLOR00FF00
AA赋值:上次1日前的DIFF上穿DEA距今天数
BB赋值:AA+1日前的收盘价>收盘价 AND DIFF>AA+1日前的DIFF AND DIFF上穿DEA
输出进:当满足条件AA=0时,在DEA位置画直线起点,当满足条件BB时,在DEA位置画直线终点,0表示是否延长.,COLOR0000FF
当满足条件BB时,在0和0.1位置之间画柱状线,宽度为0,1不为0则画空心柱.,COLORFFFFFF
火赋值:上次收盘价的5日指数移动平均<1日前的收盘价的5日指数移动平均距今天数,画红色
山赋值:统计5日中满足收盘价的5日指数移动平均>1日前的收盘价的5日指数移动平均的天数,画绿色
当满足条件3日前的火>0ANDREF(火,2)>0ANDREF(火,1)>0AND火=0ANDREF(火,1)>山时,在DIFF位置书写文字,画红色
当满足条件3日前的火>0ANDREF(火,2)>0ANDREF(火,1)>0AND火=0ANDREF(火,1)>山时,在DIFF位置书写文字,画黄色
当满足条件1日前的山=0AND山>0时,在0和0.1位置之间画柱状线,宽度为5,2不为0则画空心柱.,画红色
当满足条件1日前的"KDJ的J"<0AND"KDJ的J">0时,在DIFF位置书写文字,画红色