
    i                         S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	J
r
JrJrJrJr     SS\S\S	\S
\S\S\S\4S jjrS\S\S
\4S jrg)    )nan)Series)DictLikeInt)Imports)v_driftv_offsetv_pos_defaultv_seriesv_talibNcloselengthtalibdriftoffsetkwargsreturnc                    [        US5      n[        XS-   5      n U c  g[        U5      n[        U5      n[	        U5      nU R
                  nSUS-   -  n[        S   (       a  U(       a  SSKJn	  SU	" X5      -  n
O[        XU5      n
U
R                  5       R                  [        5      n[        S	U R                  S
9n[        X5       HY  nXR                   U   -  U R                   U   -  UR                   US-
     SXR                   U   -  -
  -  -   UR                   U'   M[     UR#                  S[$        0SS9  US:w  a  UR'                  U5      nSU;   a  UR)                  US   SS9  SU 3Ul        SUl        U$ )a-  Variable Index Dynamic Average

This indicator, by Tushar Chande, is similar to an EMA but it has a
dynamically adjusted lookback period dependent based on CMO.

Sources:
    * [perfecttrendsystem](https://www.perfecttrendsystem.com/blog_mt4_2/en/vidya-indicator-for-mt4)
    * [tradingview](https://www.tradingview.com/script/hdrf0fXV-Variable-Index-Dynamic-Average-VIDYA/)

Parameters:
    close (Series): ```close``` Series
    length (int): The period. Default: ```14```
    talib (bool): If installed, use TA Lib. Default: ```True```
    drift (int): Difference amount. Default: ```1```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (Series): 1 column

Note:
    Sometimes used as a moving average or a trend identifier.
      N   r   r   )CMOg{Gz?g        )indexT)inplacefillnaVIDYA_overlap)r
   r   r   r   r	   sizer   r   r   _cmoabsastypefloatr   r   rangeilocreplacer   shiftr   namecategory)r   r   r   r   r   r   mode_talmalphar   cmo_abs_cmovidyais                 R/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/overlap/vidya.pyr.   r.      so   > 62&FUQJ'E}u~HENEfF 	

A!EwHc%((E5)hhj&G3ekk*E6Q/%**Q-?JJq1uU\\!_%<!<=>

1  
MM1c(DM) {F# 6VH%t4 &"EJENL    xc                 B   U R                  U5      nUR                  5       R                  SS9nUR                  5       R                  SS9R                  5       nUR	                  U5      R                  5       nUR	                  U5      R                  5       nXg-
  Xg-   -  $ )a  Chande Momentum Oscillator Patch

Unguarded CMO Patch

Parameters:
    x (Series): ```x``` Series
    length (int): The period.
    drift (int): Difference amount.

Returns:
    (Series): 1 column

Info: Weird Circular TypeError!?
    For some reason: from pandas_ta.momentum import cmo causes
    pandas_ta.momentum.coppock to not be able to import it's _wma_ like
    from pandas_ta.overlap import wma?
r   )lower)upper)diffcopyclipr    rollingsum)r2   r   r   mompositivenegativepos_sumneg_sums           r0   r   r   Y   s    $ &&-CxxzQ'HxxzQ'++-Hv&**,Gv&**,G'"344r1   )NNNN)numpyr   pandasr   pandas_ta._typingr   r   pandas_ta.mapsr   pandas_ta.utilsr   r	   r
   r   r   boolr.   r    r1   r0   <module>rG      s      + "  "&%)FFFF"F F #+F 	FR5F 5C 5 5r1   