
    i                         S SK Jr  S SKJr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Jr     SS\S	\S
\S\S\S\S\S\S\S\4S jjrg)    )isnan)	DataFrameSeries)DictLikeIntIntFloat)ma)Imports)tal_mav_mamodev_offsetv_pos_defaultv_scalarv_seriesv_talibNclosefastslowsignalscalarmamodetaliboffsetkwargsreturnc                    [        US5      n[        US5      n[        US5      nX!:  a  X!p![        XU5      n	[        X	5      n U c  g[        US5      n[	        US5      n[        U5      n
[        U5      n[        S   (       a!  U
(       a  SS	KJ	n  U" XU[        U5      5      nO[        XPXS
9n[        XPX*S
9nXMU-
  -  U-  n[        [        U5      5      (       a  g[        SXU
S
9nX-
  nUS:w  a3  UR                  U5      nUR                  U5      nUR                  U5      nSU;   a9  UR                  US   SS9  UR                  US   SS9  UR                  US   SS9  SU SU SU 3nSU 3Ul        SU 3Ul        SU 3Ul        S=Ul        =Ul        Ul        UR                   UUR                   UUR                   U0n[%        UU R&                  S9nSU 3Ul        UR"                  Ul        U$ )a  Percentage Price Oscillator

Similar to MACD.

Sources:
    * [investopedia](https://www.investopedia.com/terms/p/ppo.asp)

Parameters:
    close (Series): ```close``` Series
    fast (int): Fast MA period. Default: ```12```
    slow (int): Slow MA period. Default: ```26```
    signal (int): Signal period. Default: ```9```
    scalar (float): Scalar. Default: ```100```
    mamode (str): See ```help(ta.ma)```. Default: ```"sma"```
    talib (bool): If installed, use TA Lib. Default: ```True```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (DataFrame): 3 columns
      	   Nd   smar   r   )PPO)lengthr   emafillnaT)inplace_r"   PPOhPPOsmomentum)index)r   maxr   r   r   r   r   r
   r   r"   r   r	   allr   shiftr%   namecategoryr   r+   )r   r   r   r   r   r   r   r   r   _lengthmode_talr"   ppofastmaslowmasignalma	histogram_propsdatadfs                       Q/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/momentum/ppo.pyr3   r3      s   : r"Dr"D61%F{d$f%GU$E}fc"Ffe$Fu~HfF wH%tVF^4F$?F$?(61
5:%8<HI {iiOOF+	>>&) 6

6(#T
2)48x($7 avQvh'FVH~CHF8_IN6(OHM<FFCLF9%(9 	#	xD
 
4u{{	+BF8nBG,,BKI    )NNNNNNN)numpyr   pandasr   r   pandas_ta._typingr   r   r   pandas_ta.mar	   pandas_ta.mapsr
   pandas_ta.utilsr   r   r   r   r   r   r   strboolr3    r<   r;   <module>rF      s     $ 5 5  "   FJ?CXXX+.X?BXX%(X8<X X #+X 	Xr<   