All indicators

MCNMA - McNicholl EMA

A low-lag average: twice a triple exponential average minus the triple exponential average of it, built from six cascaded stages.

BTCUSD1h
Fixed data to Oct 6, 2026, UTC
Loading the chart

MCNMA chains six exponential averages that all use the weight 2 / (period + 1). The first three form a triple exponential average of the source, 3 * e1 - 3 * e2 + e3. That result feeds the next three, which form a triple exponential average of the first one.

The line is twice the first triple average minus the second. The second is a smoothed copy of the first, so the difference between them estimates the lag the smoothing adds, and subtracting it pushes the line back toward price.

All six stages are seeded with the first source value, so the line answers from the first bar. An absent source reads as zero.

How to read MCNMA - McNicholl EMA

MCNMA is a very responsive trend line. It turns close to where price turns and stays close to price in a steady trend, so it suits faster crossover systems and trailing references.

The lag removal also amplifies noise and makes the line overshoot after sharp moves. On noisy charts a longer period helps, and a cross of price through the line is stronger evidence when the line itself has turned.

Settings

Source
The price series the average follows. Close is the usual choice; hl2 or another blend smooths out closes that jump around.
Period
Length of every exponential stage. A longer period gives a smoother, slower line that overshoots less.

Frequently asked questions

How does it remove lag?

It subtracts a smoothed copy of a triple exponential average from twice that average. The difference between the two is an estimate of the lag, so taking it out brings the line back toward price.

Why does it overshoot?

Removing lag means projecting recent movement forward. After a sharp move that reverses, the projection runs past price for a few bars.

Write your own in OpenScript

Every study here is plain OpenScript. Change a setting, combine two, or turn one into a strategy, then backtest it in /trading and run it in sandbox trading (analyzer mode in OpenAlgo) before going further.