
    i:                     ~    S SK Jr  S SKJr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\S\S	\S
\S\S\S\4S jjrg)    )Series)DictLikeInt)emasma)v_offsetv_pos_defaultv_series)atrNhighlowcloselengthoffsetkwargsreturnc           	      `   [        US5      nSU-  n[        X5      n [        X5      n[        X&5      nU b  Ub  Uc  g[        U5      nU[        X#5      -
  [	        [        XX#5      U5      -  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  Pretty Good Oscillator

This indicator, by Mark Johnson, attempts to identify breakouts for longer
time periods based on the distance of the current bar to its N-day
SMA, expressed in terms of an ATR over a similar length.

Sources:
    * [tradingtechnologies](https://library.tradingtechnologies.com/trade/chrt-ti-pretty-good-oscillator.html)

Parameters:
    high (Series): ```high``` Series
    low (Series): ```low``` Series
    close (Series): ```close``` Series
    length (int): The period. Default: ```14```
    offset (int): Post shift. Default: ```0```

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

Returns:
    (Series): 1 column

Note: Entry
    * Long when greater than 3.
    * Short when less than -3.
      Nr   fillnaT)inplacePGO_momentum)
r	   r
   r   r   r   r   shiftr   namecategory)r   r   r   r   r   r   _lengthpgos           Q/var/www/html/trading/venv/lib/python3.13/site-packages/pandas_ta/momentum/pgo.pyr   r   
   s    > 62&F&jGD"D
3
 CU$E|s{emfF 3u%%
c$U+V
45C {ii 6

6(#T
2 fXCHCLJ    )NN)pandasr   pandas_ta._typingr   r   pandas_ta.overlapr   r   pandas_ta.utilsr   r	   r
   pandas_ta.volatilityr   r    r    r   <module>r'      s_     + & = = $
 =A:
::&,:69::"*: :r    