PINE LIBRARY
Updated ArrayMovingAverages

Library "ArrayMovingAverages"
This library adds several moving average methods to arrays, so you can call, eg.:
method emaArray(id, length)
Calculate Exponential Moving Average (EMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the EMA
Returns: (array<float>) Array of EMA values
method ema(id, length)
Get the last value of the EMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the EMA
Returns: (float) Last EMA value or na if empty
method rmaArray(id, length)
Calculate Rolling Moving Average (RMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the RMA
Returns: (array<float>) Array of RMA values
method rma(id, length)
Get the last value of the RMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the RMA
Returns: (float) Last RMA value or na if empty
method smaArray(id, windowSize)
Calculate Simple Moving Average (SMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (array<float>) Array of SMA values
method sma(id, windowSize)
Get the last value of the SMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (float) Last SMA value or na if empty
method wmaArray(id, windowSize)
Calculate Weighted Moving Average (WMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (array<float>) Array of WMA values
method wma(id, windowSize)
Get the last value of the WMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (float) Last WMA value or na if empty
This library adds several moving average methods to arrays, so you can call, eg.:
Pine Script®
myArray.ema(3)
method emaArray(id, length)
Calculate Exponential Moving Average (EMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the EMA
Returns: (array<float>) Array of EMA values
method ema(id, length)
Get the last value of the EMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the EMA
Returns: (float) Last EMA value or na if empty
method rmaArray(id, length)
Calculate Rolling Moving Average (RMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the RMA
Returns: (array<float>) Array of RMA values
method rma(id, length)
Get the last value of the RMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the RMA
Returns: (float) Last RMA value or na if empty
method smaArray(id, windowSize)
Calculate Simple Moving Average (SMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (array<float>) Array of SMA values
method sma(id, windowSize)
Get the last value of the SMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (float) Last SMA value or na if empty
method wmaArray(id, windowSize)
Calculate Weighted Moving Average (WMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (array<float>) Array of WMA values
method wma(id, windowSize)
Get the last value of the WMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
windowSize (int): (int) Window size for calculation, defaults to array size
Returns: (float) Last WMA value or na if empty
Release Notes
v2Added Hull Moving Average.
Added:
method hmaArray(id, length)
Calculate Hull Moving Average (HMA) for Arrays
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the HMA
Returns: (array<float>) Array of HMA values
method hma(id, length)
Get the last value of the HMA array
Namespace types: array<float>
Parameters:
id (array<float>): (array<float>) Input array
length (int): (int) Length of the HMA
Returns: (float) Last HMA value or na if empty
Release Notes
v3Lots of performance updates. Please note hma is still quite slow, I'm still investigating ways to improve it.
Pine library
In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in publications is governed by House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.
Pine library
In true TradingView spirit, the author has published this Pine code as an open-source library so that other Pine programmers from our community can reuse it. Cheers to the author! You may use this library privately or in other open-source publications, but reuse of this code in publications is governed by House Rules.
Disclaimer
The information and publications are not meant to be, and do not constitute, financial, investment, trading, or other types of advice or recommendations supplied or endorsed by TradingView. Read more in the Terms of Use.