使用Python TA库计算ATR时DataFrame序列出现报错该如何解决
ATR列异常问题原因及修复
核心原因
ta库的AverageTrueRange是封装好的计算工具类,你当前的代码仅生成了类实例,没有调用对应的计算结果属性,所以列中存储的是类对象的内存地址而非实际ATR数值,这就是你看到的异常内容。- RSI、MACD等其他指标你调用时正常是因为你之前的代码正确取了对应指标的计算结果属性,唯独ATR这一步漏了该操作。
修复代码
import ccxt import ta import pandas as pd ftx = ccxt.ftx() markets = ftx.load_markets() # 若你已提前定义symbol变量可删除下一行 symbol = 'BTC/USDT' df = pd.DataFrame(ftx.fetch_ohlcv(symbol, timeframe='1h')) df.rename(columns = {0:'time', 1:'open', 2:'high', 3:'low', 4:'close', 5:'volume'}, inplace = True) # 修复点:末尾加.average_true_range()获取实际计算结果 df['atr'] = ta.volatility.AverageTrueRange(df.high, df.low, df.close, window=14, fillna=True).average_true_range() # df.dropna(inplace=True) df = df[['open','high','low','close','volume','atr']] print(df)
内容的提问来源于stack exchange,提问作者VJKR
相关产品推荐
相关产品推荐

