Saya minta kepada kalian semua untuk mengubah kode ini menjadi kode PANDAS.

Penulis:Syue, Dibuat: 2021-06-29 21:03:55, Diperbarui:

Ini adalah fungsi ATR sumber terbuka yang ditulis oleh para pemilik kelompok, dan kami mohon kepada semua orang di Departemen Energi untuk menulis versi PANDAS, tanpa menggunakan fungsi TALIB.

def ATR ((rekaman, periode=14): jika len (rekaman) == 0: Kembali [] jika Close tidak ada dalam catatan[0]: mengangkat TA.ATR argumen harus KLine

    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

Lebih banyak

RumputTidak ada perbedaan kecepatan.