如何在 Python 中为交易对创建 1 分钟的蜡烛图?

How can I create 1 minute candles for trading pairs in Python?

我正在尝试弄清楚如何使用 Python 中的 binance 包为交易对 BTC-USD 创建一个 1 分钟的烛台。

到目前为止我可以记下来:

from binance.client import Client

candles = client.get_klines(symbol='BTCUSDT', interval=Client.KLINE_INTERVAL_1MINUTE)

for candlestick in candles:
    print(candlestick)

但我不太确定这是否正确。

假设您已经使用 Client (capital-case) 或至少异步等价物 AsyncClient 来创建 client,那么下面将打印最近的 1 -分钟烛台。例如,

from binance import Client

client = Client(api_key = 'Enter Your Key', api_secret = 'Enter Your Secret Key')
candles = client.get_klines(symbol='BTCUSDT', interval=Client.KLINE_INTERVAL_1MINUTE)

print(candles[-1])
print(f"\nLength of candles: {len(candles)}")

输出

[1650011040000,       # timestamp (opening time)
 '40203.99000000',    # opening price
 '40237.03000000',    # high price
 '40198.01000000',    # low price 
 '40198.01000000',    # closing price
 '20.07769000',       # volume
 1650011099999,       # timestamp (closing time)
 '807538.88381350',   # quote asset volume
 488,                 # number of trades
 '6.25446000',        # taker buy base asset volume
 '251560.61470140',   # taker buy quote asset volume
 '0']                 # ignore

Length of candles: 500

默认情况下,candles 将是 BTCUSDT 交易对的最后 500 个 1 分钟蜡烛的列表(每个蜡烛本身由一个列表表示),您可以指定最多使用 get_klines 方法的 1000 个最后 1 分钟蜡烛。最近的蜡烛在列表的末尾 candles,最旧的在列表的开头。

因此您的代码(假设您已使用 ClientAsyncClient 来创建 client)应该打印最后 1 分钟的所有 500 根蜡烛,从最早的到最晚最近。

可以找到对应于蜡烛的列表中每个元素的详细信息here。特别地,在上面的输出中(显示最近的 1 分钟烛台),第一个元素是时间戳,第二个元素是开盘价,第三个是最高价,第四个是最低价,第五个是收盘价, 以及其他元素严格来说不是交易蜡烛的组成部分,但仍然是有用的信息(例如交易量)。

顺便说一下,如果您不想仅限于最近的 500 根 1 分钟蜡烛,您可以使用 get_historical_klines 方法,它允许您指定开始 date/time 并结束 date/time(每次通话仍限制为 1000 支蜡烛)。