#property indicator_separate_window #property indicator_buffers 2 #property indicator_color1 Aqua #property indicator_color2 Navy extern int ADX_Bars = 12; extern int CCIPeriod = 14; double g_ibuf_84[]; double gda_unused_88[]; double g_ibuf_92[]; double g_ibuf_96[]; double g_ibuf_100[]; double g_ibuf_104[]; double g_ibuf_108[]; double g_ibuf_112[]; double g_ibuf_116[]; int init() { IndicatorBuffers(8); SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, g_ibuf_84); SetIndexStyle(1, DRAW_HISTOGRAM); SetIndexBuffer(1, g_ibuf_116); SetIndexBuffer(2, g_ibuf_92); SetIndexBuffer(3, g_ibuf_96); SetIndexBuffer(4, g_ibuf_100); SetIndexBuffer(5, g_ibuf_104); SetIndexBuffer(6, g_ibuf_108); SetIndexBuffer(7, g_ibuf_112); string ls_0 = "ADXVMA6_CCi"; IndicatorShortName(ls_0); SetIndexLabel(0, "ADXVMA6_CCi"); SetIndexDrawBegin(0, ADX_Bars + 4); SetLevelStyle(2, 1, White); SetLevelValue(0, 100); SetLevelValue(1, 50); SetLevelValue(2, 0); SetLevelValue(3, -50); SetLevelValue(4, -100); if (ADX_Bars < 2) ADX_Bars = 2; return (0); } int start() { double ld_16; double ld_24; double ld_32; double ld_unused_40; double ld_48; double ld_56; double ld_64; double ld_72; int l_ind_counted_12 = IndicatorCounted(); double ld_80 = ADX_Bars; double ld_88 = ADX_Bars; double ld_96 = ADX_Bars; double ld_104 = ADX_Bars; if (l_ind_counted_12 < 0) return (-1); for (int li_4 = Bars - l_ind_counted_12 - 1; li_4 > Bars - 4 - ADX_Bars; li_4--) { g_ibuf_84[li_4] = Close[li_4]; g_ibuf_92[li_4] = 0; g_ibuf_96[li_4] = 0; g_ibuf_100[li_4] = 0; g_ibuf_104[li_4] = 0; g_ibuf_108[li_4] = 0; } for (li_4 = li_4; li_4 >= 0; li_4--) { g_ibuf_92[li_4] = 0; g_ibuf_96[li_4] = 0; if (Close[li_4] > Close[li_4 + 1]) g_ibuf_92[li_4] = Close[li_4] - (Close[li_4 + 1]); else g_ibuf_96[li_4] = Close[li_4 + 1] - Close[li_4]; g_ibuf_92[li_4] = ((ld_80 - 1.0) * (g_ibuf_92[li_4 + 1]) + g_ibuf_92[li_4]) / ld_80; g_ibuf_96[li_4] = ((ld_80 - 1.0) * (g_ibuf_96[li_4 + 1]) + g_ibuf_96[li_4]) / ld_80; ld_16 = g_ibuf_92[li_4] + g_ibuf_96[li_4]; if (ld_16 > 0.0) { g_ibuf_100[li_4] = g_ibuf_92[li_4] / ld_16; g_ibuf_104[li_4] = g_ibuf_96[li_4] / ld_16; } else { g_ibuf_100[li_4] = 0; g_ibuf_104[li_4] = 0; } g_ibuf_100[li_4] = ((ld_88 - 1.0) * (g_ibuf_100[li_4 + 1]) + g_ibuf_100[li_4]) / ld_88; g_ibuf_104[li_4] = ((ld_88 - 1.0) * (g_ibuf_104[li_4 + 1]) + g_ibuf_104[li_4]) / ld_88; ld_24 = g_ibuf_100[li_4] - g_ibuf_104[li_4]; if (ld_24 < 0.0) ld_24 = -ld_24; ld_32 = g_ibuf_100[li_4] + g_ibuf_104[li_4]; ld_unused_40 = 0; if (ld_32 > 0.0) g_ibuf_108[li_4] = ld_24 / ld_32; else g_ibuf_108[li_4] = 0; g_ibuf_108[li_4] = ((ld_96 - 1.0) * (g_ibuf_108[li_4 + 1]) + g_ibuf_108[li_4]) / ld_96; if (g_ibuf_108[li_4] > g_ibuf_108[li_4 + 1]) { ld_64 = g_ibuf_108[li_4]; ld_72 = g_ibuf_108[li_4 + 1]; } else { ld_64 = g_ibuf_108[li_4 + 1]; ld_72 = g_ibuf_108[li_4]; } for (int li_8 = 1; li_8 < ADX_Bars; li_8++) { if (g_ibuf_108[li_4 + li_8 + 1] > ld_64) ld_64 = g_ibuf_108[li_4 + li_8 + 1]; if (g_ibuf_108[li_4 + li_8 + 1] < ld_72) ld_72 = g_ibuf_108[li_4 + li_8 + 1]; } ld_56 = ld_64 - ld_72; ld_48 = 0; if (ld_56 > 0.0) ld_48 = (g_ibuf_108[li_4] - ld_72) / ld_56; g_ibuf_112[li_4] = iCCI(NULL, 0, CCIPeriod, PRICE_CLOSE, li_4); g_ibuf_84[li_4] = ((ld_104 - ld_48) * (g_ibuf_84[li_4 + 1]) + ld_48 * g_ibuf_112[li_4]) / ld_104; g_ibuf_116[li_4] = 0; if (g_ibuf_84[li_4] > 0.0) g_ibuf_116[li_4] = g_ibuf_84[li_4]; if (g_ibuf_84[li_4] < 0.0) g_ibuf_116[li_4] = g_ibuf_84[li_4]; } return (0); }