
    Q-jX                     z    d dl 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 	 	 ddeded	ed
edededefdZy)    )isnan)Series)DictLikeInt)ema)non_zero_rangev_offsetv_pos_defaultv_seriesNhighlowfastslowoffsetkwargsreturnc                    t        |d      }t        |d      }||k  r||}}dt        ||      z  t        ||      z
  }t        | |      } t        ||      }| |yt	        |      }d|v r|j                  d       t        | |      }t        d||d|}t        t        |            ryt        d||d|}	t        t        |	            ry||	z  }
|
j                  ||      j                         }t        t        |            ry|dk7  r|j                  |      }d	|v r|j                  |d	   d
       d| d| |_        d|_        |S )ap  Mass Index

    This indicator attempts to use a High-Low Range to identify trend
    reversals based on range expansions.

    Sources:
        * [stockcharts](https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:mass_index)

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        fast (int): Fast period. Default: ```9```
        slow (int): Slow period. Default: ```25```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
    	         Nlength)closer   )min_periodsr   fillnaT)inplaceMASSI__
volatility )r
   maxminr   r	   popr   r   allr   rollingsumshiftr   namecategory)r   r   r   r   r   r   _lengthhigh_low_rangehl_ema1hl_ema2hl_ratiomassis               h/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volatility/massi.pyr.   r.   
   sl   4 q!Dr"Dd{4d#dD/!CdO3GD'"D
3
 C|s{fF6

8 $D#.N>t>v>G
5>777G
5> HTt488:E
5< {F# 6VH%t4 $q'EJ!ENL    )NNN)numpyr   pandasr   pandas_ta._typingr   r   pandas_ta.overlapr   pandas_ta.utilsr   r	   r
   r   r.   r   r0   r/   <module>r6      sg      + ! M M
 >BC
CC%(C7:CC"*C Cr0   