Zero lag how to use it

hi all

1- what is the zero lag for the moving average as ( EMA ,TEMA ,Wilders ,.......) ?

2- is zero lag can be used with indicator like ( MFI , ADX ,...........) ?

thank you

There is no such thing as "zero lag" averaging at least when you want filter that is physically realizable (i.e. causal - not looking into the future). This name is misleading as all averaging inherently leads to lag (as you need more data than one sample to produce output). So unless you look into the future, this means delay.

But of course there are some people who think that "catchy" although nonsensical name is a good thing, so if you google you will find this:

1 Like

thank you for clearing the idea

Quite obviously their "Zero lag" average has SIGNIFICANT lag. If you look at the chart of that so called "Zero lag" average you will see that 13 period ZLEMA has delay of 4-5 bars
and much worse averaging properties than EMA it is derived from. What this "zero lag" average is doing is really high-pass filtering first (calculating the difference in input data) and then low-pass filtering using regular EMA. This essentially worsens smoothing. There is no such thing as free lunch, you either have better smoothing and more delay, or worse smoothing and less delay (but NOT zero).

Unfortunately in technical analysis there are plenty of people who sell such nonsense as "zero lag" and naive crowd is buying it. It's a pity that people who apparently have engineering background like Ehlers are involved with such questionable stuff.

// so called "Zero-lag" average.
function ZLEMA( input, period )
   Lag  = (Period - 1 )/2;
   EmaData = 2* input - Ref( input, -Lag );
   return EMA( EmaData, Period );

Plot( Close, "Price", colorDefault, styleLine );
Plot( ZLEMA( Close, 13 ), "ZLEMA", colorRed );



I agree with you
But there is a benefit if it used correctly with modification

This topic was automatically closed 100 days after the last reply. New replies are no longer allowed.