def ADX(adx, adxpdi, adxndi, adxpdi1, adxndi1):
    'Compute Average Directional Index\n\n        Args:\n            adx (float): ADX value\n            adxpdi (float): ADX+DI value\n            adxndi (float): ADX-DI value\n            adxpdi1 (float): ADX+DI[1] value\n            adxndi1 (float): ADX-DI[1] value\n\n        Returns:\n            string: "BUY", "SELL", or "NEUTRAL"\n        '
    if ((adx > 20) and (adxpdi1 < adxndi1) and (adxpdi > adxndi)):
        return Recommendation.buy
    elif ((adx > 20) and (adxpdi1 > adxndi1) and (adxpdi < adxndi)):
        return Recommendation.sell
    else:
        return Recommendation.neutral
Compute Average Directional Index

Args:
    adx (float): ADX value
    adxpdi (float): ADX+DI value
    adxndi (float): ADX-DI value
    adxpdi1 (float): ADX+DI[1] value
    adxndi1 (float): ADX-DI[1] value

Returns:
    string: "BUY", "SELL", or "NEUTRAL"
def ADX(adx, adxpdi, adxndi, adxpdi1, adxndi1):
    'Compute Average Directional Index\n\n        Args:\n            adx (float): ADX value\n            adxpdi (float): ADX+DI value\n            adxndi (float): ADX-DI value\n            adxpdi1 (float): ADX+DI[1] value\n            adxndi1 (float): ADX-DI[1] value\n\n        Returns:\n            string: "BUY", "SELL", or "NEUTRAL"\n        '
    if ((adx > 20) and (adxpdi1 < adxndi1) and (adxpdi > adxndi)):
        return Recommendation.buy
    elif ((adx > 20) and (adxpdi1 > adxndi1) and (adxpdi < adxndi)):
        return Recommendation.sell
    else:
        return Recommendation.neutral