exponentialMovingAverage() function
The exponentialMovingAverage()
function calculates the exponential moving average of values in the _value
column grouped into n
number of points, giving more weight to recent data.
*Function type: Aggregate*
exponentialMovingAverage(n: 5)
Exponential moving average rules
- The first value of an exponential moving average over
n
values is the algebraic mean ofn
values. - Subsequent values are calculated as
y(t) = x(t) * k + y(t-1) * (1 - k)
, where:y(t)
is the exponential moving average at timet
.x(t)
is the value at timet
.k = 2 / (1 + n)
.
- The average over a period populated by only
null
values isnull
. - Exponential moving averages skip
null
values.
Parameters
n
The number of points to average.
*Data type: Integer*
Examples
Calculate a five point exponential moving average
from(bucket: "example-bucket"):
|> range(start: -12h)
|> exponentialMovingAverage(n: 5)
Table transformation with a two point exponential moving average
Input table:
_time | tag | _value |
---|---|---|
0001 | tv | null |
0002 | tv | 10 |
0003 | tv | 20 |
Query:
// ...
|> exponentialMovingAverage(n: 2)
Output table:
_time | tag | _value |
---|---|---|
0002 | tv | 10 |
0003 | tv | 16.67 |
Related articles
- movingAverage() function
- timedMovingAverage() function
- doubleEMA() function
- tripleEMA() function
- InfluxQL EXPONENTIAL_MOVING_AVERAGE()