
    Q-j                         d dl mZ d dlmZmZ d dlmZ d dlmZm	Z	 d dl
mZ d dlmZmZmZmZmZ  ed      d	        Z	 	 ddede	dede	dedefdZy
)    )njit)convolveones)Series)DictLikeInt)Imports)
nb_prependv_offsetv_pos_defaultv_seriesv_talibT)cachec                 b    t        t        |      |z  |       |dz
  d|z
   }t        ||dz
        S )N   )r   r   r
   )xnresults      c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/sma.pynb_smar      s6    d1gk1%a!eAE2Ffa!e$$    Ncloselengthtaliboffsetkwargsreturnc                    t        |d      }d|v r|d   t        |d         }n|}t        | t        ||            } | yt	        |      }t        |      }t        d   r|r|dkD  rddlm}  || |      }n3| j                         }	t        |	|      }t        || j                        }|dk7  r|j                  |      }d	|v r|j                  |d	   d
       d| |_        d|_        |S )a  Simple Moving Average

    This indicator is the the textbook moving average, a rolling sum of
    values divided by the window period (or length).

    Sources:
        * [tradingtechnologies](https://www.tradingtechnologies.com/help/x-study/technical-indicator-definitions/simple-moving-average-sma/)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```10```
        talib (bool): If installed, use TA Lib. Default: ```True```
        offset (int): Post shift. Default: ```0```

    Other Parameters:
        adjust (bool): Adjust the values. Default: ```True```
        presma (bool): If True, uses SMA for initial value.
        fillna (value): ```pd.DataFrame.fillna(value)```

    Returns:
        (Series): 1 column
    
   min_periodsNr   r   r   )SMA)indexfillnaT)inplaceSMA_overlap)r   intr   maxr   r   r	   r   r!   to_numpyr   r   r"   shiftr#   namecategory)
r   r   r   r   r   r    mode_talr!   smanp_closes
             r   r.   r.      s    6 62&F6-#8#D&/0UC45E}u~HfF wH!% >>#Xv&S, {ii 6

6(#T
2 fXCHCLJr   )NNN)numbar   numpyr   r   pandasr   pandas_ta._typingr   r   pandas_ta.mapsr	   pandas_ta.utilsr
   r   r   r   r   r   boolr.    r   r   <module>r8      sv        + "  D% % 6:===.2=="*= =r   