
    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
 d dlmZ d dl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)    )Series)DictLikeIntIntFloat)Imports)hlc3sma)mad)v_offsetv_pos_defaultv_seriesv_talibNhighlowcloselengthctaliboffsetkwargsreturnc                    t        |d      }t        | |      } t        ||      }t        ||      }| ||yt        |d      }t        |      }t        |      }t        d   r|rddlm}	  |	| |||      }
n5t        | |||      }t        |||      }t        ||	      }||||z  z  z
  }
|dk7  r|
j                  |      }
d
|v r|
j                  |d
   d       d| d| |
_        d|
_        |
S )a  Commodity Channel Index

    This indicator attempts to identify "overbought" and "oversold" levels
    relative to a mean.

    Sources:
        * [tradingview](https://www.tradingview.com/wiki/Commodity_Channel_Index_(CCI))

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        length (int): The period. Default: ```14```
        c (float): Scaling Constant. Default: ```0.015```
        talib (bool): If installed, use TA Lib. Default: ```True```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
       NgQ?r   r   )CCI)r   r   r   r   )r   r   )r   fillnaT)inplaceCCI__momentum)r   r   r   r   r   r   r   r   r	   r
   shiftr   namecategory)r   r   r   r   r   r   r   r   mode_talr   ccitypical_pricemean_typical_pricemad_typical_prices                 d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/momentum/cci.pyr$   r$      s   : 62&FD&!D
3
CUF#E|s{emaAu~HfF wH$UF+$CuHM vXNf=0A8I4IJJ {ii 6

6(#T
2 fXQqc"CHCLJ    )NNNN)pandasr   pandas_ta._typingr   r   r   pandas_ta.mapsr   pandas_ta.overlapr   r	   pandas_ta.statisticsr
   pandas_ta.utilsr   r   r   r   boolr$    r)   r(   <module>r2      s     5 5 " ' $ F F
 =A&*@
@@&,@69@@#@ @ #+@ 	@r)   