doubleEMA() function
The doubleEMA()
function calculates the exponential moving average of values in the _value
column grouped into n
number of points, giving more weight to recent data at double the rate of exponentialMovingAverage()
.
*Function type: Transformation*
doubleEMA(n: 5)
Double exponential moving average rules
- A double exponential moving average is defined as
doubleEMA = 2 * EMA_N - EMA of EMA_N
.EMA
is an exponential moving average.N = n
is the period used to calculate the EMA.
- A true double exponential moving average requires at least
2 * n - 1
values. If not enough values exist to calculate the double EMA, it returns aNaN
value. doubleEMA()
inherits all exponential moving average rules.
Parameters
n
The number of points to average.
*Data type: Integer*
Examples
Calculate a five point double exponential moving average
from(bucket: "example-bucket"):
|> range(start: -12h)
|> doubleEMA(n: 5)
Function definition
doubleEMA = (n, tables=<-) =>
tables
|> exponentialMovingAverage(n:n)
|> duplicate(column:"_value", as:"ema")
|> exponentialMovingAverage(n:n)
|> map(fn: (r) => ({r with _value: 2.0 * r.ema - r._value}))
|> drop(columns: ["ema"])
Related articles
- movingAverage() function
- tripleEMA() function
- timedMovingAverage() function
- exponentialMovingAverage() function
- InfluxQL DOUBLE_EXPONENTIAL_MOVING_AVERAGE()