有人问多周期MACD怎么写,编写指标的难度其实不大,主要问题是解决多周期MACD显示的问题。日线、周线、月线三个周期,每个周期都有快线DIF和慢线DEA两条线,一共6条,怎么在副图上清晰显示出来。
一、MACD多周期共振指标公式(带状线)
思路:引用日线、周线、月线三个周期的MACD指标的快线DIF和慢线DEA,在日线副图画出日、周、月的DIF和DEA带状线。为了方便观察信号,日线金叉、周线金叉、月线金叉共振时,在副图上画出柱线。
{以日线为看盘主图}
DIF:="MACD.DIF";{日线DIF}
DEA:="MACD.DEA";{日线DEA}
WDIF:="MACD.DIF#WEEK";{周线DIF}
WDEA:="MACD.DEA#WEEK";{周线DEA}
MDIF:="MACD.DIF#MONTH";{月线DIF}
MDEA:="MACD.DEA#MONTH";{月线DEA}
DRAWBAND(MDIF,RGB(244,164,96),MDEA,RGB(124,252,0));{月线DIF、DEA带状线}
DRAWBAND(WDIF,RGB(255,0,255),WDEA,RGB(127,255,212));{周线DIF、DEA带状线}
DRAWBAND(DIF,RGB(255,0,0),DEA,RGB(0,255,255));{周日线DIF、DEA带状线}
DJC:=CROSS(DIF,DEA);{日线DIF、DEA金叉}
WJC:=CROSS(WDIF,WDEA);{周线金叉}
MJC:=CROSS(MDIF,MDEA);{月线金叉}
GZ1:=DJC AND WJC AND MDIF>MDEA;{日线金叉、周线金叉,月线DIF大于DEA}
GZ2:=DJC AND WDIF>WDEA AND MJC;{日线金叉、月线金叉,周线DIF大于DEA}
GZ3:=DIF>DEA AND WJC AND MJC;{周线金叉、月线金叉,日线DIF大于DEA}
GZ4:=DJC AND WJC AND MJC;{日线金叉、周线金叉、月线金叉}
STICKLINE(GZ1,0,1,2,0),COLORWHITE;{日周金叉,画白色柱}
DRAWTEXT(GZ1,1,'日周金叉'),COLORWHITE;{日周金叉,写文字}
STICKLINE(GZ2,0,1,2,0),COLORYELLOW;{日月金叉,画黄色柱}
DRAWTEXT(GZ2,1,'日月金叉'),COLORYELLOW;
STICKLINE(GZ3,0,1,2,0),COLORMAGENTA;{周月金叉,画洋红色柱}
DRAWTEXT(GZ3,1,'周月金叉'),COLORMAGENTA;
STICKLINE(GZ4,0,1,2,0),COLORRED;{日周月金叉,画红色柱}
DRAWTEXT(GZ4,1,'日周月金叉'),COLORRED;
从上图可以看出,日线、周线、月线的DIF、DEA带状线混在一起,眼睛都看花了,观察也不方便,所以有必要进行改进。
二、MACD多周期共振指标公式(柱线)
在之前的文章中介绍过,STICKLINE画柱线函数,宽度4为标准间距,利用这个特性,可以把每个周期的柱状线连起来,形成一条水平带。这样相当于把上面的带状线拍扁了,日线、周线、月线互不干扰,可以比较清晰的观察DIF与DEA的大小关系以及金叉、死叉情况。
DIF:="MACD.DIF";
DEA:="MACD.DEA";
WDIF:="MACD.DIF#WEEK";
WDEA:="MACD.DEA#WEEK";
MDIF:="MACD.DIF#MONTH";
MDEA:="MACD.DEA#MONTH";
STICKLINE(DIF>DEA,1,2,4,0),COLORLIRED;{日线DIF大于日线DEA,画宽度为4的淡红色柱}
STICKLINE(DIF<DEA,1,2,4,0),COLORLICYAN;{日线DIF小于日线DEA,画宽度为4的淡青色柱}
STICKLINE(WDIF>WDEA,-0.5,0.5,4,0),COLORLIRED;{周线DIF大于DEA,画淡红色柱}
STICKLINE(WDIF<WDEA,-0.5,0.5,4,0),COLORLICYAN;{周线DIF小于DEA,画淡青色柱}
STICKLINE(MDIF>MDEA,-1,-2,4,0),COLORLIRED;{月线DIF大于DEA,画淡红色柱}
STICKLINE(MDIF<MDEA,-1,-2,4,0),COLORLICYAN;{月线DIF小于DEA,画淡青色柱}
DRAWTEXT(ISLASTBAR,1.5,'日'),COLORWHITE;{在最右边,1.5位置,标注文字“日”}
DRAWTEXT(ISLASTBAR,0,'周'),COLORWHITE;{在最右边标注文字“周”}
DRAWTEXT(ISLASTBAR,-1.5,'月'),COLORWHITE;{在最右边标注文字“月”}
DJC:=CROSS(DIF,DEA);
WJC:=CROSS(WDIF,WDEA);
MJC:=CROSS(MDIF,MDEA);
GZ1:=DJC AND WJC AND MDIF>MDEA;
GZ2:=DJC AND WDIF>WDEA AND MJC;
GZ3:=DIF>DEA AND WJC AND MJC;
GZ4:=DJC AND WJC AND MJC;
STICKLINE(GZ1,-2.5,2.5,2,0),COLORWHITE;{日周金叉,在-2.5到2.5之间画宽度为2的柱线}
DRAWTEXT(GZ1,2,'日周金叉'),COLORWHITE;{标注文字}
STICKLINE(GZ2,-2.5,2.5,2,0),COLORYELLOW;
DRAWTEXT(GZ2,2,'日月金叉'),COLORYELLOW;
STICKLINE(GZ3,-2.5,2.5,2,0),COLORMAGENTA;
DRAWTEXT(GZ3,2,'周月金叉'),COLORMAGENTA;
STICKLINE(GZ4,-2.5,2.5,2,0),COLORRED;
DRAWTEXT(GZ4,2,'日周月金叉'),COLORRED;
三、MACD多周期共振选股公式
选股公式相对简单,不需要处理画线。日周金叉、日月金叉、周月金叉、日周月金叉这四个条件用OR连接起来,其中一个条件成立就可以选出标的。选出标的之后,再用上面的副图指标观察区分共振类型。
DIF:="MACD.DIF";
DEA:="MACD.DEA";
WDIF:="MACD.DIF#WEEK";
WDEA:="MACD.DEA#WEEK";
MDIF:="MACD.DIF#MONTH";
MDEA:="MACD.DEA#MONTH";
DJC:=CROSS(DIF,DEA);
WJC:=CROSS(WDIF,WDEA);
MJC:=CROSS(MDIF,MDEA);
GZ1:=DJC AND WJC AND MDIF>MDEA;
GZ2:=DJC AND WDIF>WDEA AND MJC;
GZ3:=DIF>DEA AND WJC AND MJC;
GZ4:=DJC AND WJC AND MJC;
XG:GZ1 OR GZ2 OR GZ3 OR GZ4;
四、特别提醒(非常重要)
中午午休时,突然想到MACD多周期共振指标公式有问题。周初的时候,周线并没有收盘;月初的时候,月线并没有收盘,看到的只是当天的周线、月线的未收盘状态。假设月初的几天行情大涨,导致月线MACD金叉,但是接下来交易日到月底,行情一直下跌,这样可能导致月线金叉消失,那MACD多周期共振产生的信号就消失了,这就是常说的“信号漂移”。
虽然#DAY、#WEEK、#MONTH官方并没有定义为未来函数,但是其中却隐含了未来的信息,因此周初、月初产生的信号,务必要谨慎对待,可能是假的。信号漂移从指标或选股的结果上看不出来,因为在一个星期、一个月中产生产生金叉最后又消失的标的,已经自动过滤了,留下的都是周线、月线收盘时成功金叉的,所以指标公式成功率高,并不一定是真实的。当然也不是一无是处,接近月末时,一两天的行情对月线影响相对比较小,此时的结果相对可信。
关注技术Pie,学习更多通达信指标公式编写知识。
友情提醒:本文仅供学习交流技术指标公式,不构成任何投资建议。投资有风险,入市需谨慎!