relativeStrengthIndex() function

The relativeStrengthIndex() function measures the relative speed and change of values in an input table.

Function type: Aggregate

relativeStrengthIndex(
  n: 5,
  columns: ["_value"]
)
Relative strength index rules:
  • The general equation for calculating a relative strength index (RSI) is RSI = 100 - (100 / (1 + (AVG GAIN / AVG LOSS))).
  • For the first value of the RSI, AVG GAIN and AVG LOSS are averages of the n period.
  • For subsequent calculations:
    • AVG GAIN = ((PREVIOUS AVG GAIN) * (n - 1)) / n
    • AVG LOSS = ((PREVIOUS AVG LOSS) * (n - 1)) / n
  • relativeStrengthIndex() ignores null values.

Parameters

n

The number of values to use to calculate the RSI.

Data type: Integer

columns

Columns to operate on. Defaults to ["_value"].

Data type: Array of Strings

Examples

Calculate a five point relative strength index

from(bucket: "telegraf/autogen"):
  |> range(start: -12h)
  |> relativeStrengthIndex(n: 5)

Table transformation with a ten point RSI

Input table:
_time A B tag
0001 1 1 tv
0002 2 2 tv
0003 3 3 tv
0004 4 4 tv
0005 5 5 tv
0006 6 6 tv
0007 7 7 tv
0008 8 8 tv
0009 9 9 tv
0010 10 10 tv
0011 11 11 tv
0012 12 12 tv
0013 13 13 tv
0014 14 14 tv
0015 15 15 tv
0016 16 16 tv
0017 17 null tv
0018 18 17 tv
Query:
// ...
  |> relativeStrengthIndex(
    n: 10,
    columns: ["A", "B"]
  )
Output table:
_time A B tag
0011 100 100 tv
0012 100 100 tv
0013 100 100 tv
0014 100 100 tv
0015 100 100 tv
0016 90 90 tv
0017 81 90 tv
0018 72.9 81 tv

RELATIVE_STRENGTH_INDEX

This documentation is open source. See a typo? Please, open an issue.


Need help getting up and running? Get Support