/* { Forward / Reverse EMA (c) 2017 John F. Ehlers Code converted to AFL from EasyLanguage by Jani T - thanks jani! } Inputs: AA(.1); Vars: CC(.9), RE1(0), RE2(0), RE3(0), RE4(0), RE5(0), RE6(0), RE7(0), RE8(0), EMA(0), Signal(0); CC = 1 - AA; EMA = AA*Close + CC*EMA[1]; RE1 = CC*EMA + EMA[1]; RE2 = Power(CC, 2)*RE1 + RE1[1]; RE3 = Power(CC, 4)*RE2 + RE2[1]; RE4 = Power(CC, 8)*RE3 + RE3[1]; RE5 = Power(CC, 16)*RE4 + RE4[1]; RE6 = Power(CC, 32)*RE5 + RE5[1]; RE7 = Power(CC, 64)*RE6 + RE6[1]; RE8 = Power(CC, 128)*RE7 + RE7[1]; Signal = EMA - AA*RE8; Plot1(Signal); Plot2(0); */ AA = Param("AA", 0.1, 0.0, 1.0, 0.01); CC = 1 - AA; vEMA = IIR( C, AA, CC); RE1 = CC*vEMA + Ref(vEMA, -1); RE2 = (CC^2)*RE1 + Ref(RE1, -1); RE3 = (CC^4)*RE2 + Ref(RE2, -1); RE4 = (CC^8)*RE3 + Ref(RE3, -1); RE5 = (CC^16)*RE4 + Ref(RE4, -1); RE6 = (CC^32)*RE5 + Ref(RE5, -1); RE7 = (CC^64)*RE6 + Ref(RE6, -1); RE8 = (CC^128)*RE7 + Ref(RE7, -1); output = vEMA - AA*RE8; Plot(output, "Forward/Reverse EMA", styleLine);