Documentation

exponentialMovingAverage() function

exponentialMovingAverage() calculates the exponential moving average of n number of values in the _value column giving more weight to more recent data.

Exponential moving average rules

  • The first value of an exponential moving average over n values is the algebraic mean of n 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 time t.
    • x(t) is the value at time t.
    • k = 2 / (1 + n).
  • The average over a period populated by only null values is null.
  • Exponential moving averages skip null values.
Function type signature
(<-tables: stream[{A with _value: B}], n: int) => stream[{A with _value: B}] where B: Numeric
For more information, see Function type signatures.

Parameters

n

(Required) Number of values to average.

tables

Input data. Default is piped-forward data (<-).

Examples

Calculate a three point exponential moving average

import "sampledata"

sampledata.int()
    |> exponentialMovingAverage(n: 3)

View example input and ouput

Calculate a three point exponential moving average with null values

import "sampledata"

sampledata.int(includeNull: true)
    |> exponentialMovingAverage(n: 3)

View example input and ouput


Was this page helpful?

Thank you for your feedback!


Upgrade to InfluxDB Cloud or InfluxDB 2.0!

InfluxDB Cloud and InfluxDB OSS 2.0 ready for production.