
    i6
                         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  \" SS9S 5       r   SS
\S\
S\S\S\
S\	4S jjrg	)    )njit)copycosexp)Series)DictLikeIntIntFloat)v_offsetv_pos_defaultv_seriesT)cachec                 :   U R                   [        U 5      pT[        U* U-  5      nSU-  [        U* U-  U-  5      -  nXf-  nX-  n	U* SU-   -  n
Xx-   nSU-
  U
-
  U	-
  n[	        SU5       H-  nXU   -  XUS-
     -  -   XUS-
     -  -   XUS-
     -  -   X]'   M/     U$ )N         )sizer   r   r   range)xnpisqrt3mresultabcd4d3d2d1is                 Q/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/overlap/ssf3.pynb_ssf3r$      s    QvRC!GA	ARC%K!O$$A	A	
B
q1uB	
B	
R"r	B 1a[1IAE] 22!a%= !#%q1u#56	  M    Ncloselengthr   r   offsetkwargsc                 b   [        US5      n[        X5      n U c  g[        US5      n[        US5      n[        U5      nU R                  5       n[	        XaX#5      n[        XpR                  S9nUS:w  a  UR                  U5      nSU;   a  UR                  US   SS	9  S
U 3Ul	        SUl
        U$ )u  Ehlers's 3 Pole 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/589)
    * [tradingview](https://www.tradingview.com/script/VdJy0yBJ-Ehlers-Super-Smoother-Filter/)

Parameters:
    close (Series): ```close``` Series
    length (int): The period. Default: ```20```
    pi (float): The value of ```PI```. The default is Ehler's truncated
        value: ```3.14159```. Default: ```3.14159```
    sqrt3 (float): The value of ```sqrt(3)``` to use. The default is
        Ehler's truncated value: ```1.732```. Default: ```1.732```
    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)```
   Ngn!	@gʡE?)indexr   fillnaT)inplaceSSF3_overlap)r   r   r   to_numpyr$   r   r,   shiftr-   namecategory)r&   r'   r   r   r(   r)   np_closessfs           r#   ssf3r7       s    F 62&FU#E}	r7	#B%'EfF ~~H
(B
.C
KK
(C {ii 6

6(#T
2 vhCHCLJr%   )NNNN)numbar   numpyr   r   r   pandasr   pandas_ta._typingr   r	   r
   pandas_ta.utilsr   r   r   r$   r7    r%   r#   <module>r>      sz          5 5 = = D ( "&+/>>>> (> > #+>r%   