
    'i                     B    d dl mZmZmZmZ ddlmZmZ  G d de      Zy)    )absolute_importdivisionprint_functionunicode_literals   )MovingAverageBaseExponentialSmoothingc                   *     e Zd ZdZdZdZ fdZ xZS )ExponentialMovingAveragea  
    A Moving Average that smoothes data exponentially over time.

    It is a subclass of SmoothingMovingAverage.

      - self.smfactor -> 2 / (1 + period)
      - self.smfactor1 -> `1 - self.smfactor`

    Formula:
      - movav = prev * (1.0 - smoothfactor) + newdata * smoothfactor

    See also:
      - http://en.wikipedia.org/wiki/Moving_average#Exponential_moving_average
    )EMAMovingAverageExponential)emac                    t        | j                  | j                  j                  dd| j                  j                  z   z        x| j                  d<   }|j
                  |j                  c| _        | _        t        t        | '          y )Ng       @g      ?)periodalphar   )
r	   datapr   linesr   alpha1superr   __init__)selfes	__class__s     W/var/www/app/trading-bot/venv/lib/python3.12/site-packages/backtrader/indicators/ema.pyr   z!ExponentialMovingAverage.__init__-   sm     2II66==tvv}},-/ 	/

1
 #%((BII
DK&68    )__name__
__module____qualname____doc__aliasr   r   __classcell__)r   s   @r   r   r      s     1EE
9 
9r   r   N)	
__future__r   r   r   r    r   r	   r    r   r   <module>r&      s!   ** * 690 9r   