
    Q-js                     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edededed	ef
d
Z
y)    )Series)DictLikeInt)v_offsetv_pos_defaultv_seriesweightsNcloselengthoffsetkwargsreturnc                    t        |d      }t        | |      } | yt        |      }t        d|dz         }| j	                  |      j                  t        |      d      }| | j	                  |      j                         z  }|dk7  r|j                  |      }d|v r|j                  |d   d       d	| |_
        d
|_        |S )a  Center of Gravity

    This indicator, by John Ehlers, attempts to identify turning points with
    minimal to zero lag and smoothing.

    Sources:
        * [MESA Software](http://www.mesasoftware.com/papers/TheCGOscillator.pdf)

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

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

    Returns:
        (Series): 1 column
    
   N   T)rawr   fillna)inplaceCG_momentum)r   r   r   rangerollingapplyr	   sumshiftr   namecategory)r
   r   r   r   coefficients	numeratorcgs          c/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/momentum/cg.pyr    r       s    0 62&FUF#E}fF FQJ'Lf%++GL,At+LI
emmF+//1	1B {XXf 6
		&"D	1 F8nBGBKI    )NN)pandasr   pandas_ta._typingr   r   pandas_ta.utilsr   r   r   r	   r     r"   r!   <module>r'      sH     + F F
 "&1111"*1 1r"   