
    Q-j
                     v    d dl mZmZ d dlmZ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fdZy)    )	DataFrameSeries)DictLikeInt)v_offsetv_pos_defaultv_seriesv_talib   )smmaNclosejawteethlipstaliboffsetkwargsreturnc                    t        |d      }t        |d      }t        |d      }t        | t        |||            } | yt        |      }t	        |      }t        | ||      }t        | ||      }	t        | ||      }
|dk7  r3|j                  |      }|	j                  |      }	|
j                  |      }
d|v rB|j                  |d   d	       |	j                  |d   d	       |
j                  |d   d	       d
| d
| d
| }d| |d| |	d| |
i}t        || j                        }d| |_
        d|_        |S )a  Bill Williams Alligator

    This indicator, by Bill Williams, attempts to identify trends.

    Sources:
        * [sierrachart](https://www.sierrachart.com/index.php?page=doc/StudiesReference.php&ID=175&Name=Bill_Williams_Alligator)
        * [tradingview](https://www.tradingview.com/scripts/alligator/)

    Parameters:
        close (Series): ```close``` Series
        jaw (int): Jaw period. Default: ```13```
        teeth (int): Teeth period. Default: ```8```
        lips (int): Lips period. Default: ```5```
        talib (bool): If installed, use TA Lib. Default: ```True```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (DataFrame): 3 columns

    Tip:
        To avoid data leaks, offsets are to be done manually.

    Note:
        Williams believed the fx market trends between 15% and 30% of the
        time. Otherwise it is range bound. Inspired by fractal geometry,
        where the outputs are meant to resemble an alligator opening and
        closing its mouth. It It consists of 3 lines: Jaw, Teeth, and
        Lips which each have differing lengths.
             N)lengthr   r   fillnaT)inplace_AGjAGtAGl)indexAGoverlap)r   r	   maxr
   r   r   shiftr   r   r    namecategory)r   r   r   r   r   r   r   mode_tal	gator_jawgator_teeth
gator_lips_propsdatadfs                 i/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/alligator.py	alligatorr/   	   s{   J R
 C%#Eq!DUCUD12E}u~HfF U3h7IuU(;KeD9J {OOF+	!''/%%f-
 6)486(+T:&*D9 QugQtf%F
fX	
fX
fX
D
 
4u{{	+B6(mBGBKI    )NNNNN)pandasr   r   pandas_ta._typingr   r   pandas_ta.utilsr   r   r	   r
   r   boolr/    r0   r.   <module>r6      sn    $ + F F 
 DH&*MMM+.M=@MM #M6>M Mr0   