
    i                         S SK JrJr  S SKJrJr  S SKJr  S SKJ	r	J
r
Jr  S SKJrJrJrJrJrJrJr      SS\S\S	\S
\	S\	S\	S\
S\S\S\S\	S\	S\4S jjrg)    )isnannan)Series	DataFrame)atr)IntIntFloatDictLike)v_boolv_driftv_mamodev_pos_defaultv_offsetv_seriesv_talibNhighlowclosehigh_length
low_length
atr_length
multipliermamodetalib	use_closedriftoffsetkwargsc                    [        US5      n[        US5      n[        US5      n[        X45      n[        X]5      S-   n[        X5      n [        X5      n[        X.5      nU b  Ub  Uc  g[        US5      n[        US5      n[	        U5      n[        U	S5      n	[        U
5      n
[        U5      n[        XX%XXS9nUb  [        [        U5      5      (       a  gUU-  nU	(       aC  UR                  USS	9R                  5       U-
  nUR                  USS	9R                  5       U-   nOBU R                  USS	9R                  5       U-
  nUR                  USS	9R                  5       U-   nUUR                  U
5      :  R                  [        5      nUUR                  U
5      :  R                  [        5      * nUU-   nUR                   S
   S
:X  a  SUR                   S
'   UR#                  S
[$        5      R'                  5       nUS
:w  a3  UR                  U5      nUR                  U5      nUR                  U5      nSU;   a9  UR)                  US   SS9  UR)                  US   SS9  UR)                  US   SS9  SnSU SU SU SU 3nU	(       a  SU 3nU SU 3UU SU 3UU SU 3U0n[+        UUR,                  S9nU U 3Ul        SUl        U$ )a;  Chandelier Exit

This indicator attempts to identify trailing stop-losses based on ATR.

Sources:
    * [stockcharts](https://school.stockcharts.com/doku.php?id=technical_indicators:chandelier_exit)
    * [tradingview](https://in.tradingview.com/scripts/chandelier/)

Parameters:
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    high_length (int): Highest high period. Default: ```22```
    low_length (int): Lowest low period. Default: ```22```
    atr_length (int) : ATR length. Default: ```14```
    multiplier (float): Lower & Upper Bands scalar. Default: ```2.0```
    mamode (str): See ```help(ta.ma)```. Default: ```"rma"```
    talib (bool): If installed, use TA Lib. Default: ```True```
    use_close (bool): Use  ```max(high_length, low_length)``` for
        the ```close```. Default: ```False```
    drift (int): Difference amount. Default: ```1```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (DataFrame): 3 columns
         Ng       @rmaF)r   r   r   lengthr   r   r   r   )min_periodsr   fillnaT)inplaceCHDLREXT__CLOSE_lsd)index
volatility)r   maxr   r   r   r   r   r   r   allr   rollingminshiftastypeintilocreplacer   ffillr&   r   r.   namecategory)r   r   r   r   r   r   r   r   r   r   r   r   r   roll_length_lengthmode_talatr_atr_multlongshortuptrend	downtrend	direction_name_propsdatadfs                              _/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/volatility/chandelier_exit.pychandelier_exitrK      s   J z2.JR0Kz2.Jk.K**Q.GD"D
3
 CU$E|s{emz3/Jfe$Fu~Hy%(IENEfF %UD |s5;''j H}}[a}8<<>Ikq9==?(J||KQ|7;;=HJA6::<xGtzz%((005G%++e,,44S99I)#I~~aA	q!!!S)//1I {zz&!F#OOF+	 6F8$d3VH%t4)48 EQzl!J<qEF6(# '6(T'6(U'6(YD
 
4u{{	+Bx BGBKI    )	NNNNNNNNN)numpyr   r   pandasr   r   pandas_ta.volatilityr   pandas_ta._typingr   r	   r
   pandas_ta.utilsr   r   r   r   r   r   r   strboolrK    rL   rJ   <module>rU      s     $ $ 5 5   0437>B%)m
mm&,mm),m m )1m 	m  $	m 8<	m
 m
  #m
 6>mrL   