docs-v2/content/flux/v0/stdlib/universe/tripleexponentialderivative.md

3.1 KiB

title description menu weight flux/v0/tags introduced
tripleExponentialDerivative() function `tripleExponentialDerivative()` returns the triple exponential derivative (TRIX) values using `n` points.
flux_v0_ref
name parent identifier
tripleExponentialDerivative universe universe/tripleExponentialDerivative
101
transformations
0.40.0

tripleExponentialDerivative() returns the triple exponential derivative (TRIX) values using n points.

Triple exponential derivative, commonly referred to as “TRIX,” 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
(<-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. {{% /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

import "sampledata"

sampledata.float()
    |> tripleExponentialDerivative(n: 2)