OPEN-SOURCE SCRIPT

Examples of Rolling Average Using Automated Anchoring

Updated
In this study, I present a method to expose NaN values to development environment.
This exposure allows NaN values to be used by methods in scripts.

I also show how to use values, even NaN values, as anchors from which statistics can be computed from.
I demonstrate how to do this with constants and variables in methods for computing the cumulative/rolling average of a series.

I also show how to calculate the cumulative/rolling average from the start of a ticker series using the aforementioned methods.

Each method has a description on how some of their parts work as well as their constraints.

Method #1 - Can only be used for computing the rolling average on the ticker series.

Method #2 - The simple moving average from the Pine Script reference.
- Can be used to calculate the rolling average of the ticker series and number values of a series.
- This method seems to cause an error when there are many bars in the series.

Method #3 - The most versatile method due to the use of computing the rolling average using an array.
- Timeout will occur when computing the rolling average of an entire ticker series which is long.
- Timeout has not occurred when computing a rolling average of a series from NaN or non-NaN anchor points even when the series is long.

This is an attempt to get around the constraints of the built-in sma(source, length) function in which length cannot be dynamically adjusted.
Other Pine Script functions have that constraint which we can get around by defining our own functions.
Release Notes
In case the above description is not clear, this study shows how to expose NaN values to the development environment to be used in calculations. This study also shows the calculation of a statistic, in this case a moving average, using dynamic look-back during runtime rather than a constant. Pine Script’s built-in functions only allows for constant look-backs during runtime, which can only be manually changed and will recalculate the the statistic over the whole source series. You can workaround that issue by defining your own functions to loop on Series[] types and even more so by looping on Array[] types which contain the Series[] data. Although these workarounds work, their inefficiencies can be a hindrance, especially when the loop count becomes lengthy. It is TradingView's responsibility to change their built-in Pine Script functions to support more dynamic arguments at runtime in order to remove the need to write complex code as a workaround.
arrayconceptexperimentalfunctionHACKmeanMoving AveragesrollingSimple Moving Average (SMA)Trend Analysis

Open-source script

In true TradingView spirit, the author of this script has published it open-source, so traders can understand and verify it. Cheers to the author! You may use it for free, but reuse of this code in publication is governed by House rules. You can favorite it to use it on a chart.

Want to use this script on a chart?

Disclaimer