Đây là một hàm ATR nguồn mở được viết bởi ông chủ của nhóm, xin các bạn hãy viết một phiên bản PANDAS mà không sử dụng tính năng TALIB
def ATR(records, period=14): if len(records) == 0: return [] if ‘Close’ not in records[0]: raise “TA.ATR argument must 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