
    Q-j                         d dl mZ d dlmZmZ d dlmZmZmZ d dl	m
Z
 d dlmZmZmZmZ 	 	 ddeded	ed
edededededefdZy)    )simplefilter)	DataFrameSeries)DictLikeIntList)hlc3)v_datetime_orderedv_listv_offsetv_seriesNhighlowclosevolumeanchorbandsoffsetkwargsreturnc                    d}t        | |      } t        ||      }t        ||      }t        ||      }| |||yt        |      }t        |      }|r/t        |t              rt        |      dk\  r|j                         }nd}t        | ||      }	t        |      rt        |	      st        d       yd| }
|	|z  }t        dt               |j                  |j                  j                  |            j                         |j                  |j                  j                  |            j                         z  }|rt        |      r||	|z
  d	z  z  }|j                  |j                  j                  |            j                         }|j                  |j                  j                  |            j                         }||z  d
z  }|
|_        d|_        |rt%        |j                   |i|j                        }|D ]^  }||z  z
  ||
 d| <   |||z  z   ||
 d| <   |
x||
 d|    _        ||
 d|    _        d||
 d|    _        d||
 d|    _        ` |
|_        d|_        |dk7  r0|rj&                  s|j)                  |      }|j)                  |      }d|v r;|r#j&                  s|j+                  |d   d       n|j+                  |d   d       |rj&                  s|S |S )a8  Volume Weighted Average Price

    This indicator computes the Volume Weighted Average Price.

    Sources:
        * [tradingview](https://www.tradingview.com/wiki/Volume_Weighted_Average_Price_(VWAP))
        * [Trading Technologies](https://www.tradingtechnologies.com/help/x-study/technical-indicator-definitions/volume-weighted-average-price-vwap/)
        * [Stockcharts](https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:vwap_intraday)
        * [Sierra Chart](https://www.sierrachart.com/index.php?page=doc/StudiesReference.php&ID=108&Name=Volume_Weighted_Average_Price_-_VWAP_-_with_Standard_Deviation_Lines)

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        volume (Series): ```volume``` Series
        anchor (str): VWAP Anchor. Default: ```"D"```.
        bands (list): List of positive ```IntFloat``` deviations.
            Default: ```[]```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series | pd.DataFrame): ```DataFrame``` when ```bands``` is set.
            Default: ```Series```

    Note:
        * Commonly used with intraday charts to identify general direction.
        * Depending on the index values, it will implement various
          [Timeseries Offset Aliases](https://pandas.pydata.org/pandas-docs/stable/user_guide/timeseries.html#timeseries-offset-aliases)

    Tip:
        * Negative bands are computed automatically.
       ND)r   r   r   z+[!] VWAP requires an ordered DatetimeIndex.VWAP_ignore)actioncategory   g      ?overlap)index_L__U_r   fillnaT)inplace)r   r   r   
isinstancestrlenupperr	   r
   printr   UserWarninggroupbyr    	to_periodcumsumnamer   r   emptyshiftr#   )r   r   r   r   r   r   r   r   _lengthtypical_price_propswpvwapvwap_varvwap_var_sumvwap_volume_sumstd_volume_weighteddfis                      c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volume/vwap.pyr5   r5   
   s   R GD'"D
3
 CUG$Efg&F|s{emv~5MEfF*VS)c&kQ.>d59Mf%}-;< VHF		B;7::bhh((0188:
..//7
8
?
?
ABD U]T1a77WX^^--f56vvx 	 WV\\++F34VVX 	+o=#E DIDM		4(<A$(1/B+B$BB&QC !$(1/B+B$BB&QC !FLLB&QC !&vhc!,=)>)C-6B&QC !*-6B&QC !*   {&!Bzz&! 6IIfX&I5KKx($K7RXX	K    )NNN)warningsr   pandasr   r   pandas_ta._typingr   r   r   pandas_ta.overlapr	   pandas_ta.utilsr
   r   r   r   r&   r5    r=   r<   <module>rD      s    ! $ 1 1 " J J '+n
nn&,n6<nn#n n #+n 	nr=   