The zero-lag exponential moving average (ZLEMA) is a variation of the EMA (see Exponential Moving Average) which adds a momentum term aiming to reduce lag in the average so as to track current prices more closely. For a given N-day period the formula is
ZLEMA = EMA of (close + (close-close[lag]))
Where the “lag” period is (N-1)/2. A plain EMA applied to straight line points ends up always being the close at (N-1)/2 days ago. So the idea of adding in this difference “close - close[lag]” is to compensate for that lag, to make the ZLEMA track a straight line exactly. Of course real data is rarely a straight line, but the principle is to push the ZLEMA towards approximately the current close.
The calculation still ends up as various weights on each past price. The effect of the momentum term is to make recent prices “over weight” and thus tracked closely, and with negative weights on past terms. There’s a sudden jump in the weights at the momentum lag point. For example the following graph is the weights for N=15 (lag point 7).
The EMA lag on a straight line can be calculated easily using the power formula for the EMA (see Exponential Moving Average), applied to an infinite sequence of prices going downwards by 1 each day and reaching 0 at today. On non straight line sequences the lag is not a simple (N-1)/2, but will vary according to shape, period of cyclical components, etc.
Copyright 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009 Kevin Ryde
Chart is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3, or (at your option) any later version.