class_docstr: Average True Range (ATR)
  
  The indicator provide an indication of the degree of price volatility.
  Strong moves, in either direction, are often accompanied by large ranges,
  or large True Ranges.
  
  http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:average_true_range_atr
  
  Args:
      high(pandas.Series): dataset 'High' column.
      low(pandas.Series): dataset 'Low' column.
      close(pandas.Series): dataset 'Close' column.
      window(int): n period.
      fillna(bool): if True, fill nan values.
class_docstr_tok: ["Average","True","Range","(","ATR",")","The","indicator","provide","an","indication","of","the","degree","of","price","volatility",".","Strong","moves",",","in","either","direction",",","are","often","accompanied","by","large","ranges",",","or","large","True","Ranges",".","http",":","\/\/stockcharts.com\/school\/doku.php","?","id=chart_school",":","technical_indicators",":","average_true_range_atr","Args",":","high","(","pandas.Series",")",":","dataset","'High","'","column",".","low","(","pandas.Series",")",":","dataset","'Low","'","column",".","close","(","pandas.Series",")",":","dataset","'Close","'","column",".","window","(","int",")",":","n","period",".","fillna","(","bool",")",":","if","True",",","fill","nan","values","."]
code: def _run(self):
      close_shift = self._close.shift(1)
      true_range = self._true_range(self._high, self._low, close_shift)
      atr = np.zeros(len(self._close))
      atr[self._window - 1] = true_range[0 : self._window].mean()
      for i in range(self._window, len(atr)):
          atr[i] = (
              atr[i - 1] * (self._window - 1) + true_range.iloc[i]
          ) / float(self._window)
      self._atr = pd.Series(data=atr, index=true_range.index)
  
imports: import numpy
  import pandas
  from ta.utils import IndicatorMixin
label_desc: Use image node_id 2 for calling the AverageTrueRange obj's underlying member method code with example usage: obj._run() without return types