
    Q-j
                         d dl mZ d dlmZmZ d dlmZ d dlmZ d dl	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fdZy)    )Series)DictLikeInt)Imports)ema)v_offsetv_pos_defaultv_seriesv_talib)adNhighlowclosevolumeopen_fastslowtaliboffsetkwargsreturnc	                 P   t        |d      }t        |d      }t        ||      }
t        | |
      } t        ||
      }t        ||
      }t        ||
      }| |||yt        |      }t	        |      }t
        d   r|rddlm}  || |||||      }nOd|	v r|	j                  d       t        | |||||      }t        d||d	|	d|i}t        d||d	|	d|i}||z
  }|dk7  r|j                  |      }d
|	v r|j                  |	d
   d       d| d| |_        d|_        |S )a  Accumulation/Distribution Oscillator

    This indicator is an AD oscillator. It is interpreted similarly
    to MACD and APO.

    Sources:
        * [investopedia](https://www.investopedia.com/articles/active-trading/031914/understanding-chaikin-oscillator.asp)

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        open_ (Series): ```open``` Series
        volume (Series): ```volume``` Series
        fast (int): Fast MA period. Default: ```12```
        slow (int): Slow MA period. Default: ```26```
        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

    Note:
         Also known as Chaikin Oscillator

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

    Tip:
        Corrective contributions welcome!
       
   Nr   r   )ADOSClength)r   r   r   r   r   r   )r   r   fillnaT)inplaceADOSC__r    )r	   maxr
   r   r   r   r   r   popr   r   shiftr   namecategory)r   r   r   r   r   r   r   r   r   r   _lengthmode_talr   adoscad_fast_adslow_ads                    d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volume/adosc.pyr)   r)      sf   R q!Dr"D$oGD'"D
3
 CUG$Efg&F|s{emv~u~HfF wHdCd; vJJx 3eFx
 GCGGhGGCGGhG'! {F# 6VH%t4 $q'EJENL    )NNNNN)pandasr   pandas_ta._typingr   r   pandas_ta.mapsr   pandas_ta.overlapr   pandas_ta.utilsr   r	   r
   r   pandas_ta.volumer   boolr)   r!   r.   r-   <module>r6      s     + " ! F F  9=	T
TT&,T6<TT #T25T T 	T #+	T
 Tr.   