
    Q-j                         d dl mZ 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mZ ddlmZ ddlmZ dd	lmZ 	 	 ddede	dede	dedefdZy
)    )modules)sqrt)Series)DictLikeInt)v_mamodev_offsetv_pos_defaultv_series   )ema)sma)wmaNcloselengthmamodeoffsetkwargsreturnc                    t        |d      }t        | |dz         } | yt        |d      }t        |      }|dvryt	        t
        t           |      }t        |dz        }t        t        |            } || |      } || |      }	 |d|z  |	z
  |      }
|dk7  r|
j                  |      }
d	|v r|
j                  |d	   d
       d|dk(  rdn|d    d| |
_        d|
_        |
S )a2  Hull Moving Average

    This indicator, by Alan Hull, attempts to reduce lag compared to
    classical moving averages.

    Sources:
        * [Alan Hull](https://alanhull.com/hull-moving-average)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```10```
        mamode (str): One of: 'ema', 'sma', or 'wma'. Default: ```"wma"```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
    
      Nr   )r   r   r   )r   )r   r   r   fillnaT)inplaceHMA _overlap)r
   r   r   r	   getattrmodule___name__intr   shiftr   namecategory)r   r   r   r   r   _mahalf_lengthsqrt_lengthmafmashmas              c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/hma.pyr+   r+      s	   2 62&FUFQJ'E}fe$FfF**
'(#V
,C fqj/Kd6l#K
eK
(C
eF
#C
AGcM+
6C {ii 6

6(#T
2 6U?Rq	:!F8DCHCLJ    )NNN)sysr   r    numpyr   pandasr   pandas_ta._typingr   r   pandas_ta.utilsr   r	   r
   r   r   r   r   strr+    r-   r,   <module>r5      s_    "   + G G   
 6:;;;/2;;"*; ;r-   