本文介绍了MACD二次金叉选股公式编写思路,以MACD零轴之下二次金叉为例,编写选股公式,进行信号过滤,并把选股公式改编为技术指标。此外举一反三,介绍了三次金叉以及MACD零轴上二次金叉。
一、MACD二次金叉选股公式编写
先以MACD零轴之下二次金叉来介绍编写思路,DEA慢线(黄色)下穿零轴以来,出现第二次金叉(如下图),用通达信BARSLAST函数获取DEA下穿零轴以来的周期数,然后用COUNT函数统计这个区间里金叉的次数。
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
XC:=CROSS(0,DEA);{慢线DEA下穿零轴}
T:=BARSLAST(XC);{慢线DEA下穿零轴以来的周期数}
JC:=CROSS(DIF,DEA);{快线DIF、慢线DEA金叉}
A1:COUNT(JC,T)=2;{DEA下穿零轴以来,有两次金叉}
把公式保存为技术指标,加载到副图查看信号,发现两个问题,第1个问题是DIF、DEA在零轴上方金叉了,还满足条件,提示了信号(如上图问题1)。第2个问题是只想二次金叉的时候出信号,但是二次金叉之后的周期一直提示信号(如上图问题2)。为了解决这两个问题,需要增加条件过滤信号。
二、信号过滤
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
XC:=CROSS(0,DEA);{慢线DEA下穿零轴}
T:=BARSLAST(XC);{慢线DEA下穿零轴以来的周期数}
JC:=CROSS(DIF,DEA);{快线DIF、慢线DEA金叉}
A1:=COUNT(JC,T)=2;{DEA下穿零轴以来,有两次金叉}
A2:=EVERY(DIF<0,T);{DEA下穿零轴以来,DIF都处于零轴以下}
XG:JC AND A1 AND A2;{DEA下穿零轴以来,第二次出现金叉};
A2:=EVERY(DIF<0,T);这一句,过滤零轴之上满足条件的情况;XG:JC AND A1 AND A2;加入了JC这个条件,这样就只会在金叉的时候出现信号,而不会像之前那样连续出信号。
三、改写为技术指标
选股公式改写成技术指标公式,当出现MACD二次金叉时,提示“二次金叉”文字
DIF:EMA(C,12)-EMA(C,26);
DEA:EMA(DIF,9);
MACD:(DIF-DEA)*2,COLORSTICK;
XC:=CROSS(0,DEA);
T:=BARSLAST(XC);
JC:=CROSS(DIF,DEA);
A1:=COUNT(JC,T)=2;
A2:=EVERY(DIF<0,T);
TJ:=JC AND A1 AND A2;
DRAWTEXT(TJ,DIF,'二次金叉'),COLORYELLOW;
四、三次金叉
A1:=COUNT(JC,T)=2;,表示统计DEA下穿零轴以来,金叉2次。3次金叉改一下数值即可。
A1:=COUNT(JC,T)=3;{DEA下穿零轴以来,金叉三次}
五、MACD零轴上二次金叉
和上面介绍的MACD零轴之下二次金叉大同小异,公式如下:
DIF:=EMA(C,12)-EMA(C,26);
DEA:=EMA(DIF,9);
XC:=CROSS(DEA,0);{慢线DEA上穿零轴}
T:=BARSLAST(XC);{慢线DEA上穿零轴以来的周期数}
JC:=CROSS(DIF,DEA);{快线DIF、慢线DEA金叉}
A1:=COUNT(JC,T)=2;{DEA上穿零轴以来,有两次金叉}
A2:=EVERY(DIF>0,T);{DEA上穿零轴以来,DIF都处于零轴以上}
XG:JC AND A1 AND A2;{DEA上穿零轴以来,第二次出现金叉};
最后问一句,MACD零轴之上第一次金叉会写吗?应该不用我多讲了吧。
关注技术Pie,学习更多通达信指标公式编写知识。