
    Q-j{                         d dl mZmZ d dlmZmZ d dlmZmZ d dl	m
Z
 d dlmZmZmZmZmZmZ 	 	 	 	 ddeded	ed
ededededededededefdZy)    )isnanzeros)	DataFrameSeries)DictLikeInt)ma)sum_signed_rolling_deltasv_boolv_mamodev_offsetv_pos_defaultv_seriesNopen_close
tmo_lengthcalc_lengthsmooth_lengthmomentum	normalize	exclusivemamodeoffsetkwargsreturnc
                    t        |d      }t        |d      }t        |d      }t        |||      }t        | |      } t        ||      }t        |	      }	d|
v r|
j	                  d       | |yt        |d      }t        |d      }t        |d      }t        |d      }t        | |||	      }t        t        |            ryt        |||
      }t        t        |            ryt        |||
      }t        t        |            ryt        |||
      }t        t        |            ry|r)||j                  |      z
  }||j                  |      z
  }nCt        |j                        }t        ||j                        }t        ||j                        }|	dk7  rD|j                  |	      }|j                  |	      }|j                  |	      }|j                  |	      }d|
v rX|j!                  |
d   d       |j!                  |
d   d       |j!                  |
d   d       |j!                  |
d   d       d| d| d| }d| |_        d| |_        d| |_        d| |_        dx|_        |_        |j$                  x|_        |_        |j"                  ||j"                  ||j"                  ||j"                  |i}t'        ||j                        }d| |_        |j$                  |_        |S )aT  True Momentum Oscillator

    This indicator attempts to quantify momentum.

    Sources:
        * [tradingview A](https://www.tradingview.com/script/VRwDppqd-True-Momentum-Oscillator/)
        * [tradingview B](https://www.tradingview.com/script/65vpO7T5-True-Momentum-Oscillator-Universal-Edition/)

    Parameters:
        open_ (Series): ```open``` Series
        close (Series): ```close``` Series
        tmo_length (int): TMO period. Default: ```14```
        calc_length (int): Initial MA period. Default: ```5```
        smooth_length (int): Main and smooth signal MA period. Default: ```3```
        mamode (str): See ```help(ta.ma)```. Default: ```"ema"```
        momentum (bool): Compute main and smooth momentum. Default: ```False```
        normalize (bool): Normalize. Default: ```False```
        exclusive (bool): Exclusive period over ```n``` bars, or inclusively
            over ```n-1``` bars. Default: ```True```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (DataFrame): 4 columns
             lengthNemaFT)r   )r    )indexr   fillna)inplace_TMOTMOsTMOMTMOMsr   )r   maxr   r   popr   r   r
   allr   r	   shiftr   sizer   r"   r#   namecategoryr   )r   r   r   r   r   r   r   r   r   r   r   _lengthcompute_momentumnormalize_signalsigned_diff_sum
initial_mamainsmoothmom_main
mom_smooth
zero_array_propsdatadfs                           d/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/momentum/tmo.pytmor?      s   D z2.JQ/K!-3M*k=9GUG$EUG$EfF6

8}fe$Fh.i/y$'I/ujIO 5!"FOK@J
5fj7D
5;]3F
5=$**Z00fll:66
499%
*DJJ7Jfll;
 {zz&!f%>>&)%%f-
 6F8$d3fX&5x($7&*D9 Ak]!M?;FfXDI/FK6(OHMfX&JO&00DMFO.2mm;H
+ 			4Vx	D 
4u{{	+BF8nBG--BKI    )NNNNNNNN)numpyr   r   pandasr   r   pandas_ta._typingr   r   pandas_ta.mar	   pandas_ta.utilsr
   r   r   r   r   r   boolstrr?    r@   r>   <module>rI      s     $ +   5926EI&*	qq q.1qq,/q q '+q ?Cq 	q !$	q 7?	q
 qr@   