# Math Transform

**Definition**: Combines lag reduction techniques with exponential moving averages calculated multiple times

**Syntax**:

`gauss(length, poles)`

**Arguments**

**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.

**Example**

avgGaussValue = BTC.close -> gauss(20, 3)

**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.

**Example**:

x = BTC.close -> rsi(30)

fisherValue = x / 100 -> fisher()

**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.

**Example**:

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.

**Example**:

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.**Example**:

delayedPrice = BTC.close -> lag(60)

**Definition**: Limits values to the range from minValue to maxValue.

**Syntax**:

`min_max_filter(minValue, maxValue)`

**Arguments**:

`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.

**Example**:

filtered = BTC.close -> rsi(30) -> min_max_filter(-25, 25)

Last modified 29d ago