extern int Viscosity = 13; extern int Sedimentation = 50; extern double Threshold_level = 1.3; extern bool lag_supressor = TRUE; double gd_96 = 0.5; double g_ibuf_104[]; double g_ibuf_108[]; double g_ibuf_112[]; double gda_116[]; int init() { SetIndexStyle(0, DRAW_LINE); SetIndexBuffer(0, g_ibuf_104); SetIndexStyle(1, DRAW_SECTION); SetIndexBuffer(1, g_ibuf_108); SetIndexStyle(2, DRAW_LINE); SetIndexBuffer(2, g_ibuf_112); ArrayResize(gda_116, Bars); ArrayInitialize(gda_116, 0.0); return (0); } int deinit() { return (0); } int start() { double l_iatr_20; double ld_28; double ld_36; double ld_44; double ld_52; double ld_60; double ld_0 = 0; int l_ind_counted_8 = IndicatorCounted(); int li_12 = Bars - l_ind_counted_8; if (li_12 > Sedimentation + 5) li_12 -= Sedimentation; for (int li_16 = li_12; li_16 >= 0; li_16--) { l_iatr_20 = iATR(NULL, 0, Viscosity, li_16); ld_28 = gda_116[li_16 + 1]; ld_36 = gda_116[li_16 + 3]; ld_44 = NormalizeDouble(l_iatr_20, Digits); if (lag_supressor) ld_0 = l_iatr_20 / iATR(NULL, 0, Sedimentation, li_16) + gd_96 * (ld_28 - ld_36); else ld_0 = l_iatr_20 / iATR(NULL, 0, Sedimentation, li_16); ld_52 = iStdDev(NULL, 0, Viscosity, 0, MODE_LWMA, PRICE_TYPICAL, li_16); ld_52 /= iStdDev(NULL, 0, Sedimentation, 0, MODE_LWMA, PRICE_TYPICAL, li_16); ld_60 = Threshold_level; ld_60 -= ld_52; if (ld_0 > ld_60) { g_ibuf_112[li_16] = ld_0; g_ibuf_108[li_16] = ld_0; IndicatorShortName("Reinhard/Noise: TRADE / ATR= " + DoubleToStr(ld_44, Digits) + " values:"); } else { g_ibuf_112[li_16] = ld_0; g_ibuf_108[li_16] = EMPTY_VALUE; IndicatorShortName("Reinhard/Noise: DO NOT trade / ATR= " + DoubleToStr(ld_44, Digits) + " values:"); } gda_116[li_16] = ld_0; g_ibuf_104[li_16] = ld_60; } return (0); }