Beispiel #1
0
def calculate_chaikin_money_flow_signal(cmf: pd.Series) -> pd.Series:
    """    
    Generates a trend reversal signal from Chaikin Money Flow.  A false signal
    may occur when the trend is weak, barely crossing over zero. 

    Args:
        :cmf (pd.Series): Chaikin Money Flow series

    Returns:
        pd.Series: signal -1, 0 ,1 
    """

    cmf_sign = np.sign(cmf)
    cmf_shifted_sign = cmf_sign.shift(1)
    cmf = cmf_sign * (cmf_sign != cmf_shifted_sign)
    cmf.Name = 'chakin_signal'
    return cmf