
    Q-j
                         d dl mZ 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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	defdZy)    )
float_info)sqrt)	DataFrameSeries)DictLikeIntIntFloat)v_boolv_offsetv_pos_defaultv_seriesNclosescalarchannelsnanbncndoffsetkwargsreturnc           
         t        | d      } t        |d      }t        |d      }t        |d      }t        |d      }t        |d      }t        |d      }t        |      }| ydx}	x}
}| j                  d   x}x}}g g g }}}g g }}| j
                  }t        |      D ]5  }d|z
  ||
z   d|	z  z   z  || j                  |   z  z   }d|z
  |
|	z   z  |||z
  z  z   }d|z
  |	z  |||
z
  z  z   }|j                  ||z   d|z  z          d|z
  |z  |||z
  z  ||z
  z  z   }t        |      }|j                  ||   ||z  z          |j                  ||   ||z  z
         |r[|j                  ||   ||   z
         |j                  | j                  |   ||   z
  ||   ||   z
  t        j                  z   z         | j                  |   }|}	|}|}
|}||   }8 t        || j                  	      }t        || j                  	      }t        || j                  	      }|r.t        || j                  	      }t        || j                  	      }|dk7  rW|j                  |      }|j                  |      }|j                  |      }|r"j                  |      }j                  |      }d
|v rp|j                  |d
   d       |j                  |d
   d       |j                  |d
   d       |r,j                  |d
   d       j                  |d
   d       d| } d|  |_        d|  |_        d|  |_        dx|_        x|_        |_        |r1|j                  ||j                  ||j                  |d|  d|  i}!n&|j                  ||j                  ||j                  |i}!t#        |!| j                  	      }"d| |"_        |j                   |"_        |"S )a  Holt-Winter Channel

    This indicator creates a three-parameter moving average using the
    "Holt-Winters" method.

    Sources:
        * [rengel8](https://github.com/rengel8) (2021-08-11) based on the
          implementation from "MetaTrader 5"
        * [mql5](https://www.mql5.com/en/code/20857)

    Parameters:
        close (Series): ```close``` Series
        scalar (float): Channel scalar. Default: ```1```
        channels (bool): Return width and percentage columns.
            Default: ```True```
        na (float): Smoothed series in range ```[0, 1]```. Default: ```0.2```
        nb (float): Trend value in range ```[0, 1]```. Default: ```0.1```
        nc (float): Seasonality value in range ```[0, 1]```. Default: ```0.1```
        nd (float): Channel value in range ```[0, 1]```. Default: ```0.1```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (DataFrame): 3 columns
       Tg?g?Nr   g      ?g      ?)indexfillna)inplace_HWMHWUHWL
volatilityHWWHWPCTHWC_)r   r   r
   r   ilocsizerangeappendr   sfltepsilonr   r   shiftr   namecategoryr   )#r   r   r   r   r   r   r   r   r   last_alast_vlast_varlast_f
last_pricelast_resultlowerresultupperchan_pct_width
chan_widthmiFVAvarstddevhwc	hwc_upper	hwc_lower	hwc_widthhwc_pctwidth_propsdatadfs#                                      f/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volatility/hwc.pyr@   r@   
   s3   D UAE61%Fh%H	r3	B	r3	B	r3	B	r3	BfF} "#"F"Vh(-

15F5Z+r256E!#RJN

A1X2X&6/C&L89BA<NN2X&6/*R1v:->>2X"F
"33q1usQw(Rx8#*{*+zK/GHIhVAY&01VAY&01eAhq12!!Aq)eAhq.ADLL.PQ
 ZZ]
Qi5 : u{{
+CuEKK0IuEKK0I:U[[9	nEKK@ {iiOOF+	OOF+	!/I'--f5L 6

6(#T
2)48)48VH-t<x 0$? \FVH~CH6(^IN6(^IN=IICLI9%	(:HHcNNINNI&NIF8l
 HHcNNINNI

 
4u{{	+BVHoBG,,BKI    )NNNNNNN)sysr   r)   numpyr   pandasr   r   pandas_ta._typingr   r   r	   pandas_ta.utilsr
   r   r   r   boolr@    rI   rH   <module>rQ      s    "  $ 5 5 E E
 >B(,(,	DD#D6:DD%D 	D &D 	D #+	D
 DrI   