Zero-lag EMA cross
Moving-average crossovers are slow because averages lag price. A zero-lag, or error-correcting, EMA adds a correction term that pulls the average toward the latest price, so it turns sooner. This strategy pits that fast line against an ordinary 69-bar EMA on 15-minute NIFTY futures bars. It is always in the market: long while the zero-lag line is above, short while it is below.How it trades
Results
PRE-BUILT · DEFAULTSWhere it made and lost money
This is a classic trend follower, and in this test it lived or died by whether NIFTY moved. Trades during which NIFTY fell more than 1% made ₹4,11,460 over 17 trades, and those during a rise of more than 1% made ₹1,20,450: the system caught the swing and stayed with it. The 57 trades during which NIFTY moved less than 1% lost ₹3,63,391, winning only 21%, because in a range the two averages cross back and forth and each reversal is a small loss. Entries on trend days made ₹1,04,801, while choppy days lost ₹81,061. Calm evenings with India VIX below 11.5 made ₹1,51,018.
About this strategy
- Build 15-minute bars of the NIFTY near-month future from 09:15, adjusted so that monthly rolls do not create false jumps.
- Compute a 69-bar EMA and the zero-lag EMA, whose correction gain is chosen each bar between −2.2 and +2.2 to keep it as close to price as possible.
- When a bar closes with the zero-lag EMA crossing above the EMA, buy one lot at the next price; when it crosses below, sell one lot.
- On every new cross, close the current position and take the opposite side.
- On the monthly futures expiry day, close at 15:15 and reopen the same side in the new contract next session.
- No target and, by default, no stop.
Why traders use it
Trend followers want to catch big moves early and stay in them. Reducing the lag of the fast average means entering turns sooner, and comparing it with a slower average keeps the system on the right side of sustained swings. An always-in design never misses a move. The trade-off is well known: in sideways markets the lines cross often, and each crossing costs a little. Traders accept those small losses in exchange for occasional large wins.
The year in plain words
On NIFTY futures from 1 Oct 2025 to 30 Sep 2026 with default settings, the system made 116 trades, including 12 monthly rolls, and won only 30%. A few large wins, the biggest ₹1,36,923, offset many small losses, leaving ₹17,974 before costs and a profit factor of 1.02. The swings were large: March made ₹1,44,656 and September ₹89,570, while May lost ₹1,07,107 and February ₹95,840, with a ₹2,57,575 maximum drawdown. After ₹20 per order and bid-ask slippage, the result became an ₹18,125 loss.
What the settings do
Risks
- Being always in means sitting through every adverse swing until the next cross, with no stop by default.
- Win rates around 30% bring long losing streaks, up to nine in a row in this test.
- Each reversal costs two orders' worth of spread and brokerage, which turned this year's small profit into a loss.
- Drawdowns of over ₹2.5 lakh on one lot need deep pockets and patience.
Who it suits
Systematic futures traders who accept low win rates and large drawdowns in exchange for riding big moves, with futures margin and the discipline to follow every reversal.
Questions traders ask
What is a zero-lag EMA?
It is an exponential moving average with an error-correction term. Each bar, the average is nudged toward the latest price by a gain chosen to minimise the gap between the two. The result turns faster than a normal EMA while still smoothing noise.
Is the zero-lag EMA crossover strategy profitable?
In this backtest on NIFTY futures from 1 Oct 2025 to 30 Sep 2026 it made ₹17,974 before costs but lost ₹18,125 after ₹20 per order and bid-ask slippage (statutory charges not included). Past results do not guarantee future ones.
Why does a crossover system lose in sideways markets?
In a range, price keeps crossing back and forth around the averages, so the lines cross often. Each cross reverses the position after only a small move, and most of those reversals lose a little, especially once costs are counted.
Why adjust prices for the monthly roll?
The next month's future trades at a different price from the expiring one. Without adjustment, that jump at each rollover could look like a sudden move and trigger a false cross. Adjusting the indicator series removes it, while trades still use real prices.