Pourriez-vous, s'il vous plaît, convertir ce code en code PANDAS?

Auteur:- Je sais., Créé: 2021-06-29 21:03:55, mis à jour:

C'est une fonction ATR open source écrite par les propriétaires et les anciens, et je vous demande de créer une version PANDAS sans utiliser la fonction TALIB.

Définition de l'ATR ((enregistrements, période=14)): si l'enregistrement est supérieur à 0: retour [] si Close ne figure pas dans les enregistrements[0]: L'argument ATR doit être en ligne.

    R = Std._zeros(len(records))
    m = 0.0
    n = 0.0
    for i in xrange(0, len(records)):
        TR = 0
        if i == 0:
            TR = records[i]['High'] - records[i]['Low']
        else:
            TR = max(records[i]['High'] - records[i]['Low'], abs(records[i]['High'] - records[i - 1]['Close']), abs(records[i - 1]['Close'] - records[i]['Low']))
        m += TR
        if i < period:
            n = m / (i + 1)
        else:
            n = (((period - 1) * n) + TR) / period
        R[i] = n
    return R

Plus de

Le foinLa vitesse n'est pas différente.