// код причесал PAZITIV // квадратики, крестики, стрелочки вверх-вниз #property indicator_separate_window #property indicator_minimum 0.0 #property indicator_maximum 1.0 #property indicator_buffers 8 #property indicator_color1 Blue #property indicator_color2 Red #property indicator_color3 Aqua #property indicator_color4 Gold #property indicator_color5 Aqua #property indicator_color6 Gold #property indicator_color7 Aqua #property indicator_color8 Gold double g_ibuf_124[]; double g_ibuf_128[]; double g_ibuf_132[]; double g_ibuf_136[]; double g_ibuf_140[]; double g_ibuf_144[]; double g_ibuf_148[]; double g_ibuf_152[]; int init() { SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 120); SetIndexBuffer(0, g_ibuf_124); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 120); SetIndexBuffer(1, g_ibuf_128); SetIndexStyle(2, DRAW_ARROW); SetIndexArrow(2, SYMBOL_STOPSIGN); SetIndexBuffer(2, g_ibuf_132); SetIndexStyle(3, DRAW_ARROW); SetIndexArrow(3, SYMBOL_STOPSIGN); SetIndexBuffer(3, g_ibuf_136); SetIndexStyle(4, DRAW_ARROW); SetIndexArrow(4, 110); SetIndexBuffer(4, g_ibuf_140); SetIndexStyle(5, DRAW_ARROW); SetIndexArrow(5, 110); SetIndexBuffer(5, g_ibuf_144); SetIndexStyle(6, DRAW_ARROW, STYLE_SOLID, 1); SetIndexArrow(6, SYMBOL_ARROWUP); SetIndexBuffer(6, g_ibuf_148); SetIndexStyle(7, DRAW_ARROW, STYLE_SOLID, 1); SetIndexArrow(7, SYMBOL_ARROWDOWN); SetIndexBuffer(7, g_ibuf_152); IndicatorShortName("Indicator_1"); return (0); } int deinit() { return (0); } int start() { double EMA5Cur; double EMA5Forward; double EMA5Prev; double EMA15Cur; double EMA15Forward; double EMA15Prev; double MACD8179Main; double MACD8179Signal; double ADX14PlusDI; double ADX14MinusDI; double RSI14; double Demarker14; double Momentum14; double ForceIndex14; int TotalBars = IndicatorCounted(); if (TotalBars < 0) return (-1); if (TotalBars > 0) TotalBars--; int li_116 = Bars - TotalBars; for (int IndicatorBar = li_116 - 1; IndicatorBar >= 0; IndicatorBar--) { EMA5Cur = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar); EMA5Forward = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar + 1); EMA5Prev = iMA(NULL, 0, 5, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar - 1); EMA15Cur = iMA(NULL, 0, 15, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar); EMA15Forward = iMA(NULL, 0, 15, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar + 1); EMA15Prev = iMA(NULL, 0, 15, 0, MODE_EMA, PRICE_CLOSE, IndicatorBar - 1); MACD8179Main = iMACD(Symbol(), Period(), 8, 17, 9, PRICE_CLOSE, MODE_MAIN, IndicatorBar); MACD8179Signal = iMACD(Symbol(), Period(), 8, 17, 9, PRICE_CLOSE, MODE_SIGNAL, IndicatorBar); ADX14PlusDI = iADX(NULL, 0, 14, PRICE_CLOSE, MODE_PLUSDI, IndicatorBar); ADX14MinusDI = iADX(NULL, 0, 14, PRICE_CLOSE, MODE_MINUSDI, IndicatorBar); RSI14 = iRSI(NULL, 0, 14, PRICE_CLOSE, IndicatorBar); Demarker14 = iDeMarker(NULL, 0, 14, IndicatorBar); Momentum14 = iMomentum(NULL, 0, 14, PRICE_CLOSE, IndicatorBar); ForceIndex14 = iForce(NULL, 0, 14, MODE_EMA, PRICE_CLOSE, IndicatorBar); if (Momentum14 > 100.0) g_ibuf_124[IndicatorBar] = 0.05; if (Momentum14 <= 100.0) g_ibuf_128[IndicatorBar] = 0.05; if (Demarker14 > 0.5 && ForceIndex14 > 0.0) g_ibuf_140[IndicatorBar] = 0.22; if (Demarker14 < 0.5 < 50 && ForceIndex14 < 0.0) g_ibuf_144[IndicatorBar] = 0.22; if (RSI14 > 50.0 && MACD8179Main > MACD8179Signal && ADX14PlusDI > ADX14MinusDI) g_ibuf_132[IndicatorBar] = 0.47; if (RSI14 < 50.0 && MACD8179Main < MACD8179Signal && ADX14PlusDI < ADX14MinusDI) g_ibuf_136[IndicatorBar] = 0.47; if (EMA5Cur > EMA15Cur && EMA5Forward < EMA15Forward && EMA5Prev > EMA15Prev) g_ibuf_148[IndicatorBar] = 0.8; if (EMA5Cur < EMA15Cur && EMA5Forward > EMA15Forward && EMA5Prev < EMA15Prev) g_ibuf_152[IndicatorBar] = 0.8; } return (0); }