TradingView
thaiawe
17 דצמ׳ 2020 14:02

Examples of Rolling Average Using Automated Anchoring 

Bitcoin Liquid IndexBrave New Coin

תיאור

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.

הערות שחרור

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.
תגובות
amspesard
I've been looking for an indicator that would allow me to set the start point for a moving average and came across this. When I add this to the chart it errors saying it takes too long to calculate.
עוד