Sometimes, in several trading platforms, it is not possible to get value from different kind of average functions (like `simple/exponential moving average` or `ATR` or whatever) before the `current bar number` reaches the value of `Length` parameter.
For example, if you have `ATR(15)` and you add that on chart, till `15th` bar, the built-in function wouldn’t return any value (`NAN`). That is expected behavior, because the platform need enough data to aggregate to make correct calculation, and before that, it doesn’t give you the “estimations”.

However, there are cases, when people need “estimated/approximated” value, because `something is better than nothing`. For that purposes, we use the following formula to calculate the values before `current-bar` reaches to the `Length` value:

```ATR_(length)=>
correct_value_ = atr(length)
tr_ = bar_index==0? high - low : max(high - low, max(abs(high - close), abs(low - close)))
NOT_STARTED_ = bar_index<length-1
approx_value_ = 0.0, approx_value_ := NOT_STARTED_ ? ( bar_index==0 ? tr_ : (approx_value_*bar_index + tr_) /(bar_index+1) ) : na
result_ = NOT_STARTED_ ? approx_value_ : correct_value_```

(Note: this is formula for `Pinescript`, however you can adopt for any other language)