# tripleEMA() function

`tripleEMA()` returns the triple exponential moving average (TEMA) of values in the `_value` column.

`tripleEMA` uses `n` number of points to calculate the TEMA, giving more weight to recent data with less lag than `exponentialMovingAverage()` and `doubleEMA()`.

#### Triple exponential moving average rules

• A triple exponential moving average is defined as `tripleEMA = (3 * EMA_1) - (3 * EMA_2) + EMA_3`.
• `EMA_1` is the exponential moving average of the original data.
• `EMA_2` is the exponential moving average of `EMA_1`.
• `EMA_3` is the exponential moving average of `EMA_2`.
• A true triple exponential moving average requires at least requires at least `3 * n - 2` values. If not enough values exist to calculate the TEMA, it returns a `NaN` value.
• `tripleEMA()` inherits all `exponentialMovingAverage()` rules.
##### Function type signature
``````(<-tables: stream[{A with _value: B}], n: int) => stream[C] where B: Numeric, C: Record
``````
For more information, see Function type signatures.

## Parameters

### n

(Required) Number of points to use in the calculation.

### tables

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

## Examples

### Calculate a three point triple exponential moving average

``````import "sampledata"

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

``````

View example input and ouput