Files
QuanTAlib/docs/indicators/averages/alma/calc.md
T
2024-09-26 10:44:09 -07:00

1.4 KiB

The Math Behind ALMA

Components of ALMA

ALMA is a single-formula moving average that incorporates elements of several advanced techniques:

  • Gaussian distribution
  • Weighted moving average
  • Offset parameter

ALMA Formula

ALMA_t = \sum_{i=0}^{n-1} w_i \cdot P_{t-i}

Where:

  • ALMA_t is the ALMA value at time t
  • n is the window size (number of periods)
  • P_{t-i} is the price at time t-i
  • w_i are the weights

Weight Calculation

The weights w_i are calculated using a Gaussian distribution function with an offset:

w_i = \exp\left(-\frac{(i - m)^2}{2s^2}\right)

Where:

  • i is the position of the price in the window (0 to n-1)
  • m is the offset of the Gaussian distribution, calculated as m = \text{floor}(offset \cdot (n - 1))
  • s is the standard deviation of the Gaussian distribution, calculated as s = \frac{n}{sigma}

Parameter Definitions

ALMA uses three main parameters:

  • Window size (n): Affects the overall reactivity of the indicator.
  • Offset: Influences the lag of the moving average. Lower values reduce lag but may increase noise.
  • Sigma: Controls the smoothness of the indicator. Higher values increase smoothness but may increase lag.

Computational Process

For each new data point:

  • Calculate the weights for the entire window.
  • Apply these weights to the most recent n prices.
  • Sum the weighted prices to produce the final ALMA value.