
    jC                    H    d Z ddlmZ ddlmZ ddlZd	dZd
dZddZ	ddZ
y)uK   MACD histogram — deceleration flag + last bar value (port fedele da V15).    )annotations)TupleNc                    | d   j                  d      j                         }| d   j                  d      j                         }||z
  }|j                  d      j                         }||z
  S )zFCompute the MACD histogram series (EMA12-EMA26 minus its signal EMA9).close   )span   	   )ewmmean)dfema12ema26	macd_linesignals        //home/work/apex_v16/analysis/indicators/macd.py
_macd_histr   
   si    wKOOO$))+EwKOOO$))+EI]]]"'')Fv    c                    t        |       }t        t        |j                  d         t        |j                  d         k        S )u   
    True when |hist[-1]| < |hist[-2]| — i.e. MACD histogram is
    decelerating (momentum waning). Used as a soft signal in MR
    entry prompt and TF/MR exit prompts.
    )r   boolabsilocr   hists     r   calc_macd_decelr      s7     b>DDIIbM"S2%7788r   c                H    t        |       }t        |j                  d         S )u  
    Last MACD histogram bar value. Positive ⇒ momentum bullish,
    negativo ⇒ momentum bearish. V18: usato dal gate
    MACD_ACCELERATING_AGAINST in brain_mr.evaluate_entry per scartare
    entry MR contro un momentum che sta accelerando contro la direzione.
    r   )r   floatr   r   s     r   calc_macd_histr       s      b>D2r   c                    t        |       }t        t        |j                  d         t        |j                  d         k        }|t	        |j                  d         fS )u   
    Combined helper — calcola la serie istogramma una sola volta e
    ritorna (decelerating, hist_last). Preferito dal builder
    TechSnapshot per evitare di computare due volte EMA12/EMA26/signal.
    r   r   )r   r   r   r   r   )r   r   decels      r   calc_macd_decel_and_histr#   (   sN     b>DTYYr]#c$))B-&889E%		"&&&r   )r   pd.DataFramereturnz	pd.Series)r   r$   r%   r   )r   r$   r%   r   )r   r$   r%   zTuple[bool, float])__doc__
__future__r   typingr   pandaspdr   r   r    r#    r   r   <module>r,      s%    Q "  9 'r   