Math Transform

Gaussian Filter Indicator

Definition: Combines lag reduction techniques with exponential moving averages calculated multiple times
Syntax: gauss(length, poles)
  • length: the number of values back used in the calculation.
  • poles: number specifying lag vs accuracy balance (from 1 to 4)
Return: Time series of averaged values
Description: Smooths out market data by filtering out high-frequency noise and retaining low-frequency trends. It uses a Gaussian function to assign weights to each data point, with more weight given to data points closer to the center of the distribution.
avgGaussValue = BTC.close -> gauss(20, 3)

Fisher Transform

Definition: Converts to a normalized Gaussian distribution.
Syntax: fisher()
Arguments: Not Applicable
Return: Time series of normalized values
Description: Calculates 0.5 * ln((1 + v)/(1 - v)) for each value v. Values must be between -1 and 1.
x = BTC.close -> rsi(30)
fisherValue = x / 100 -> fisher()

Weighted Accumulator

Definition: Combines all of the values since market open/start of day; caps outlier values and applies proprietary calculations.
Syntax: cume()
Arguments: Not Applicable
Return: Time series of accumulated values
Description: Accumulates values, resetting each 24-hour period. An Equeum proprietary action.
cumeValue = BTC.priceVolumeFactor -> cume()


Definition: Calculates median at each point in time from a list of input time series.
Syntax: median()
Arguments: Not Applicable
Return: Single time series of median values from each point in time
Description: At each point in time, all non-null values are sorted and the value in the middle of the list is used. If the number of values is even, the first value of the second half is used. That is, the one-based index of the value used is floor((n + 1) / 2), where n is the number of values.
median_values = [BTC, ETH, SOL].close -> median()


Definition: Delays/shifts the time series.
Syntax: lag(delay)
Arguments: delay= number of values to shift the time series (> 0)
Return: Shifted time series
Description: If the input time series has values for every minute, the result of lag(60) is the values from one hour in the past.
delayedPrice = BTC.close -> lag(60)


Definition: Limits values to the range from minValue to maxValue.
Syntax: min_max_filter(minValue, maxValue)
  • minValue: minimum value; any values less than this will be replaced with minValue
  • maxValue: maximum value; any values greater than this will be replaced with maxValue
minValue must be less than maxValue: true
Return: Filtered time series
Description: Any values less than the minimum value will be replaced with minvalue. Any values greater than the maximum value will be replaced with maxvalue. The minimum value must be less than or equal to the maximum value.
filtered = BTC.close -> rsi(30) -> min_max_filter(-25, 25)