
    i:                         S SK Jr  S SKJrJrJr  S SKJrJr  S SK	J
r
JrJr  S SKJr  S SKJr  S SKJr  S SKJrJrJrJrJrJr  \" S	S
9S 5       r     SS\S\S\S\S\S\S\S\S\S\S\S\S\S\
4S jjrg)    )njit)isnannan
zeros_like)	DataFrameSeries)DictLikeIntIntFloat)rsi)atr)mfi)v_mamodev_offsetv_pos_defaultv_seriesv_strv_talibT)cachec                     UR                   n[        U 5      n[        SU5       HJ  nX%   (       a   X   XES-
     :  a  XES-
     XE'   M$  X   XE'   M,  X   XES-
     :  a  XES-
     XE'   MD  X   XE'   ML     [        US'   U$ )N   r   )sizer   ranger   )low_atrhigh_atrmomo_thresholdmresultis         U/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/trend/alphatrend.pynb_alphar!      s    A F1a[zFq5M)"q5M	#J	{VE]*"q5M	$K	  F1IM    Nopen_highlowclosevolumesrclength
multiplier	thresholdlagmamodetaliboffsetkwargsc           	         [        US5      n[        X5      n [        X5      n[        X&5      n[        X65      nU b	  Ub  Ub  Uc  gXX#S.n[        US5      nX^R                  5       ;   a  UOSn[        US5      n[        US5      n[        U	S5      n	[	        U
S5      n
[        U5      n[        U5      nUb  [        U5      nUc  g[        XX6XS	9nUb  [        [        U5      5      (       a  gUUU-  -
  nUUU-  -   nSnUc  [        X   XjUS
9nO[        XX4XoS9nUc  gUR                  5       UR                  5       nn[        UUUR                  5       U:  5      n[        UUR                  S9nUR!                  U	5      n[        [        U5      5      (       d  [        [        U5      5      (       a  gUS:w  a"  UR!                  U5      nUR!                  U5      nSU;   a&  UR#                  US   SS9  UR#                  US   SS9  SU SU SU 3nSU 3Ul        SU SU	 3Ul        S=Ul        Ul        UR$                  UUR$                  U0n[)        UUR                  S9nUR$                  Ul        UR&                  Ul        U$ )aW  Alpha Trend

This indicator attempts to filter sideways movement for accurate signals.

Sources:
    * [OnlyFibonacci](https://github.com/OnlyFibonacci/AlgoSeyri/blob/main/alphaTrendIndicator.py)
    * [tradingview](https://www.tradingview.com/script/o50NYLAZ-AlphaTrend/)

Parameters:
    open_ (Series): ```open``` Series
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    volume (Series): ```volume``` Series. Default: ```None```
    src (str): One of: "open", "high", "low" or "close".
        Default: ```"close"```
    length (int): ATR, MFI, or RSI period. Default: ```14```
    multiplier (float): Trailing ATR multiple. Default: ```1```
    threshold (float): Momentum threshold. Default: ```50```
    lag (int): Lag period of main trend. Default: ```2```
    mamode (str): See ```help(ta.ma)```. Default: ```"sma"```
    talib (bool): If installed, use TA Lib. Default: ```True```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (DataFrame): 2 columns
   N)openr$   r%   r&   r&   r   2      sma)r$   r%   r&   r)   r-   r.   )r&   r)   r-   r.   )r$   r%   r&   r'   r)   r.   )indexr   fillnaT)inplace_ALPHATALPHATltrend)r   r   r   keysr   r   r   r   allr   r   r   to_numpyr!   r   r7   shiftr8   namecategoryr   )r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   _srcmode_talatr_	lower_atr	upper_atrmomonp_upper_atrnp_lower_atratatl_propsdatadfs                              r    
alphatrendrQ   )   s   N 62&FU#ED!D
3
CU#E}u}DD
W
C		##Cz1-Ji,I
Q
Cfe$Fu~HfF&!> %D
 |s5;''dZ''Itj((ID~6Qe

 |!*!3!3!5y7I7I7K,L	,dmmo.J	KB	%++	&B
((3-C
59~~U3Z {XXfii 6
		&"D	1

6(#T
2 *Qyk2FvhBG#'CH!((BK#,GGR3'D	4u{{	+BggBG++BKIr"   )	NNNNNNNNN)numbar   numpyr   r   r   pandasr   r   pandas_ta._typingr	   r
   r   pandas_ta.momentumr   pandas_ta.volatilityr   pandas_ta.volume.mfir   pandas_ta.utilsr   r   r   r   r   r   r!   strintboolrQ    r"   r    <module>r^      s     ( ( $ 5 5 " $ $  D , '+/3+/&*xxx&,x5;xx #x x %-x 	x &)	x
 x
  $x x #+xr"   