
    Q-j	                         d dl mZmZ d dlmZmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZ 	 	 ddeded	ed
edededededefdZy)    )isnannan)Seriesconcat)DictLikeInt)Imports)non_zero_rangev_boolv_driftv_offsetv_seriesv_talibNhighlowclosetalibprenandriftoffsetkwargsreturnc                 r   d}t        | |      } t        ||      }t        ||      }| ||yt        |      }	t        |d      }t        |      }t	        |      }t
        d   r|	rddlm}
  |
| ||      }njt        | |      }|j                  |      }|| |z
  ||z
  g}t        |d      }|j                         j                  d      }|rt        |j                  d| t        t!        |            ry|dk7  r|j                  |      }d|v r|j#                  |d   d	
       d| |_        d|_        |S )ad  True Range

    This indicator attempts to quantify a High-Low range including potential
    gap scenarios.

    Sources:
        * [macroption](https://www.macroption.com/true-range/)

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        talib (bool): If installed, use TA Lib. Default: ```True```
        prenan (bool): Sets initial values to ```nan``` based
            on ```drift```. Default: ```False```
        drift (int): Difference amount. Default: ```1```
        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.9999999999999999)```

    Tip:
        Corrective contributions welcome!
       NFr   r   )TRANGE)axisfillnaT)inplace
TRUERANGE_
volatility)r   r   r   r   r   r	   r   r   r
   shiftr   absmaxr   ilocallr   r   namecategory)r   r   r   r   r   r   r   r   _lengthmode_talr   
true_rangehl_rangepcrangess                  m/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volatility/true_range.pyr*   r*      sS   H GD'"D
3
 CUG$E|s{emu~HFE"FENEfF wH D#u-
!$,[[D2IrCx0F+
^^%))q)1
&)JOOFU#
5 {%%f-
 6&*D9 #5'*JO&J    )NNNN)numpyr   r   pandasr   r   pandas_ta._typingr   r   pandas_ta.mapsr	   pandas_ta.utilsr
   r   r   r   r   r   boolr*    r/   r.   <module>r7      s     ! + "  ;?M
MM&,MM $M47M M #+M 	Mr/   