
    i                         S SK Jr  S SK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9S 5       r\" SS9S	 5       r  SS\S\	S\S\	S\S\4S jjrg
)    )njit)float64
zeros_like)Series)DictLikeInt)v_offsetv_pos_defaultv_seriesv_strT)cachec                     U R                   SSU-  -
  p2[        U [        S9nU S   US'   [        SU5       H  n[	        SX   XES-
     U-  5      XE'   M     U$ Ng      ?)dtyper      sizer   r   rangemaxxnmrateresultis         P/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/trend/decay.pynb_exponential_decayr      sb    ffcS1Wot)F!F1I1a[14A!56	  M    c                     U R                   SU-  p2[        U [        S9nU S   US'   [        SU5       H  n[	        SX   XES-
     U-
  5      XE'   M     U$ r   r   r   s         r   nb_linear_decayr!      s^    ffcAgt)F!F1I1a[14A!56	  Mr   Ncloselengthmodeoffsetkwargsreturnc                 v   [        X5      n U c  g[        US5      n[        US5      n[        U5      nSU R	                  5       peUS;   a  Sn[        Xa5      nO[        Xa5      n[        XpR                  S9nUS:w  a  UR                  U5      nS	U;   a  UR                  US	   S
S9  U SU 3Ul        SUl        U$ )a  Decay

This function creates a decay moving forward from prior signals.

Sources:
    * [tulipindicators](https://tulipindicators.org/decay)

Parameters:
    close (Series): ```close``` Series
    length (int): The period. Default: ```1```
    mode (str): Either ```"linear"``` or ```"exp"``` (exponetional)
        Default: ```"linear"```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (Series): 1 column
Nr   linearL)expexponentialEXP)indexr   fillnaT)inplaceDECAY_trend)r   r
   r   r	   to_numpyr   r!   r   r.   shiftr/   namecategory)r"   r#   r$   r%   r&   _modenp_closer   s           r   decayr9   &   s    2 U#E}61%Fx DfF 5>>+8%%%h7 2F++.F {f% 6fX&5 G6&*FKFOMr   )NNN)numbar   numpyr   r   pandasr   pandas_ta._typingr   r   pandas_ta.utilsr	   r
   r   r   r   r!   strr9    r   r   <module>rA      s     %  + D D
 D	 	 D	 	 48999-099"*9 9r   