Ë
    �V.j®  ã                   ó~   — d Z ddlZddlZddlmZ  G d„ de«      Z G d„ de«      Z G d„ d	e«      Z	dd
„Z
dd„Zdd„Zy)zi
.. module:: others
   :synopsis: Others Indicators.

.. moduleauthor:: Dario Lopez Padial (Bukosabino)

é    N)ÚIndicatorMixinc                   ó\   — e Zd ZdZd	dej
                  defd„Zd„ Zdej
                  fd„Z	y)
ÚDailyReturnIndicatorz‡Daily Return (DR)

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.
    ÚcloseÚfillnac                 ó@   — || _         || _        | j                  «        y ©N©Ú_closeÚ_fillnaÚ_run©Úselfr   r   s      úKC:\xampp\htdocs\tradingbinance\backend\.venv\Lib\site-packages\ta/others.pyÚ__init__zDailyReturnIndicator.__init__   ó   € ØˆŒØˆŒØ�	‰	�ó    c                 óŽ   — | j                   | j                   j                  d«      z  dz
  | _        | xj                  dz  c_        y )Né   éd   )r   ÚshiftÚ_dr©r   s    r   r   zDailyReturnIndicator._run   s3   € Ø—K‘K $§+¡+×"3Ñ"3°AÓ"6Ñ6¸!Ñ;ˆŒØ�Š�C‰Žr   Úreturnc                 ój   — | j                  | j                  d¬«      }t        j                  |d¬«      S )z^Daily Return (DR)

        Returns:
            pandas.Series: New feature generated.
        r   ©ÚvalueÚd_ret©Úname©Ú_check_fillnar   ÚpdÚSeries©r   Ú	dr_seriess     r   Údaily_returnz!DailyReturnIndicator.daily_return   s.   € ð ×&Ñ& t§x¡x°qÐ&Ó9ˆ	Ü�y‰y˜¨Ô1Ð1r   N©F)
Ú__name__Ú
__module__Ú__qualname__Ú__doc__r#   r$   Úboolr   r   r'   © r   r   r   r      s3   „ ññ˜bŸi™ið °ó ò
ð2˜bŸi™iô 2r   r   c                   ó\   — e Zd ZdZd	dej
                  defd„Zd„ Zdej
                  fd„Z	y)
ÚDailyLogReturnIndicatorzæDaily Log Return (DLR)

    https://stackoverflow.com/questions/31287552/logarithmic-returns-in-pandas-dataframe

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.
    r   r   c                 ó@   — || _         || _        | j                  «        y r	   r
   r   s      r   r   z DailyLogReturnIndicator.__init__3   r   r   c                 ó¸   — t        j                  t        j                  | j                  «      «      j                  «       | _        | xj                  dz  c_        y )Nr   )r#   r$   ÚnpÚlogr   Údiffr   r   s    r   r   zDailyLogReturnIndicator._run8   s5   € Ü—9‘9œRŸV™V D§K¡KÓ0Ó1×6Ñ6Ó8ˆŒØ�Š�C‰Žr   r   c                 ój   — | j                  | j                  d¬«      }t        j                  |d¬«      S )zcDaily Log Return (DLR)

        Returns:
            pandas.Series: New feature generated.
        r   r   Úd_logretr   r!   r%   s     r   Údaily_log_returnz(DailyLogReturnIndicator.daily_log_return<   s.   € ð ×&Ñ& t§x¡x°qÐ&Ó9ˆ	Ü�y‰y˜¨Ô4Ð4r   Nr(   )
r)   r*   r+   r,   r#   r$   r-   r   r   r8   r.   r   r   r0   r0   )   s3   „ ññ˜bŸi™ið °ó ò
ð5 "§)¡)ô 5r   r0   c                   ó\   — e Zd ZdZd	dej
                  defd„Zd„ Zdej
                  fd„Z	y)
ÚCumulativeReturnIndicatorzŒCumulative Return (CR)

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.
    r   r   c                 ó@   — || _         || _        | j                  «        y r	   r
   r   s      r   r   z"CumulativeReturnIndicator.__init__N   r   r   c                 óŠ   — | j                   | j                   j                  d   z  dz
  | _        | xj                  dz  c_        y )Nr   r   r   )r   ÚilocÚ_crr   s    r   r   zCumulativeReturnIndicator._runS   s3   € Ø—K‘K $§+¡+×"2Ñ"2°1Ñ"5Ñ5¸Ñ:ˆŒØ�Š�C‰Žr   r   c                 ój   — | j                  | j                  d¬«      }t        j                  |d¬«      S )zcCumulative Return (CR)

        Returns:
            pandas.Series: New feature generated.
        éÿÿÿÿr   Úcum_retr   )r"   r>   r#   r$   )r   rA   s     r   Úcumulative_returnz+CumulativeReturnIndicator.cumulative_returnW   s.   € ð ×$Ñ$ T§X¡X°RÐ$Ó8ˆÜ�y‰y˜ yÔ1Ð1r   Nr(   )
r)   r*   r+   r,   r#   r$   r-   r   r   rB   r.   r   r   r:   r:   F   s3   „ ññ˜bŸi™ið °ó ò
ð2 2§9¡9ô 2r   r:   c                 ó8   — t        | |¬«      j                  «       S )zÃDaily Return (DR)

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.

    Returns:
        pandas.Series: New feature generated.
    ©r   r   )r   r'   rD   s     r   r'   r'   a   s   € ô   e°FÔ;×HÑHÓJÐJr   c                 ó8   — t        | |¬«      j                  «       S )a"  Daily Log Return (DLR)

    https://stackoverflow.com/questions/31287552/logarithmic-returns-in-pandas-dataframe

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.

    Returns:
        pandas.Series: New feature generated.
    rD   )r0   r8   rD   s     r   r8   r8   n   s   € ô #¨°vÔ>×OÑOÓQÐQr   c                 ó8   — t        | |¬«      j                  «       S )zÈCumulative Return (CR)

    Args:
        close(pandas.Series): dataset 'Close' column.
        fillna(bool): if True, fill nan values.

    Returns:
        pandas.Series: New feature generated.
    rD   )r:   rB   rD   s     r   rB   rB   }   s   € ô %¨5¸Ô@×RÑRÓTÐTr   r(   )r,   Únumpyr3   Úpandasr#   Úta.utilsr   r   r0   r:   r'   r8   rB   r.   r   r   Ú<module>rJ      sK   ðñó Û å #ô2˜>ô 2ô65˜nô 5ô:2 ô 2ó6
KóRô
Ur   