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
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
RumputTidak ada perbedaan kecepatan.