#property indicator_chart_window #property indicator_buffers 1 #property indicator_color1 White #property strict extern int period = 20; extern int bar = 3000; double G_ibuf_84[]; // E37F0136AA3FFAF149B351F6A4C948E9 int init() { IndicatorBuffers(2); SetIndexBuffer(0, G_ibuf_84); SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2); return (0); } // EA2B2676C28C0DB26D39331A336C6B92 int start() { double Ld_12; double Ld_20; double Ld_28; double Li_36; double Li_40; int Li_44; double Li_48; int Li_52; double Ld_60; int Li_8 = IndicatorCounted(); if (Li_8 < 0) return (-1); if (Li_8 > 0) Li_8--; int Li_4 = Bars - Li_8 - 1; if (Li_8 == 0 && Li_4 > bar) Li_4 = bar; if (Li_8 == 0) G_ibuf_84[Li_4 + 1] = Close[Li_4 + 1]; for (int Li_0 = Li_4; Li_0 >= 0; Li_0--) { Ld_12 = 0.0; Ld_20 = 0.0; Li_36 = FALSE; Li_40 = FALSE; Li_44 = period; Li_48 = MathCeil(period / 3.0); Li_52 = 1; for (int Li_56 = Li_0; Li_56 < Li_0 + period; Li_56++) { Ld_28 = (High[Li_56] + Low[Li_56] + Close[Li_56]) / 3.0; Ld_12 += Ld_28 * MathPow(Li_44, 2.0); Li_36 = Li_36 + MathPow(Li_44, 2.0); if (Li_52 <= Li_48) { Ld_20 = Ld_12; Li_40 = Li_36; } Li_44--; Li_52++; } Ld_60 = 3.0 * (Ld_20 / Li_40) - 2.0 * (Ld_12 / Li_36); G_ibuf_84[Li_0] = (2.0 * (G_ibuf_84[Li_0 + 1]) + Ld_60) / 3.0; } return (0); }