
    Q-j                         d dl mZ d dlmZmZ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
defdZy
)    )njit)arangefloat64nan
zeros_like)Series)DictLikeInt)Imports)v_ascendingv_offsetv_pos_defaultv_seriesv_talibT)cachec                 "   | j                   }t        d|dz   t              }t        | t              }|s|d d d   }t	        |dz
  |      D ]$  }|| ||z
  dz   |dz    z  j                         ||<   & |d||z  |z   z  z  }|rt        |d |dz
   |S )N   )dtype   )sizer   r   r   rangesumr   )xnascprenanmwresultis           c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/wma.pynb_wmar#      s    	Aq!a%w'A)FddG1q5!_1q519QU++002q	 
a1q519oFvAM    Ncloselengthr   taliboffsetkwargsreturnc                    t        |d      }t        | |      } | yt        |      }t        |      }t	        |      }t
        d   r|rddlm}  || |      }n5| j                         }	t        |	||d      }
t        |
| j                        }|dk7  r|j                  |      }d|v r|j                  |d   d	       d
| |_        d|_        |S )a  Weighted Moving Average

    This indicator is a Moving Average where the weights are linearly
    increasing and the most recent data has the heaviest weight.

    Sources:
        * [wikipedia](https://en.wikipedia.org/wiki/Moving_average#Weighted_moving_average)

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

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

    Returns:
        (Series): 1 column
    
   Nr'   r   )WMAT)indexfillna)inplaceWMA_overlap)r   r   r   r   r   r   r'   r-   to_numpyr#   r   r.   shiftr/   namecategory)r%   r&   r   r'   r(   r)   mode_talr-   wmanp_closewma_s              r"   r8   r8   $   s    6 62&FUF#E}
c
Cu~HfF wH% >>#hT2T- {ii 6

6(#T
2 fXCHCLJr$   )NNNN)numbar   numpyr   r   r   r   pandasr   pandas_ta._typingr	   r
   pandas_ta.mapsr   pandas_ta.utilsr   r   r   r   r   r#   boolr8    r$   r"   <module>rC      s     2 2  + "  D & "&$(:::	:!: : #+: 	:r$   