
    Q-j 
                     B   d dl mZ d dlmZ d dl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lmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ ddlmZ 	 	 d dede	de de	dedefdZ!y)!    )modules)isnan)Series)DictLikeInt)v_mamodev_offsetv_pos_defaultv_series   )dema)ema)fwma)hma)linreg)midpoint)pwma)rma)sinwma)sma)ssf)swma)t3)tema)trima)vidya)wmaNcloselengthmamodeoffsetkwargsreturnc                    t        |d      }t        | |      } | yt        |d      }g d}||vryt        |      }t	        d|dz
  z        }d| z  | j                  |      z
  }|j                  d|i       |j                  d	|i       t        t        t           |      } |di |}	|	t        t        |	            ry|d
k7  r|	j                  |      }	d|v r|	j                  |d   d       d|	j                   |	_        d|	_        |	S )a  Zero Lag Moving Average

    This indicator, by John Ehlers and Ric Way, attempts to eliminate the lag
    often introduced in other moving averages.

    Sources:
        * [wikipedia](https://en.wikipedia.org/wiki/Zero_lag_exponential_moving_average)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```10```
        mamode (str): One of: "dema", "ema", "fwma", "hma", "linreg",
            "midpoint", "pwma", "rma", "sinwma", "ssf", "swma", "t3",
            "tema", "trima", "vidya", or "wma". Default: ```"ema"```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
    
   Nr   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   g      ?r      r   r   r   fillnaT)inplaceZL_overlap )r
   r   r   r	   intshiftupdategetattrsys_modules__name__allr   r'   namecategory)
r   r   r    r!   r"   supported_maslagclose_fnzlmas
             d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/zlma.pyr9   r9      s!   6 62&FUF#E}fe$FM ]"fF cVaZ 
!CYS))F
MM7F#$
MM8V$%	X&	/B<<D|s5;' {zz&! 6F8$d3 dii[!DIDMK    )NNN)"sysr   r0   numpyr   pandasr   pandas_ta._typingr   r   pandas_ta.utilsr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   strr9   r+   r;   r:   <module>rB      s    &   + G G                 
 6:FFF/2FF"*F Fr;   