pandas_ta EMA 50 尽管与 200 个值一起使用,但仍返回 None

问题描述 投票:0回答:1

我使用以下代码访问 Binance API,拉取 BTC/USDT 的最后 200 个 k 线,然后尝试生成 EMA 50 作为数据帧中的一列:

client = Client('PUBLIC_KEY', 'PRIVATE_KEY')
client.API_URL = 'https://testnet.binance.vision/api'
#obtain historical data for indicator calculation
klines = client.get_historical_klines('BTCUSDT', '1d', limit=200)
klines = np.array(klines)
#convert bars to df
df = pd.DataFrame(klines.reshape(-1,12),dtype=float, columns = ('Open Time',
                                                                'Open',
                                                                'High',
                                                                'Low',
                                                                'Close',
                                                                'Volume',
                                                                'Close time',
                                                                'Quote asset volume',
                                                                'Number of trades',
                                                                'Taker buy base asset volume',
                                                                'Taker buy quote asset volume',
                                                                'Ignore'))

df['Open Time'] = pd.to_datetime(df['Open Time'], unit='ms')
#run indicators
df['ema50'] =  ta.ema(df['Close'], length=50)

尽管有足够多的值来计算 EMA,但我在结果数据帧列中得到了所有 None 值。谁能告诉我我做错了什么?

python pandas dataframe technical-indicator pandas-ta
1个回答
0
投票

在检查我的数据帧索引后我意识到,无论请求大小如何,币安测试网仅提供最多 20 条历史 K 线。通过切换到常规的 binance API,我能够获取所需的数据。

© www.soinside.com 2019 - 2024. All rights reserved.