
    iQ                         S SK Jr  S SKJr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  \" SS9S 5       r\" SS9S	 5       r   SS\S\
S\S\S\S\
S\	S\4S jjrg
)    )njit)copycosexp)Series)DictLikeIntIntFloat)v_boolv_offsetv_pos_defaultv_seriesT)cachec                    U R                   X1-  [        U 5      pen[        U* U-  5      nSU-  [        SU-  5      -  nXw-  U-
  S-   n	[	        SU5       H/  n
SU	-  X
   X
S-
     -   -  XU
S-
     -  -   Xw-  XjS-
     -  -
  Xj'   M1     U$ )N               ?sizer   r   r   range)xnpisqrt2mratioresultabcis              P/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/overlap/ssf.pynb_ssfr$      s    vvuy$q'fARC%KA	AC%K  A		AA 1a[!GqtaAh/!QUm2CCefUm#$	  M    c                    U R                   X#-  U-  [        U 5      pen[        U* 5      nSU-  [        U5      -  n[	        SU5       H7  n	SXw-  U-
  S-   -  X	   X	S-
     -   -  XU	S-
     -  -   Xw-  XiS-
     -  -
  Xi'   M9     U$ )Nr   r   r   r   )
r   r   r   r   r   argr   r   r    r"   s
             r#   nb_ssf_evergetr(      s    VVRZ!^T!WFASD	A	ACA 1a[1519q=)QTA!eH_=Q- "#%&Q-"78	  Mr%   Ncloselengthevergetr   r   offsetkwargsreturnc                    [        US5      n[        X5      n U c  g[        US5      n[        US5      n[        US5      n[        U5      nU R	                  5       nU(       a  [        XqX45      nO[        XqX45      n[        XR                  S9nUS:w  a  UR                  U5      nSU;   a  UR                  US   S	S
9  SU(       a  SOS SU 3Ul        SUl        U$ )u}  Ehlers's Super Smoother Filter

This indicator, by John F. Ehlers's © 2013, is a (Recursive) Digital
Filter that attempts to reduce lag and remove aliases. This version
has two poles.

Sources:
    * [mql5](https://www.mql5.com/en/code/588)
    * [traders.com](http://traders.com/documentation/feedbk_docs/2014/01/traderstips.html)
    * [tradingview](https://www.tradingview.com/script/VdJy0yBJ-Ehlers-Super-Smoother-Filter/)

Parameters:
    close (Series): ```close``` Series
    length (int): The period. Default: ```20```
    everget (bool): Everget's implementation of ssf that uses pi
        instead of 180 for the b factor of ssf. Default: ```False```
    pi (float): The default is Ehlers's truncated value: ```3.14159```.
        Default: ```3.14159```
    sqrt2 (float): The default is Ehlers's truncated value: ```1.414```.
        Default: ```1.414```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (Series): 1 column

Note:
    * Everget's calculation on TradingView:
        ```pi=np.pi```, ```sqrt2=np.sqrt(2)```

Danger:
    Possible Data Leak
   Ngn!	@g9v?F)indexr   fillnaT)inplaceSSFe _overlap)r   r   r   r   to_numpyr(   r$   r   r1   shiftr2   namecategory)	r)   r*   r+   r   r   r,   r-   np_closessfs	            r#   r>   r>   +   s    R 62&FU#E}	r7	#B%'EWe$GfF ~~HXr9Xr1
KK
(C {ii 6

6(#T
2 GS,AfX6CHCLJr%   )NNNNN)numbar   numpyr   r   r   pandasr   pandas_ta._typingr   r	   r
   pandas_ta.utilsr   r   r   r   r$   r(   boolr>    r%   r#   <module>rF      s          5 5 E E D   D
 
 "&AEHHHH&H6>H H #+H 	Hr%   