
    i>                         S SK JrJrJrJrJrJrJrJrJ	r	  S SK
Jr  S SKJrJr  S SKJrJrJrJr     SS\S\S\S	\S
\S\S\4S jjrg)    )	cosexpmeannanpirollsinsqrtzeros)Series)DictLikeInt)v_boolv_offsetv_pos_defaultv_seriesNcloselengthbarsinitial_versionoffsetkwargsreturnc                    [        US5      n[        X5      n U c  g[        US5      n[        US5      n[        U5      nU R                  n[        U[        5      (       Ga  U(       Ga  S=pxS=n	=n
=n=pS=n=nnS=nnSS/n[        SUS-
  5       Vs/ s H	  n[        PM     snS/-   n[        X5       GH5  nS[        SU-  5      -
  [        SU-  5      -  nSSU-   -  U R                  U   U-
  -  UU-  -   n[        [        S	5      * [        -  U-  5      n	S	U	-  [        [        S	5      S
-  U-  5      -  n
U
nSU	-  U	-  nSU-
  U-
  nSU-  UU-   -  UUS   -  -   UUS   -  -   nUUS   -   US   -   S-  nX-  US   US   -  -   US   US   -  -   S-  nU[        U5      -  nUR                  U5        UR!                  S5        UnU R                  U   nUR                  U5        GM8     GO%S=nn[#        S5      n[        /US-
  -  S/-   nS	[        -  U-  nS[        U5      -
  [        U5      -  nS[        -  U-  n[        U* 5      n	S	U	-  [        U5      -  nU	S	-  * nSU-
  U-
  n[        X5       H  nSSU-   -  U R                  U   U-
  -  UU-  -   n[%        US5      nSU-  UU-   -  UUS   -  -   UUS   -  -   US'   ['        U5      n[        ['        US	-  5      5      nUU-  nUnU R                  U   nUR                  U5        M     [)        UU R*                  S9nUS:w  a  UR-                  U5      nSU;   a  UR/                  US   SS9  SU SU 3Ul        SUl        U$ s  snf )a!  Even Better SineWave

This indicator attempts to quantify market cycles using a low pass filter.

Sources:
    * [rengel8](https://github.com/rengel8)
    * J.F.Ehlers 'Cycle Analytics for Traders', 2014
    * [Pandas TA Issue #350](https://github.com/twopirllc/pandas-ta/issues/350)
    * [Proreal Code](https://www.prorealcode.com/prorealtime-indicators/even-better-sinewave/)

Parameters:
    close (Series): ```close``` Series
    length (int): Max cycle/trend period. Values between ```40-48``` work
        as expected with minimum value: ```39```. Default: ```40```
    bars (int): Period of low pass filtering. Default: ```10```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    fillna (value): Replaces ```na```'s with ```value```.

Returns:
    (Series): 1 column

Note:
    The _default_ is more cycle oriented and seems to be less
    whipsaw-prune. The older version might offer earlier signals at medium
    and stronger reversals. Compared to TradingView, returns very close
    results but appears to be one bar earlier.
(   NF
   r      ih  g      ?         g;f?)indexfillnaT)inplaceEBSW__cycle)r   r   r   r   size
isinstanceboolranger   r	   r   ilocr   r
   r   appendpopr   r   r   r   r"   shiftr#   namecategory)r   r   r   r   r   r   malpha1hpa1b1c1c2c3filter_power_wave	lastCloselastHPfiltHistr&   resultiangleangrmsebsws                              O/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/cycle/ebsw.pyrE   rE   	   s   F 62&FU#E}_e4Or"DfF 	

A/4((_!"""R"""r"###&4	Fq6$Q
343!#34s:v!A #cFl++s3</@@FF
#uzz!}y'@AFVOSB d1gX]T)*BR#d1gmd233BBb2BR"BBh"v+.2  8A;./G hqk)HQK71<D'(1+*CC1++,/01F $v,&D OOG$LLOF

1IMM$= "B 8&1*%+Bc%j.CJ.lT!#YVc#hAgXVb[v!AF
#uzz!}y'@AFVOSB Hb)H8f "Xa[ 01353CDHRL >DtHM*+C#:D F

1IMM$! "$ &,D {zz&! 6F8$d3xq'DIDMK[ 5s   M1)NNNN)numpyr   r   r   r   r   r   r	   r
   r   pandasr   pandas_ta._typingr   r   pandas_ta.utilsr   r   r   r   r*   rE        rF   <module>rM      sp    A A A  + E E
 48 EEE-0EE E #+E 	ErL   