
    iN	                         S SK Jr  S SKJrJrJr  S SKJr  S SKJ	r	  S SK
JrJrJrJrJrJr     SS\S\S	\S
\S\S\S\S\4S jjrg)    )Series)DictLikeIntIntFloat)Imports)rma)v_driftv_offsetv_pos_defaultv_scalarv_seriesv_talibNcloselengthscalartalibdriftoffsetkwargsreturnc                    [        US5      n[        XS-   5      n U c  g[        US5      n[        U5      n[	        U5      n[        U5      n[        S   (       a  U(       a  SSKJn  U" X5      n	OU R                  U5      n
U
R                  5       R                  SS9nU
R                  5       R                  SS	9R                  5       nU(       a  [        X5      n[        X5      nO>UR                  U5      R                  5       nUR                  U5      R                  5       nX-U-
  -  X-   -  n	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  Chande Momentum Oscillator

This indicator attempts to capture momentum.

Sources:
    * [tradingtechnologies](https://www.tradingtechnologies.com/help/x-study/technical-indicator-definitions/chande-momentum-oscillator-cmo/)
    * [tradingview](https://www.tradingview.com/script/hdrf0fXV-Variable-Index-Dynamic-Average-VIDYA/)

Parameters:
    close (Series): ```close``` Series
    scalar (float): Scalar. Default: ```100```
    talib (bool): If installed, use TA Lib. Uses EMA if ```False```.
        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:
    * Overbought around 50
    * Oversold around -50.
      Nd   r   r   )CMO)lower)upperfillnaT)inplaceCMO_momentum)r   r   r   r   r	   r
   r   r   r   diffcopyclipabsr   rollingsumshiftr   namecategory)r   r   r   r   r   r   r   mode_talr   cmomompositivenegativepos_neg_s                  Q/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/momentum/cmo.pyr,   r,      sX   @ 62&FUQJ'E}fc"Fu~HENEfF wH% jj88:???+88:???+//1x(Dx(D##F+//1D##F+//1Dt$4 {ii 6

6(#T
2 fXCHCLJ    )NNNNN)pandasr   pandas_ta._typingr   r   r   pandas_ta.mapsr   pandas_ta.overlapr   pandas_ta.utilsr	   r
   r   r   r   r   boolr,    r3   r2   <module>r;      s}     5 5 " !  ;?%)III/7II"I I #+I 	Ir3   