
    Q-jt                     d    d dl mZ d dlmZmZmZ d dlmZmZm	Z	 d Z
	 	 ddededed	ed
edefdZy)    )Series)DictLikeIntIntFloat)v_offsetv_pos_defaultv_seriesc                 b    ||z  | d   | d   z  dz  z  }| d   | d   | d   z
  |z  z   | d<   | d   S )N   r       )xnkds       d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/overlap/mcgd.py_mcgdr      sM    	
Q!A$1+!#	#AaDQqTAaD[A%&AaDQ4K    Ncloselengthcoffsetkwargsreturnc                    t        |d      }t        | |      } | yt        |t              rd|cxk  rdk  rn nt        |      nd}t	        |      }| j                         } | dd j                  dd      j                  t        ||dd	      }|dk7  r|j                  |      }d
|v r|j                  |d
   d       d| |_        d|_        |S )aB  McGinley Dynamic Indicator

    This indicator, by John R. McGinley, is not a moving average but a
    differential smoothing technique.

    Sources:
        * John R. McGinley, a Certified Market Technician (CMT) and former
          editor of the Market Technicians Association's Journal of
          Technical Analysis.
        * [investopedia](https://www.investopedia.com/articles/forex/09/mcginley-dynamic-indicator.asp)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```10```
        c (float): Denominator multiplier. Default: ```1```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column

    Note:
        Sometimes ```c``` is set to ```0.6```.
    
   Nr   r      )min_periods)r   r   T)r   rawfillna)inplaceMCGD_overlap)r   r	   
isinstancefloatr   copyrollingapplyr   shiftr    namecategory)r   r   r   r   r   mcg_dss         r   mcgdr-      s    > 62&FUF#E}q%(QZaZaQAfF JJLE12Yqa0	u62	=  {f% 6fX&5 &"FKFOMr   )NNN)pandasr   pandas_ta._typingr   r   r   pandas_ta.utilsr   r   r	   r   r-   r   r   r   <module>r1      sX     5 5 = = 6::::*2::"*: :r   