This version of the MACD named MACD Platinum is nothing but the MACD indicator calculated with ZeroLag moving averages. The indicator has been converted from an MT4 code, following a request on the ProBuilder forum. This indicator is a part of a manual trading strategy discussed here: https://www.prorealcode.com/topic/convert-a-macd-strategy-from-mt4/
Because I used graphic instructions to materialize the signals on the MACD and to fill it with a color zone, I think that this code could be an inspiration for other indicators of the same type, do not hesitate to use it for the development of your own technical indicators .. and do not forget to share them also 🙂
//PRC_MACD Platinum | indicator
//29.09.2016
//Nicolas @ www.prorealcode.com
//Sharing ProRealTime knowledge
// --- settings
//short = 12
//long = 26
//signal = 9
// --- end of settings
EMAshort1 = exponentialaverage[short](close)
EMAshort2 = exponentialaverage[short](EMAshort1)
DifferenceShort = EMAshort1 - EMAshort2
ZeroLagShort = EMAshort1 + DifferenceShort
EMAlong1 = exponentialaverage[long](close)
EMAlong2 = exponentialaverage[long](EMAlong1)
DifferenceLong = EMAlong1 - EMAlong2
ZeroLagLong = EMAlong1 + DifferenceLong
ZeroLagMACD = ZeroLagShort - ZeroLagLong
signal1=ExponentialAverage[signal](ZEROLAGMACD)
signal2=ExponentialAverage[signal](signal1)
DIFFERENCE2=signal1-signal2
SignalMACD=signal1+DIFFERENCE2
if signalMACD>=zerolagMACD then
r=255
g=69
b=0
else
r=54
g=224
b=208
endif
drawbarchart(signalMACD,zerolagMACD,signalMACD,zerolagMACD) coloured(r,g,b)
if zerolagMACD crosses over signalMACD or zerolagMACD crosses under signalMACD then
drawtext("●",barindex,signalMACD,Dialog,Bold,12) coloured(r,g,b)
endif
RETURN ZeroLagMACD coloured(54,224,208) style(dottedline,1 ) as "Zero Lag MACD", SignalMACD coloured(255,69,0) style(line,2) as "Signal MACD", 0 coloured(100,100,100) as "zero line"