
    Q-jQ	                         d dl mZ d dlmZmZmZ d dlmZmZ d dl	m
Z
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)    )Series)DictLikeIntIntFloat)hl2sma)non_zero_rangev_driftv_pos_defaultv_offsetv_seriesNhighlowclosevolumelengthdivisordriftoffsetkwargsreturnc                 ,   t        |d      }|dz   }	t        | |	      } t        ||	      }t        ||	      }t        ||	      }| |||yt        |d      }t        |      }t        |      }t	        | |      }
t        | |      }|t        | j                  |      |j                  |            z  }||z  }||
z  }||z  }t        ||      }|dk7  r|j                  |      }d|v r|j                  |d   d	
       d| d| |_	        d|_
        |S )a  Ease of Movement

    This indicator is an oscillator that attempts to quantify the relationship
    with HLC and volume.

    Sources:
        * [motivewave](https://www.motivewave.com/studies/ease_of_movement.htm)
        * [stockcharts](https://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:ease_of_movement_emv)
        * [tradingview](https://www.tradingview.com/wiki/Ease_of_Movement_(EOM))

    Parameters:
        high (Series): ```high``` Series
        low (Series): ```low``` Series
        close (Series): ```close``` Series
        volume (Series): ```volume``` Series
        length (int): The period. Default: ```14```
        divisor (float): Divisor. Default: ```100_000_000```
        drift (int): Difference amount. Default: ```1```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column
          Ni )r   r   )r   r   fillnaT)inplaceEOM__r   )r   r   r
   r   r	   r   shiftr   r   namecategory)r   r   r   r   r   r   r   r   r   _lengthhl_rangedistance	box_ratioeoms                 b/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/volume/eom.pyr&   r&      s<   @ 62&FqjGD'"D
3
 CUG$Efg&F|s{emv~G[1GENEfF dC(H#&HE*		%0@AAH II
Y
C
c&
!C {ii 6

6(#T
2 fXQwi(CHCLJ    )NNNN)pandasr   pandas_ta._typingr   r   r   pandas_ta.overlapr   r   pandas_ta.utilsr	   r
   r   r   r   r&    r(   r'   <module>r.      s     5 5 &  ?CC
CC&,C6<CC!)C8;C C #+C 	Cr(   