MQL4自编指标学习6-MQL4中MACD指标的实现

本文详细介绍了MACD指标的计算原理,包括移动平均值(EMA)、离差值(DIF)、DEA的计算公式,并提供了MQL4语言实现MACD指标的源代码,同时展示了使用Excel实现MACD的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

目录

 

1 MACD指标简介

2 MACD三个变量的计算公式

2.1 计算移动平均值(EMA)

2.2 计算离差值(DIF)

2.3 计算DEA

2.4 Bars的计算

3 MACD用Excel实现

4 MQL4实现MACD的源码


1 MACD指标简介

MACD翻译成中文是指数平滑异同移动平均线,用中文读起来有些拗口,我也记不住中文的名字。

MACD指标由三部分组成,它们分别是:DIF(离差〕、DEA(异同平均数)和BAR(柱状线)。DIF在图中用白线表示,也被称为“快线",DEA在图中用黄线表示,也被称为“慢线",最早的MACD只有这两条快慢线,通过两条线的聚合和分离来判断市场情况。后来随着MACD的广泛应用,又引人了柱状线(BAR),俗称“红绿柱”。红绿柱是快慢线的距离的表示,对指标实质没有影响,只是为了更便于观察和使用指标。

2 MACD三个变量的计算公式

通过以下四步就可以计算出DIF,DEA,BARS。

2.1 计算移动平均值(EMA)

EMA(12)=前一日EMA(12)×11/13+今日收盘价×2/13

EMA(26)=前一日EMA(26)×25/27+今日收盘价×2/27

MQL4中可用iMA()函数进行计算EMA,其中iMA的具体参数如下:

double  iMA(
                   string       symbol,           // symbol
                   int          timeframe,        // timeframe
                   int          ma_period,        // MA averaging period
                   int          ma_shift,         // MA shift
                   int          ma_method,        // averaging method
                   int          applied_price,    // applied price
                   int          shift             // shift
                  );

在这里我不对EMA具体的含义进行展开了。

2.2 计算离差值(DIF)

DIF=当日EMA(12)-当日EMA(26)

2.3 计算DEA

根据DIF计算其9日的SMA,即离差平均值,此值又名DEA,即DEA=SMA(DIF,9)。

我看一些国内的用DIF的9日EMA进行计算DEA,不过MQL4自带的是用SMA进行DEA进行求解DEA,所以,我也用EMA进行求解。

2.4 Bars的计算

Bars = (DIF-DEA)×2

3 MACD用Excel实现

     我用MT4导出现货黄金的月线收盘价,用excel实现了MACD的计算。

OpenTime Close EMA12 EMA26 DIF DEA BARS
1996.06.01 380.7 380.7 380.7 0   0
1996.07.01 385.75 381.4769 381.0741 0.402849   0.805698
1996.08.01 386.75 382.2882 381.4945 0.793653   1.587305
1996.09.01 379.05 381.79 381.3134 0.476548   0.953097
1996.10.01 378.55 381.2915 381.1087 0.182788   0.365576
1996.11.01 371.9 379.8467 380.4266 -0.57993   -1.15987
1996.12.01 367.95 378.0164 379.5024 -1.486   -2.972
1997.01.01 344.35 372.837 376.8985 -4.06156   -8.12313
1997.02.01 361 371.0159 375.7209 -4.70497 -0.9974 -7.41513
1997.03.01 351.5 368.0135 373.9267 -5.91328 -1.65443 -8.51768
1997.04.01 339.6 363.6422 371.384 -7.74185 -2.5594 -10.3649
1997.05.01 344.9 360.7587 369.4222 -8.66348 -3.61019 -10.1066
1997.06.01 334.2 356.6728 366.8132 -10.1404 -4.78985 -10.7011
1997.07.01 324.8 351.7693 363.7011 -11.9318 -6.13592 -11.5918
1997.08.01 325.5 347.7279 360.8714 -13.1435 -7.53187 -11.2233
1997.09.01 334.7 345.7236 358.9328 -13.2092 -8.83445 -8.74948
1997.10.01 311.7 340.4892 355.434 -14.9449 -10.0437 -9.80231
1997.11.01 296.7 333.7524 351.0834 -17.331 -11.4466 -11.7688
1997.12.01 289.3 326.9135 346.5068 -19.5933 -12.9666 -13.2533
1998.01.01 302.7 323.1884 343.2619 -20.0735 -14.3368 -11.4734
1998.02.01 299.4 319.5286 340.0128 -20.4842 -15.6502 -9.66803
1998.03.01 301.2 316.7088 337.1378 -20.429 -16.7934 -7.27121
1998.04.01 306.9 315.1998 334.898 -19.6982 -17.6563 -4.08378
1998.05.01 293.2 311.8152 331.8092 -19.994 -18.4175 -3.15313
1998.06.01 297.2 309.5667 329.2456 -19.6789 -19.1363 -1.08511
1998.07.01 286.7 306.0488 326.0941 -20.0453 -19.703 -0.68454
1998.08.01 275.8 301.3951 322.3686 -20.9735 -20.1078 -1.73144
1998.09.01 297.2 300.7497 320.5042 -19.7545 -20.1257 0.742275
1998.10.01 292.8 299.5267 318.4521 -18.9254 -19.9981 2.145415
1998.11.01 293.6 298.6149 316.6112 -17.9963 -19.7217 3.450746
1998.12.01 288.5 297.0587 314.5289 -17.4701 -19.3929 3.845575
1999.01.01 286.4 295.4189 312.4453 -17.0263 -19.096 4.139453
1999.02.01 287.3 294.1699 310.5826 -16.4128 -18.6981 4.570707
1999.03.01 280.3 292.036 308.3395 -16.3034 -18.3231 4.039274
1999.04.01 286.8 291.2305 306.744 -15.5135 -17.8195 4.612143
1999.05.01 270.8 288.0873 304.0814 -15.9941 -17.2663 2.544341
1999.06.01 261.25 283.9585 300.9087 -16.9502 -16.9547 0.008916
1999.07.01 256.2 279.688 297.597 -17.909 -16.8418 -2.13451
1999.08.01 256 276.0437 294.5157 -18.4721 -16.8946 -3.15488
1999.09.01 304.5 280.4216 295.2553 -14.8337 -16.6017 3.535891
1999.10.01 300.2 283.4644 295.6216 -12.1572 -16.0607 7.806983
1999.11.01 291.2 284.6545 295.2941 -10.6396 -15.4192 9.559278
1999.12.01 289 285.323 294.8278 -9.50479 -14.6638 10.318
2000.01.01 283.9 285.1041 294.0184 -8.91425 -13.9305 10.03259
2000.02.01 292.7 286.2727 293.9207 -7.648 -13.0032 10.71041
2000.03.01 279.4 285.2154 292.8451 -7.62973 -11.9676 8.67572
2000.04.01 273.6 283.4284 291.4195 -7.99115 -10.8656 5.748917
2000.05.01 272.6 281.7625 290.0255 -8.26301 -9.73127 2.936508
2000.06.01 289.3 282.9221 289.9718 -7.04965 -8.86637 3.633429
2000.07.01 277.5 282.0879 289.0479 -6.95999 -8.2889 2.657828
2000.08.01 278.2 281.4898 288.2444 -6.75458 -7.85724 2.205313
2000.09.01 274.5 280.4144
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值