#property indicator_chart_window #property indicator_buffers 2 #property indicator_color1 Yellow #property indicator_color2 Yellow #import double gda_76[]; double gda_80[]; int gi_84 = 5; int gi_88 = 5; void init() { SetIndexBuffer(0, gda_76); SetIndexBuffer(1, gda_80); SetIndexEmptyValue(0, 0); SetIndexEmptyValue(1, 0); SetIndexStyle(0, DRAW_ARROW); SetIndexArrow(0, 164); SetIndexStyle(1, DRAW_ARROW); SetIndexArrow(1, 164); } void start() { int li_0; double ld_4; int li_12 = IndicatorCounted(); if (li_12 >= 0) { if (li_12 > 0) li_12--; li_0 = Bars - li_12; ld_4 = 0; for (int li_16 = 1; li_16 <= 20; li_16++) ld_4 += 0.3 * (High[li_16] - Low[li_16]) / 20.0; for (li_16 = gi_88 + 1; li_16 <= li_0 + gi_84; li_16++) { gda_76[li_16] = 0; gda_80[li_16] = 0; if (f0_0(li_16)) gda_76[li_16] = High[li_16] + ld_4; if (f0_1(li_16)) gda_80[li_16] = Low[li_16] - ld_4; } } } int f0_0(int ai_0) { for (int li_4 = 1; li_4 <= gi_84; li_4++) { if (ai_0 + li_4 >= Bars) return (0); if (High[ai_0] < High[ai_0 + li_4]) return (0); } for (li_4 = 1; li_4 <= gi_88; li_4++) { if (ai_0 - li_4 < 0) return (0); if (High[ai_0] < High[ai_0 - li_4]) return (0); } return (1); } int f0_1(int ai_0) { for (int li_4 = 1; li_4 <= gi_84; li_4++) { if (ai_0 + li_4 >= Bars) return (0); if (Low[ai_0] > Low[ai_0 + li_4]) return (0); } for (li_4 = 1; li_4 <= gi_88; li_4++) { if (ai_0 - li_4 < 0) return (0); if (Low[ai_0] > Low[ai_0 - li_4]) return (0); } return (1); }