#property indicator_separate_window #property indicator_buffers 4 #property indicator_color1 Orange #property indicator_color2 White #property indicator_color3 Green #property indicator_color4 Red extern int FastEMA = 12; extern int SlowEMA = 26; extern int SignalSMA = 9; double g_ibuf_88[]; double g_ibuf_92[]; double g_ibuf_96[]; double g_ibuf_100[]; int init() { SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, g_ibuf_88); SetIndexStyle(1, DRAW_LINE); SetIndexBuffer(1, g_ibuf_92); SetIndexStyle(2, DRAW_HISTOGRAM); SetIndexBuffer(2, g_ibuf_96); SetIndexStyle(3, DRAW_HISTOGRAM); SetIndexBuffer(3, g_ibuf_100); SetIndexDrawBegin(0, SignalSMA); SetIndexDrawBegin(1, SignalSMA); SetIndexDrawBegin(2, SignalSMA); SetIndexDrawBegin(3, SignalSMA); IndicatorShortName("MACD(" + FastEMA + "," + SlowEMA + "," + SignalSMA + ")"); SetIndexLabel(0, "Dif"); SetIndexLabel(1, "Dea"); SetIndexLabel(2, "Macd"); SetIndexLabel(3, "Macd"); return (0); } int start() { int li_8 = IndicatorCounted(); if (li_8 < 0) return (-1); if (li_8 > 0) li_8--; int li_4 = Bars - li_8; for (int li_0 = 0; li_0 < li_4; li_0++) g_ibuf_88[li_0] = iMA(NULL, 0, FastEMA, 0, MODE_EMA, PRICE_CLOSE, li_0) - iMA(NULL, 0, SlowEMA, 0, MODE_EMA, PRICE_CLOSE, li_0); for (li_0 = 0; li_0 < li_4; li_0++) g_ibuf_92[li_0] = iMAOnArray(g_ibuf_88, Bars, SignalSMA, 0, MODE_SMA, li_0); for (li_0 = 0; li_0 < li_4; li_0++) { g_ibuf_96[li_0] = 2.0 * (g_ibuf_88[li_0] - g_ibuf_92[li_0]); if (g_ibuf_96[li_0] > 0.0) g_ibuf_100[li_0] = g_ibuf_96[li_0]; } return (0); }