def accumulation_distribution(close, low, high, volume):
    """
    Cumulative indicator that makes us of price and volume to assess
    whether an asset is being accumulated or distributed.
    :param close: closing price
    :param low: lowest price
    :param high: highest price
    :param volume: daily volume
    :return: ADI: Accumulation/Distribution Indicator
    """

    # Calculate current money flow volume
    cmfv = (((close - low) - (high - close)) / (high - low)) * volume

    ADI = cmfv.cumsum()

    return ADI