
    Q-j
                         d dl mZ d dlmZmZmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZmZmZ d dlmZ 	 	 	 ddeded	ed
ededededededededefdZy)    )Series)DictLikeIntIntFloat)Imports)v_boolv_driftv_mamodev_offsetv_pos_defaultv_scalarv_seriesv_talib)atrNhighlowcloselengthscalarmamodetalibprenandriftoffsetkwargsreturnc
                    t        |d      }|dz   }t        | |      } t        ||      }t        ||      }| ||yt        |d      }t        |d      }t	        |      }t        |d      }t        |      }t        |	      }	t        d   r|rdd	l	m
}  || |||      }n||z  t        d| ||||||||	d
	|
z  }|	dk7  r|j                  |	      }d|
v r|j                  |
d   d       d| |_        d|_        |S )a   Normalized Average True Range

    This indicator applies a normalizer to Average True Range.

    Sources:
        * [tradingtechnologies](https://www.tradingtechnologies.com/help/x-study/technical-indicator-definitions/normalized-average-true-range-natr/)

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        length (int): The period. Default: ```20```
        scalar (float): Scalar. Default: ```100```
        mamode (str): See ```help(ta.ma)```. Default: ```"ema"```
        talib (bool): If installed, use TA Lib. Default: ```True```
        prenan (bool): Sets initial values to ```np.nan``` based
            on ```drift```. Default: ```False```
        offset (int): Post shift. Default: ```0```

    Other Parameters:
        fillna (value): ```pd.DataFrame.fillna(value)```

    Returns:
        (Series): 1 column

    Warning:
        TA-Lib Correlation: ```np.float64(0.9506743353852364)```

    Tip:
        Corrective contributions welcome!
          Nd   emaFr   r   )NATR)	r   r   r   r   r   r   r   r   r   fillnaT)inplaceNATR_
volatility )r   r   r   r
   r   r   r	   r   r   r   r"   r   shiftr#   namecategory)r   r   r   r   r   r   r   r   r   r   r   _lengthmode_talr"   natrs                  g/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volatility/natr.pyr-   r-      s9   L 62&FqjGD'"D
3
 CUG$E|s{emfc"Ffe$Fu~HFE"FENEfF wHD#uf- 	
3eFh&	
 -3	

 {zz&! 6F8$d3 x DI DMK    )NNNNNNN)pandasr   pandas_ta._typingr   r   r   pandas_ta.mapsr   pandas_ta.utilsr   r	   r
   r   r   r   r   r   pandas_ta.volatilityr   strboolr-   r'   r/   r.   <module>r7      s     5 5 "	 	 	 % @D:>	N
NN&,NN (N9<N N !%N 58N 	N #+	N
 Nr/   