
    i                         S SK JrJr  S SKJr  S SKJrJr  S SKJ	r	  S SK
Jr  S SKJrJrJrJrJrJrJr  SSKJr      SS
\S\S\S\S\S\S\S\S\S\S\4S jjrg	)    )isnannan)Series)DictLikeInt)ma)Imports)v_boolv_driftv_mamodev_offsetv_pos_defaultv_seriesv_talib   )
true_rangeNhighlowcloselengthmamodetalibprenandriftoffsetkwargsreturnc	           	      H   [        US5      nUS-   n
[        X
5      n [        X5      n[        X*5      nU b  Ub  Uc  g[        US5      n[        U5      n[	        US5      n[        U5      n[        U5      n[        S   (       a  U(       a  SSKJ	n  U" XX#5      nOz[        XUXUS	9n[        [        U5      5      (       a  gU	R                  S
S5      nU(       a1  USU R                  5       n[        USUS-
  & UUR                   US-
  '   [#        XNX;S9n[        [        U5      5      (       a  gU	R                  SS5      nU(       a  USU-  -  nUS:w  a  UR%                  U5      nSU	;   a  UR'                  U	S   SS9  SUS    U(       a  SOS SU 3Ul        SUl        U$ )a^  Average True Range

This indicator attempts to quantify volatility with a focus on gaps or
limit moves.

Sources:
    * [tradingview](https://www.tradingview.com/wiki/Average_True_Range_(ATR))

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

Other Parameters:
    percent (bool): Return as percent. Default: ```False```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (Series): 1 column
   r   NrmaFr   r   )ATR)r   r   r   r   r   r   presmaT)r   r   percentd   fillna)inplacer!   p _
volatility)r   r   r   r   r
   r   r   r	   r   r!   r   allr   popmeanr   ilocr   shiftr%   namecategory)r   r   r   r   r   r   r   r   r   r   _lengthmode_talr!   atrtrr"   sma_nthr#   s                     S/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/volatility/atr.pyr4   r4      s   D 62&FqjGD"D
3
 CU$E|s{emfe$Fu~HFE"FENEfF wH$U+e
 uRy>>Hd+6l'')G!B{
O")BGGFQJF;
5:jjE*GsU{ {ii 6

6(#T
2 VAYKwB7qACHCLJ    )NNNNNN)numpyr   r   pandasr   pandas_ta._typingr   r   pandas_ta.mar   pandas_ta.mapsr	   pandas_ta.utilsr
   r   r   r   r   r   r   r   strboolr4    r8   r7   <module>rB      s      +  "   #
 =A&*&*	W
WW&,W69WW#W W !$W 	W #+	W
 Wr8   