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

46 lines
1.4 KiB
Markdown

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