学习编写基础股票指标06---MACD零轴上下金叉及多条件叠加
A:=MA(CLOSE,5);
B:=MA(CLOSE,10);
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIF,9);
MACD:=(DIF-DEA)*2;
CROSS(A,B) AND CROSS(DIF,DEA);
在这个公式中,我们用AND把两个金叉条件叠加了起来,选出了当天同时金叉的股票。这个选股公式还是具有一些实战作用的。那么实际操作中,我们更需要做一些跟踪,比如只要求之前的5天内,其中有一天同时金叉,即可满足条件,那么代码如何来编?
前面赋值部分都不用改动,加粗部分原来是个选股条件,我们把它进行赋值,再用EXIST函数:
EXIST函数:
同时金叉:=CROSS(A,B) AND CROSS(DIF,DEA);
EXIST(同时金叉,5);
看明白了吗?把原来的选股条件赋值给“同时金叉”,然后在5个交易日内存在“同时金叉”,我们把完整的代码合在一起,如下:
------------------------------
A:=MA(CLOSE,5);
B:=MA(CLOSE,10);
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIF,9);
MACD:=(DIF-DEA)*2;
同时金叉:=CROSS(A,B) AND CROSS(DIF,DEA);
EXIST(同时金叉,5);
-----------------------------------
我们把上述代码做成选股公式,进行选股测试,做公式和选股的方法,这里就不再重复了,新学的朋友,看一下前面的文章,测试选股的结果如下:
我们看到,既有当天同时出现金叉的,也有前几天同时出现金叉的,这样通过一个选股公式,就把最近出现金叉共振的股票全部都选出来了,省去了大量的人工翻阅过程。那么我们这里设置的是5个交易日,如果你想选更长时间内的,可以把5改为更大的数字。
我们继续进阶,通过上面的公式,我们选到的股票,是过去5个交易日内出现过同时金叉的,我们把这些股票选出来之后,里面是否会夹杂着一些刚金叉,又马上死叉的股票?5个交易日足可以发生这样的事情。
在实际使用中,也是这样,特别是选股公式,选出来之后,一个一个去翻,发现有不符合条件的,马上记录,然后改进代码,一直到选出的股票99%符合条件为止。
在上面选出的股票中,我也发现了一些瑕疵,就是有些股票,刚同时金叉,又马上死叉了,说明没有维持在多头结构,显然这些股票我需要把它们排除在外。
怎么来排除?其实只要再叠加一个条件,还是用AND,上面最后一句,加上MACD>0即可,因为MACD>0,表示仍然处于多头,具体如下:
-------------------------
A:=MA(CLOSE,5);
B:=MA(CLOSE,10);
DIF:=EMA(CLOSE,12)-EMA(CLOSE,26);
DEA:=EMA(DIF,9);
MACD:=(DIF-DEA)*2;
同时金叉:=CROSS(A,B) AND CROSS(DIF,DEA);
EXIST(同时金叉,5) AND MACD>0;
-----------------------------
对于AND的使用,有多个条件,就可以用多个AND,就像火车车厢一样,一节一节把所有的条件连起来,比如条件1 AND 条件2 AND 条件3 AND 条件4等等。
如果代码太长,可以赋值,也可以换行,一句代码以分号结束,没有加分号,就视为一句代码。初学者尽量使用赋值,让每句代码变短,而且在名称中也可以多使用中文,看的更清晰一点。
经过叠加代码MACD>0之后,选到的股票,就完全符合5个交易日内存在同时金叉,并且仍然处于多头结构。
我们再继续推进,MACD金叉分为零轴上方金叉和零轴下方金叉,我们又该怎么来叠加呢?在MACD指标中,DIF是快线,DEA是慢线,5个交易日内金叉的,只要慢线DEA>0,那么基本上是零轴上方金叉,如果DEA<0,基本上是零轴下方金叉。其他代码不变,最后一句改为:
EXIST(同时金叉,5) AND MACD>0 AND DEA<0;
关于零轴上方和零轴下方金叉的使用,各有喜好,有些人喜欢强势的零上金叉,同样也有一半的人喜欢稳健的零轴下方金叉,这个作业交给大家自己去测试,看看你喜欢哪个类型?
神奇指标网(https://www.shenqizhibiao.com/)所有指标公式及文章来源于网络仅供学习研究
网友评论
已有0人评论