
    Q-j	                     j    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fdZy)    )	DataFrameSeriesconcat)DictLikeInt)signalsv_driftv_offsetv_pos_defaultv_seriesNcloselengthdriftoffsetkwargsreturnc                 .   t        |d      }t        | |dz         } | yt        |      }t        |      }| j	                  |      j                         }| j	                  |      j                         }|j                  |      j                         }||z  }|dk7  r|j                  |      }d|v r|j                  |d   d       d	| |_
        d
|_        |j                  dd      }	|	s|S t        t        |j                  |i      t        ||j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |j                  dd      |	      gd      }
|
S )a  Efficiency Ratio

    This indicator, by Perry J. Kaufman, attempts to identify market noise
    or volatility.

    Sources:
        * "New Trading Systems and Methods", Perry J. Kaufman
        * [tc2000](https://help.tc2000.com/m/69404/l/749623-kaufman-efficiency-ratio)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```1```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column

    Note:
        It is calculated by dividing the net change in price movement over
        ```n``` periods by the sum of the absolute net changes over the
        same ```n``` periods.
    
      N)windowr   fillnaT)inplaceER_momentumsignal_indicatorsFxaP   xb   xseries	xseries_a	xseries_bcross_valuescross_series)		indicatorr   r   r    r!   r"   r#   r$   r   )axis)r   r   r	   r
   diffabsrollingsumshiftr   namecategorypopr   r   r   )r   r   r   r   r   abs_diffabs_volatilityabs_volatility_rsumerr   	signalsdfs              c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/momentum/er.pyr2   r2      s   < 62&FUFQJ'E}ENEfF zz&!%%'HZZ&**,N(000?CCE	'	'B {XXf 6
		&"D	1 F8nBGBK

#6>	277B-( zz$+zz$+"JJy$7$jjd;$jjd;!'NE!B!'ND!A!
 
	"     )NNN)pandasr   r   r   pandas_ta._typingr   r   pandas_ta.utilsr   r	   r
   r   r   r2    r5   r4   <module>r:      s^    , , +  59OOO.1OO"*O Or5   