通达信指标公式编写教程15:MACD指标顶底背离的选股及在主图上的显示(图解)

拾荒网 其它指标 11

前面两讲,我们学习了MACD指标的变色公式MACD零上金叉和MACD底背离的条件选股公式的写法,文章发布后,反映比较强烈。

JIN**HE说:“姐,帮帮忙,再给写一下顶背离吧,我几次都是过山车,钱回撤。”

因为中国股市不能做空,所以个人认为运用MACD顶背离进行选股的意义不大。

但既然有需求,那就试着写一个MACD顶背离的指标公式,并把“顶背”两字显示在主图上。

一、MACD顶背离的指标公式:

将上一讲的底背离公式源码:

…… …… …… …… ……

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

{收盘价的12日指数移动平均-收盘价的26日指数移动平均}

DEA:=EMA(DIF,9); {DIF的9日指数移动平均}

JC:=CROSS(DIF,DEA); {DIF金叉DEA}

JC1:=BARSLAST(JC); {上次JC距今天数}

JC2:=BARSLAST(REF(JC,1)); {上次金叉前1日的JC距今天数}

GJ:=MA(C,10)<MA(C,20) AND MA(C,20)<MA(C,60);

{10、20、60日均线空头排列}

JC AND GJ AND REF(DIF,JC1)>REF(DIF,JC2) AND EVERY(DEA<0,JC2) AND REF(C,JC1)<REF(C,JC2);

{当日DIF金叉DEA,且短均线空头排列,且本次金叉时DIF的值比上次金叉时大,且上次DIF金叉DEA以来DEA都小于0,且本次DIF金叉DEA时的最低价小于上次DIF金叉DEA时的最低价}

…… …… …… …… ……

改写成顶背离公式(金叉改为死叉,空头改为多头):

…… …… …… …… ……

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

{收盘价的12日指数移动平均-收盘价的26日指数移动平均}

DEA:=EMA(DIF,9); {DIF的9日指数移动平均}

SC:=CROSS(DEA,DIF); {DIF死叉DEA}

SC1:=BARSLAST(SC); {上次SC距今天数}

SC2:=BARSLAST(REF(SC,1)); {上次死叉前1日的SC距今天数}

GJ:=MA(C,10)>MA(C,20) AND MA(C,20)>MA(C,60);

{10、20、60日均线多头排列}

XG:=SC AND GJ AND REF(DIF,SC1)<REF(DIF,SC2) AND EVERY(DEA>0,SC2) AND REF(H,SC1)>REF(H,SC2);

{当日DIF死叉DEA,且短均线多头排列,且本次金叉时DIF的值比上次金叉时小,且上次DIF金叉DEA以来DEA都大于0,且本次DIF死叉DEA时的最高价大于上次DIF金叉DEA时的最高价}

…… …… …… …… ……

二、MACD顶背离的条件选股方法:

1、将上面的MACD顶背离的公式直接复制到新建立条件选股公式中去,进行条件选股即可。

2、直接利用上面的公式进行综合选股:(15-9)

三、当股价发生顶、底背离时,用文字在主图上显示出来:

先看顶背离,就在刚才的临时文件中改写。

其实在主图上显示文字我们不是第一次了,大家还有印象吗?

1、先改写最后一句,把输出改成赋值,即在XG:后面加等号,然后在主图上不显示这条线,该用哪个函数呢?

(DRAWNULL 返回无效数 【引用函数】),在下面句子最后的分号前写上”, DRAWNULL”

XG:=SC AND GJ AND REF(DIF,SC1)<REF(DIF,SC2) AND EVERY(DEA>0,SC2) AND REF(H,SC1)>REF(H,SC2), DRAWNULL;

2、在主图上显示文字:

要用到函数:DRAWTEXT 显示文字 【绘图函数】

DRAWTEXT(,,),括号里要填写三项:第一顶是满足的条件,第二项是位置,第三项是文字:

DRAWTEXT(XG,H, '顶背');

把这两句话写到临时公式里,在右上角的【画线方法】的下拉菜单选择“主图叠加”:

…… …… …… …… ……

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

{收盘价的12日指数移动平均-收盘价的26日指数移动平均}

DEA:=EMA(DIF,9); {DIF的9日指数移动平均}

SC:=CROSS(DEA,DIF); {DIF死叉DEA}

SC1:=BARSLAST(SC); {上次SC距今天数}

SC2:=BARSLAST(REF(SC,1)); {上次死叉前1日的SC距今天数}

GJ:=MA(C,10)>MA(C,20) AND MA(C,20)>MA(C,60);

{10、20、60日均线多头排列}

XG:=SC AND GJ AND REF(DIF,SC1)<REF(DIF,SC2) AND EVERY(DEA>0,SC2) AND REF(H,SC1)>REF(H,SC2), NODRAW;

{当日DIF死叉DEA,且短均线多头排列,且本次金叉时DIF的值比上次金叉时小,

且上次DIF金叉DEA以来DEA都大于0,且本次DIF死叉DEA时的最高价大于上次DIF金叉DEA时的最高价}

DRAWTEXT(XG,H,'顶背')

{满足“XG”条件时,在最高价处,显示“顶背”}

…… …… …… …… ……

鼠标放到到主图K 线图中,点击后,输入“LS”,调出刚才编写的“临时”,画线方法选择“主图叠加”:

还可以把“顶背”两个字的颜色变成黄色醒目一些,位置再抬高点:H+0.1,然后再这个“临时”文件中的源码复制、粘贴到主图中去.这是来自拾荒网10Huang.CN,专注短线技术技巧进阶。

再将上一讲的底背离指标也改写到主图中去,过程就不详细说了,直接上源码,都是测试通过的。

我的均线系统2:

…… …… …… …… ……

MA5:MA(C,5),COLORWHITE; {5日移动平均线}

MA10:MA(C,10),COLORYELLOW; {10日移动平均线}

MA25:MA(C,25),COLORLIBLUE; {25日移动平均线}

MA60:MA(C,60),COLORRED;

MA120:MA(C,120),COLORBLUE; {120日移动平均线}

MA250:MA(C,250),COLORLIGRAY; {250日移动平均线}

IF(MA5<REF(MA5,1),MA5,DRAWNULL),COLORWHITE,LINETHICK2;

IF(MA10<REF(MA10,1),MA10,DRAWNULL),COLORYELLOW,LINETHICK2;

IF(MA25<REF(MA25,1),MA25,DRAWNULL),COLORLIBLUE,LINETHICK2;

IF(MA60<REF(MA60,1),MA60,DRAWNULL),COLORRED,LINETHICK2;

{今日的60日平均价大于昨天的60日平均价,则返回MA60,用红色2号粗线显示};

IF(MA120<REF(MA120,1),MA120,DRAWNULL),COLORBLUE,LINETHICK2;

IF(MA250<REF(MA250,1),MA250,DRAWNULL),COLORLIGRAY,LINETHICK2;

涨停:

STICKLINE(C>=REF(C,1)*1.099,CLOSE,OPEN,2,0),COLORRED;

{当涨停板时,在收盘价和开盘价位置之间画红色柱状线,宽度为2的实心柱}

跌停:

STICKLINE(C<=REF(C,1)*0.901,CLOSE,OPEN,2,0),COLORBLUE;

{当跌停板时,在收盘价和开盘价位置之间画蓝色柱状线,宽度为2.5的实心柱};

DRAWTEXT_FIX(1,0,0,0,'地区:'),COLORRED;DRAWTEXT_FIX(1,0.03,0,0,DYBLOCK),COLORRED;

DRAWTEXT_FIX(1,0.1,0,0,'行业:'),COLORGREEN;DRAWTEXT_FIX(1,0.13,0,0,HYBLOCK),COLORGREEN;

DRAWTEXT_FIX(1,0.19,0,0,'概念:'),COLORFF00FF;DRAWTEXT_FIX(1,0.22,0,0,GNBLOCK),COLORFF00FF;

DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);

{收盘价的12日指数移动平均-收盘价的26日指数移动平均}

DEA:=EMA(DIF,9); {DIF的9日指数移动平均}

SC:=CROSS(DEA,DIF); {DIF死叉DEA}

SC1:=BARSLAST(SC); {上次SC距今天数}

SC2:=BARSLAST(REF(SC,1)); {上次死叉前1日的SC距今天数}

GJ:=MA(C,10)>MA(C,20) AND MA(C,20)>MA(C,60);

{10、20、60日均线多头排列}

XG:=SC AND GJ AND REF(DIF,SC1)<REF(DIF,SC2) AND EVERY(DEA>0,SC2) AND REF(H,SC1)>REF(H,SC2), NODRAW;

{当日DIF死叉DEA,且短均线多头排列,且本次金叉时DIF的值比上次金叉时小,且上次DIF金叉DEA以来DEA都大于0,且本次DIF死叉DEA时的最高价大于上次DIF金叉DEA时的最高价}

DRAWTEXT(XG,H+0.1,'顶背'),COLORYELLOW;

{满足“XG”条件时,在最高价+0.1处,显示“顶背”}

JC:=CROSS(DIF,DEA); {DIF金叉DEA}

JC1:=BARSLAST(JC); {上次JC距今天数}

JC2:=BARSLAST(REF(JC,1)); {上次金叉前1日的JC距今天数}

GJ2:=MA(C,10)<MA(C,20) AND MA(C,20)<MA(C,60);{10、20、60日均线空头排列}

XG2:=JC AND GJ2 AND REF(DIF,JC1)>REF(DIF,JC2) AND EVERY(DEA<0,JC2) AND REF(L,JC1)<REF(L,JC2);

{当日DIF金叉DEA,且短均线空头排列,且本次金叉时DIF的值比上次金叉时大,且上次DIF金叉DEA以来DEA都小于0,且本次DIF金叉DEA时的最低价小于上次DIF金叉DEA时的最低价};

DRAWTEXT(XG2,L-0.1,'底背'),COLORMAGENTA;

{满足“XG2”条件时,在最低价-0.1处,显示“底背”}

…… …… …… …… ……

注意1:源码中凡是用浅灰色显示的文字都是解释,为的是便于大家看公式方便,如果你常得文字太多,都是可以删去的。拾荒网股票学习网专注短线龙头战法~

注意2:图中所有均线都将其改成向下时用粗线显示,向上是用同色的细线显示,这样多头市场和空头市场可以一目了然,方便我们看盘。

注意3:不管是“顶背离”“底背离”信号,都不含未来函数。

出现了“顶背离”信号后,如果后市多头做多意愿强烈,放量上冲,那“顶背离”就有可能化解,特别是股价涨幅不多时,这种“顶背离”被化解的还是蛮多的。

但如果股价涨得太多了,那出现“顶背离”信号时,要有“宁可错过,不能做错”的心态,逃命要紧。

对“底背离”信号的理解正好反过来,大家自行去理解吧。

标签: 通达信指标编写