TradingView
4867 views
The Zero lag exponential moving average ( ZLEMA ) indicator was created by John Ehlers and Ric Way.

The formula for a given N-Day period and for a given Data series is:

• Lag = (Period-1)/2

Ema Data = {Data+(Data-Data(Lag days ago))

ZLEMA = EMA (EmaData,Period)

The idea is do a regular exponential moving average ( EMA ) calculation but on a de-lagged data instead of doing it on the regular data. Data is de-lagged by removing the data from "lag" days ago thus removing (or attempting to) the cumulative effect of the moving average.

Correcting For Error

Zero Lag (Well, Almost)

by John Ehlers and Ric Way

A little lag is a good thing. Here’s how you can remove a selected amount from an exponential moving average and use the filter in an effective trading strategy.

All smoothing filters and moving averages have lag. The lag is necessary because the smoothing is done using past data. Therefore, the averaging includes the effects of the data as of several bars ago. In this article we show you how to remove a selected amount of lag from an exponential moving average ( Ema ). Removing all the lag is not necessarily a good thing, because with no lag, the indicator would just track out the price you were filtering; the amount of lag removed is a tradeoff with the amount of smoothing you are willing to forgo. We show you the effects of lag removal in an indicator and then use the filter in an effective trading strategy.

The EMA
An exponential moving average ( Ema ) is computed by taking a fraction of the current price and adding to it the quantity (1 - fraction) times the previously computed value of the Ema . That fraction is called the “smoothing factor” and is commonly called α (alpha), and alpha is always less than 1. The equation for an Ema can be written as:

EMA = α * Price + (1 - α) * EMA;
Release Notes: Now u can add periods to ZLEMA and EMA...
Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in a publication is governed by House Rules. You can favorite it to use it on a chart.

Want to use this script on a chart?

## Comments How would i add an alert when it crosses? sorry i'm fairly new to trading view
Reply RAJATAMIL
@Nadar, sorry mate, already found it cheers anyway. what timeframe would you say this works best on?
Reply
Profile Profile Settings Account and Billing Referred friends Coins My Support Tickets Help Center Private Messages Chat Sign Out