Skip to main content

ALMA

Source​

https://github.com/quadcode-tech/quadcodescript-library/blob/master/averages/alma.lua

Syntax Format​

alma(series, period, offset, sigma)

Overview​

ALMA (Arnaud Legoux Moving Average) belongs to the MA family, and it will help you indicate the asset price movement, smoothing the noise along the way and being more responsive to recent price changes. 

Parameters​

ParameterTypePurpose
periodintegerMoving Average Period, must be a positive integer number
offsetnumericGaussian Distribution mean value. Controls responsiveness of the filter, where 0 is the least responsive and 1 is the most responsive
sigmanumericGaussian Distribution standard deviation. Controls the smoothness of the filter
seriesseriesInput series, meaning the price values sequence taken into calculation

Returns: series.

Example​

instrument { name = "ALMA", overlay = true }

period = input (9, "Period", input.integer, 1, 100 )
offset = input (0.85, "Offset", input.double, 0, 100, 0.01)
sigma = input (6, "ALMA Sigma", input.double, 0.01, 10, 1)

input_group {
"ALMA Line",
color = input { default = "#56CEFF", type = input.color },
width = input { default = 1, type = input.line_width}
}

Formula​

The formula for calculating ALMA is:

The ALMA function is calculated by taking the sum of the weighted price values of an asset. The assigned weight is based on the Gaussian distribution, making the function more efficient for more short-term price movements. Next step in the calculation – make a sum of the weights, used for the price values within a chosen period, to balance the formula and make the result more objective.