找回密码
 社区注册

快捷登录

QQ登录

只需一步,快速开始

快捷登录

QQ登录

只需一步,快速开始

MT5中MACD有坑,千万别用错
2022-8-4 15:11| 发布者: 黄月| 查看: 3922| 评论: 0
微富网 新闻资讯 查看内容
摘要 : 自从上篇文章发布以后,发现MACD这个指标还真是很多人的重磅工具。1、有直接用金叉死叉法追涨杀跌的。2、也有在顶底背离时用来逃顶抄底的。3、有根据红绿能量柱来看多空双方的强弱盛衰的。4、还有结合其他理论和指标 ...
自从上篇文章发布以后,发现MACD这个指标还真是很多人的重磅工具。

1、有直接用金叉死叉法追涨杀跌的。

2、也有在顶底背离时用来逃顶抄底的。

3、有根据红绿能量柱来看多空双方的强弱盛衰的。

4、还有结合其他理论和指标完成自己一整套系统的。

这么重要的工具,当有朋友转战外汇平台以后,习惯性的去使用MACD,敏锐的朋友当场发现不一样,不那么灵光的就将错就错,尤其上文提到的第三类人。直接拿下图的柱子当以前的柱子使了。造成与之前的系统不一致,亏了好大一笔以后才明白是怎么回事。


MT5中MACD有坑,千万别用错

MT5中系统自带MACD指标




今天韭菜花就给朋友们在MT5平台上改写一个跟文华上一摸一样的MACD。

咱们先看看文华财经上MACD指标的代码:

DIFF : EMA(CLOSE,SHORT) - EMA(CLOSE,LONG);

DEA : EMA(DIFF,M);

2*(DIFF-DEA),COLORSTICK;

什么?总共就三句。

是的,就是这么简单。

DIFF:是由短期均线的值减去长期均线的值产生的。

DEA:是对DIFF做了一个M周期的均值。

柱子:是两倍的(DIFF-DEA)。

MT5中MACD有坑,千万别用错

文华财经上的MACD


再来看看MT5中:

119行代码,“某某球队的长筒袜,真是又臭又长”。长到影响我文章的质量就不贴了。把关键的东西贴出来好了。

MACD:也就是下图白色的柱子。

也就是 DIFF:ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i];

Signal: 也就是下图红色虚线

也就是DEA:

SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,

ExtMacdBuffer,ExtSignalBuffer);

没有柱子。

MT5中MACD有坑,千万别用错

MT5中系统自带MACD




正式开始改写:

1.

12~15行

#property indicator_buffers 4

#property indicator_plots 2

#property indicator_type1 DRAW_HISTOGRAM

#property indicator_type2 DRAW_LINE

改为

#property indicator_buffers 5

#property indicator_plots 3

#property indicator_type1 DRAW_LINE

#property indicator_type2 DRAW_LINE

#property indicator_type3 DRAW_HISTOGRAM

目的是给指标增加一个储存器来存柱子的值。

2.

20~21行

#property indicator_label1 "MACD"

#property indicator_label2 "Signal"

修改为

#property indicator_label1 "DIFF"

#property indicator_label2 "DEA"

#property indicator_label3 "ZHUZI"

目的是让指标显示出来以后显示的东西和文华一致,以免脑袋里还得倒腾。

3.

在原29行下新加

double ExtzhuziBuffer[];

目的给柱子增加储存器,将计算后的值填进去。

4.

原来的41~44

SetIndexBuffer(0,ExtMacdBuffer,INDICATOR_DATA);

SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);

SetIndexBuffer(2,ExtFastMaBuffer,INDICATOR_CALCULATIONS);

SetIndexBuffer(3,ExtSlowMaBuffer,INDICATOR_CALCULATIONS);

修改为

SetIndexBuffer(0,ExtMacdBuffer,INDICATOR_DATA);

SetIndexBuffer(1,ExtSignalBuffer,INDICATOR_DATA);

SetIndexBuffer(2,ExtzhuziBuffer,INDICATOR_DATA);

SetIndexBuffer(3,ExtFastMaBuffer,INDICATOR_CALCULATIONS);

SetIndexBuffer(4,ExtSlowMaBuffer,INDICATOR_CALCULATIONS);

程序的事情,主要给新增的柱子绑定。

5.最后在原来113~117行之间

原来

for(int i=limit;i<rates_total && !IsStopped();i++)

ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i];

SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);

修改为

for(int i=limit;i<rates_total && !IsStopped();i++)

{

ExtMacdBuffer[i]=ExtFastMaBuffer[i]-ExtSlowMaBuffer[i];

SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,ExtMacdBuffer,ExtSignalBuffer);

ExtzhuziBuffer[i]=2*(ExtMacdBuffer[i]-ExtSignalBuffer[i]);

}

完工


出来的效果是这个样子的。

MT5中MACD有坑,千万别用错

MT5中修改后的MACD


以后再在MT5中用MACD就舒服多了不是?就到这里。改完这个韭菜花脑袋有点懵。

路过

雷人

握手

鲜花

鸡蛋

最新评论

联系我们 搜索

联系我们

对话产生契机,讨论收获惊喜, 只为成就无限创举

湖北省 武汉市
汉阳区龙阳大道龙阳大厦A座1419

欢迎来这里一起喝喝茶,
聊聊你的产品。

+86 139 9777 1122
(9:00AM-6:00PM)

代理合作请联系本号码
业务合作请点此处

洽谈合作
admin@vfuw.cn

共享万亿级市场
工作日24小时内回复

加入我们
jiangheng@vfuw.cn

我们欢迎每一个对设计怀
有疯狂激情的人。