--- title: tripleExponentialDerivative() function description: > `tripleExponentialDerivative()` returns the triple exponential derivative (TRIX) values using `n` points. menu: flux_v0_ref: name: tripleExponentialDerivative parent: universe identifier: universe/tripleExponentialDerivative weight: 101 flux/v0/tags: [transformations] introduced: 0.40.0 --- `tripleExponentialDerivative()` returns the triple exponential derivative (TRIX) values using `n` points. Triple exponential derivative, commonly referred to as “[TRIX](https://en.wikipedia.org/wiki/Trix_(technical_analysis)),” is a momentum indicator and oscillator. A triple exponential derivative uses the natural logarithm (log) of input data to calculate a triple exponential moving average over the period of time. The calculation prevents cycles shorter than the defined period from being considered by the indicator. `tripleExponentialDerivative()` uses the time between `n` points to define the period. Triple exponential derivative oscillates around a zero line. A positive momentum **oscillator** value indicates an overbought market; a negative value indicates an oversold market. A positive momentum **indicator** value indicates increasing momentum; a negative value indicates decreasing momentum. #### Triple exponential moving average rules - A triple exponential derivative is defined as: - `TRIX[i] = ((EMA3[i] / EMA3[i - 1]) - 1) * 100` - `EMA3 = EMA(EMA(EMA(data)))` - If there are not enough values to calculate a triple exponential derivative, the output `_value` is `NaN`; all other columns are the same as the last record of the input table. - The function behaves the same way as the `exponentialMovingAverage()` function: - The function ignores `null` values. - The function operates only on the `_value` column. ##### Function type signature ```js (<-tables: stream[{A with _value: B}], n: int) => stream[{A with _value: float}] where A: Record, B: Numeric ``` {{% caption %}} For more information, see [Function type signatures](/flux/v0/function-type-signatures/). {{% /caption %}} ## Parameters ### n ({{< req >}}) Number of points to use in the calculation. ### tables Input data. Default is piped-forward data (`<-`). ## Examples ### Calculate a two-point triple exponential derivative ```js import "sampledata" sampledata.float() |> tripleExponentialDerivative(n: 2) ```