
    Q-j                     j    d dl 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 	 	 ddededed	ed
edefdZy)    )Series)DictLikeInt)sma)v_boolv_offsetv_pos_defaultv_seriesNcloselengthcenteredoffsetkwargsreturnc                    t        |d      }t        | |dz         } | yt        |d      }t        |      }t	        d|z        dz   }t        | |      }|r%| j                  |      |z
  j                  |       }n| |j                  |      z
  }|dk7  r|j                  |      }d|v r|j                  |d   d       d	| |_        d
|_	        |S )a  Detrend Price Oscillator

    This indicator attempts to detrend (remove the trend) and identify cycles.

    Sources:
        * [fidelity](https://www.fidelity.com/learning-center/trading-investing/technical-analysis/technical-indicator-guide/dpo)
        * [stockcharts](http://stockcharts.com/school/doku.php?id=chart_school:technical_indicators:detrended_price_osci)
        * [tradingview](https://www.tradingview.com/scripts/detrendedpriceoscillator/)

    Parameters:
        close (Series): ```close``` Series
        length (int): The period. Default: ```20```
        centered (bool): Shift the dpo back by ```int(0.5 * length) + 1```.
            Set to ```False``` to remove data leakage. Default: ```True```
        offset (int): Post shift. Default: ```0```

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

    Returns:
        (Series): 1 column

    Danger: Possible Data Leak
        Set ```centered=False``` to remove data leakage. See [Issue #60]( https://github.com/twopirllc/pandas-ta/issues/60#).
          NTg      ?r   fillna)inplaceDPO_trend)
r	   r
   r   r   intr   shiftr   namecategory)r   r   r   r   r   tmadpos           a/Users/jameslopez/projects/TradingBot25/.venv/lib/python3.12/site-packages/pandas_ta/trend/dpo.pyr   r   	   s    < 62&FUFQJ'E}h%HfF 	C&LAA	UF	B{{1~"))1"-bhhqk! {ii 6

6(#T
2 fXCHCLJ    )NTN)pandasr   pandas_ta._typingr   r   pandas_ta.overlapr   pandas_ta.utilsr   r   r	   r
   boolr    r    r   <module>r'      sS     + ! E E
 9=<<<15<<"*< <r    