You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过币安API批量获取多个以USDT为基准的交易对历史K线数据

币安多交易对历史K线批量获取实现方法

你可以通过遍历交易对列表循环调用接口的方式实现批量获取,具体实现步骤如下:

  • 第一步先定义公共配置参数和目标交易对列表
# 配置参数
TARGET_PAIRS = ["AVAXUSDT", "LUNAUSDT", "ADAUSDT"]  # 可按需求自行增减交易对
TIME_INTERVAL = Client.KLINE_INTERVAL_12HOUR
START_DATE = "1 Jan, 2019"
END_DATE = "18 Sep, 2021"
# 存储所有交易对数据的容器
all_candlesticks = {}
  • 第二步遍历交易对列表调用接口,建议加异常捕获避免单个交易对请求失败导致整个脚本中断
import time

for pair in TARGET_PAIRS:
    try:
        print(f"正在获取{pair}的K线数据...")
        kline_data = client.get_historical_klines(pair, TIME_INTERVAL, START_DATE, END_DATE)
        all_candlesticks[pair] = kline_data
        # 拉取单交易对完成后可直接写入本地文件,避免内存占用过高
        # import pandas as pd
        # pd.DataFrame(kline_data).to_csv(f"{pair}_{TIME_INTERVAL}.csv", index=False)
        # 增加请求间隔避免触发币安API频率限制
        time.sleep(1)
    except Exception as e:
        print(f"获取{pair}数据失败,错误信息:{str(e)}")
        continue
  • 如果你需要拉取所有USDT计价的交易对,不需要手动拼接列表,可以调用币安交易所信息接口自动筛选
# 自动获取所有处于交易状态的USDT计价现货交易对
exchange_info = client.get_exchange_info()
usdt_pairs = [s['symbol'] for s in exchange_info['symbols'] if s['quoteAsset'] == 'USDT' and s['status'] == 'TRADING']
# 将上文的TARGET_PAIRS替换为usdt_pairs即可批量拉取全量USDT交易对数据

注意事项

  • 币安API有请求频率限制,短时间内大量请求会被临时封禁,可根据拉取数量调整time.sleep的等待时长
  • 接口返回的K线数据默认顺序为:开盘时间、开盘价、最高价、最低价、收盘价、成交量、收盘时间、成交额、成交笔数、主动买入成交量、主动买入成交额、预留字段,可按需提取对应字段存储
  • 如果拉取的时间跨度大、交易对数量多,建议每完成一个交易对的拉取就写入本地文件,不要全部存储在内存中避免程序崩溃丢失数据

内容的提问来源于stack exchange,提问作者Swashbuckler75

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 19:27:01