Whenever John Ehlers writes about a new indicator, I crack it open and wire it straight into C for the Zorro platform. Or rather, I let ChatGPT do most of the work. The One Euro Filter is a minimalistic, yet surprisingly effective low-latency smoother that reacts instantly to volatility with less lag of the usual adaptive averages. This is achieved by dynamically adapting its time period.
This is the OneEurFilter function in C, converted straight from Ehlers’ EasyLanguage code, the comments left in place:
var OneEurFilter(vars Data, int PeriodMin, var Factor)
{
vars SmoothedDX = series(Data[0],2),
Smoothed = series(Data[0],2);
var Alpha = 2*PI/(4*PI + 10);
//EMA the Delta Price
SmoothedDX[0] = Alpha*(Data[0]-Data[1]) + (1.-Alpha)*SmoothedDX[1];
//Adjust cutoff period based on a fraction of the rate of change
var Cutoff = PeriodMin + Factor*abs(SmoothedDX[0]);
//Compute adaptive alpha
Alpha = 2*PI/(4*PI + Cutoff);
//Adaptive smoothing
return Smoothed[0] = Alpha*Data[0] + (1.-Alpha)*Smoothed[1];
}
This is how the OneEurFilter (blue line) looks when applied on a ES chart:

The price curve is well reproduced with almost no lag. Cheap, efficient, low-latency — 1 Euro well spent. The code can be downloaded from the 2026 script repository.