MT5中MACD有坑,千万别用错

2022-9-28 09:46| 发布者: uin57c2t6mom8n| 查看: 2277| 评论: 0

这里是默认签名
自从上篇文章发布以后,发现MACD这个指标还真是很多人的重磅工具。

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

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

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

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

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


MT5中系统自带MACD指标

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

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

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

DEA : EMA(DIFF,M);

2*(DIFF-DEA),COLORSTICK;

什么?总共就三句。

是的,就是这么简单。

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

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

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




文华财经上的MACD

再来看看MT5中:

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

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

也就是 DIFF:ExtMacdBuffer=ExtFastMaBuffer-ExtSlowMaBuffer;

Signal: 也就是下图红色虚线

也就是DEA:

SimpleMAOnBuffer(rates_total,prev_calculated,0,InpSignalSMA,

ExtMacdBuffer,ExtSignalBuffer);

没有柱子。




MT5中系统自带MACD

<hr>
正式开始改写:

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=ExtFastMaBuffer-ExtSlowMaBuffer;

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

修改为

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

{

ExtMacdBuffer=ExtFastMaBuffer-ExtSlowMaBuffer;

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

ExtzhuziBuffer=2*(ExtMacdBuffer-ExtSignalBuffer);

}

完工
<hr>
出来的效果是这个样子的。




MT5中修改后的MACD

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

使用道具 举报

上一篇:王阳明龙场悟道,和年轻时的一件“荒唐”事有很大关系

下一篇:MT5的盖诺斯平台?虚假平台使人落入陷阱

sitemap.txt | sitemap.xml | sitemap.html |Archiver|手机版|小黑屋|彩虹邦人脉系统 ( 皖ICP备2021012059号 )

GMT+8, 2024-11-22 19:34 , Processed in 0.214740 second(s), 64 queries .

快速回复 返回顶部 返回列表