在使用Binance API时,常常需要使用循环来获取历史K线数据等,但是由于Binance API的限制,可能会出现循环速度过快而被限制访问API的情况。为避免这种情况,可以使用time模块中的sleep函数来降低循环速度,具体实现方式如下所示:
import time
from binance.client import Client
# 按需调整下列变量的值
api_key = '你的API Key'
api_secret = '你的API Secret'
symbol = 'BTCUSDT'
interval = Client.KLINE_INTERVAL_1DAY # K线周期
start_time = '2020-01-01' # 开始时间
end_time = '2021-01-01' # 结束时间
client = Client(api_key, api_secret)
# 获取指定时间范围、指定周期的历史K线数据
klines = client.get_historical_klines(symbol, interval, start_time, end_time)
# 遍历K线数据(每根K线为一个列表)
for kline in klines:
# 按需对K线数据进行处理
print(kline)
# 暂停1秒钟,避免访问API过快而被限制
time.sleep(1)
在上述代码中,通过调用time模块中的sleep函数,在每次循环后暂停1秒钟,以避免访问API过快而被限制。
注意:实际情况中可能需要根据自己的需求调整暂停时间。如果需要获取的数据量很大,暂停时间需要适当延长,否则可能仍然会被限制访问API。