
    id                         S SK Jr  S SKJr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  S SKJr  S SKJrJrJrJrJrJr  S SKJr  \" S	S
9S 5       r    SS\S\S\S\S\S\S\S\S\S\S\
S\4S jjrg)    )njit)isnannanuintc
zeros_like)Series)DictLikeIntIntFloat)ma)Imports)v_driftv_mamodev_offsetv_pos_defaultv_seriesv_talib)atrT)cachec                    U R                   n[        X45      nU R                  5       n[        U [        S9n[        U [        S9n	X:  n
Su  X'   X) '   Su  US U& U	S U& [
        US U& [        Xe5       HN  nX{S-
     nX   (       a  X   X+   -
  X{'   X{   U:  a  XU'   X   (       d  M5  X   X+   -   X{'   X{   U:  d  MJ  XU'   MP     Xx-  Xy-  p[
        [
        sXS:H  '   XS:H  '   X}U4$ )N)dtype)   r   )r   r   r   r   )sizemaxcopyr   r   r   range)xr   atr_length	ma_lengthmkresultupdnexpniprlongshorts                  U/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/volatility/atrts.pynb_atrtsr,      s   	AFAVVXF	AU	#B	AU	#B6DBHbiNBrFBrFF2AJ1[E]5twFIy2~q	55twFIy2~q	  +v{%),c&DOUA:&    Nhighlowcloser   r    r"   mamodetalibdriftoffsetkwargsreturnc
                 h   [        US5      n[        US5      nX4-   n[        X5      n [        X5      n[        X+5      nU b  Ub  Uc  g[        US5      n[        US5      n[        U5      n[	        U5      n[        U	5      n	[        S   (       a  U(       a  SSKJn  U" XX#5      nO[        SXX#XhUU	S	.U
D6n[        [        U5      5      (       a  gX-  n[        XbXLS
9nUR                  5       UR                  5       UR                  5       nnn[        UUUX45      u  n  nU
R                  SS5      nU(       a  USU-  -  n[!        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(       a  SOS 3nU SU SU SU 3Ul        SUl        U$ )a  ATR Trailing Stop

This indicator attempts to identify exits for long and short positions.
To determine trend, it uses a moving average with a scalable ATR.

Sources:
    * [motivewave](https://www.motivewave.com/studies/atr_trailing_stops.htm)

Parameters:
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    length (int): The period. Default: ```14```
    ma_length (int): MA Length. Default: ```20```
    k (int): ATR multiplier. Default: ```3```
    mamode (str): See ```help(ta.ma)```. Default: ```"ema"```
    talib (bool): If installed, use TA Lib. Default: ```True```
    drift (int): Difference amount. Default: ```1```
    offset (int): Post shift. Default: ```0```

Other Parameters:
    percent (bool): Return as percent. Default: ```False```
    fillna (value): ```pd.DataFrame.fillna(value)```

Returns:
    (Series): 1 column
      Ng      @emar2   r   )ATR)r.   r/   r0   r   r1   r3   r2   r4   )r   r2   percentFd   )indexfillnaT)inplaceATRTSp _
volatility )r   r   r   r   r   r   r   r2   r;   r   allr   _mato_numpyr,   popr   r>   shiftr?   namecategory)r.   r/   r0   r   r    r"   r1   r2   r3   r4   r5   _lengthmode_talr;   r   ma_np_closenp_manp_atr	np_atrts_rD   r<   atrts_propss                           r+   rU   rU   3   s   D 62&Fi,I GD"D
3
 CU$E|s{emaAfe$Fu~HENEfF wH4e, 
eh
 $
 5;ID
fI
>C#nn.VeHxJOIq!jjE*GS8^#	9EKK0E {F# 6VH%t4 VAYKwB78F81VHAi[!5EJ!ENLr-   )NNNNNNN)numbar   numpyr   r   r   r   pandasr   pandas_ta._typingr	   r
   r   pandas_ta.mar   rH   pandas_ta.mapsr   pandas_ta.utilsr   r   r   r   r   r   pandas_ta.volatilityr   r,   strboolrU   rF   r-   r+   <module>ra      s     / /  5 5 " "  % D > =A)-9=	Y
YY&,Y69YY&Y Y  $Y 47Y 	Y #+	Y
 Yr-   