#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Blue #property indicator_color2 Red double G_ibuf_76[]; double G_ibuf_80[]; double G_ma_method_84 = 3.0; double G_ma_method_92 = 3.0; extern int LevelEn = 3; extern int TradeTer = 3; int init() { SetIndexStyle(0, DRAW_ARROW, EMPTY); SetIndexArrow(0, 233); SetIndexBuffer(0, G_ibuf_76); SetIndexStyle(1, DRAW_ARROW, EMPTY); SetIndexArrow(1, 234); SetIndexBuffer(1, G_ibuf_80); return (0); } int deinit() { return (0); } int start() { int Li_8; double ima_12; double ima_20; double ima_28; double ima_36; double ima_44; double ima_52; double Ld_60; double Ld_68; int Li_76 = IndicatorCounted(); if (Li_76 < 0) return (-1); if (Li_76 > 0) Li_76--; int Li_0 = Bars - Li_76; for (int Li_4 = 0; Li_4 <= Li_0; Li_4++) { Li_8 = Li_4; Ld_60 = 0; Ld_68 = 0; for (Li_8 = Li_4; Li_8 <= Li_4 + 9; Li_8++) Ld_68 += MathAbs(High[Li_8] - Low[Li_8]); Ld_60 = Ld_68 / 10.0; ima_12 = iMA(NULL, 0, LevelEn, 0, G_ma_method_84, PRICE_CLOSE, Li_4 + 1); ima_28 = iMA(NULL, 0, LevelEn, 0, G_ma_method_84, PRICE_CLOSE, Li_4 + 2); ima_44 = iMA(NULL, 0, LevelEn, 0, G_ma_method_84, PRICE_CLOSE, Li_4); ima_20 = iMA(NULL, 0, TradeTer, 0, G_ma_method_92, PRICE_OPEN, Li_4 + 1); ima_36 = iMA(NULL, 0, TradeTer, 0, G_ma_method_92, PRICE_OPEN, Li_4 + 2); ima_52 = iMA(NULL, 0, TradeTer, 0, G_ma_method_92, PRICE_OPEN, Li_4); if (ima_12 > ima_20 && ima_28 < ima_36 && ima_44 > ima_52) G_ibuf_76[Li_4] = Low[Li_4] - 0.3 * Ld_60; else if (ima_12 < ima_20 && ima_28 > ima_36 && ima_44 < ima_52) G_ibuf_80[Li_4] = High[Li_4] + 0.3 * Ld_60; } return (0); }