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

调用币安API获取2年历史K线仅返回3条数据该如何解决

问题修复方案

核心原因

你当前使用的是币安测试网API端点https://testnet.binance.vision/api,测试网仅保留最近几天的K线历史数据,不存储多年前的历史行情,所以无论你把起始时间设为多久之前,最多只能拿到近3天的数据,和你代码的时间逻辑无关。

修复步骤

  • 切换到币安主网API:删除修改client.API_URL的代码行,使用客户端默认的主网端点即可,币安主网支持拉取多年的全量历史K线数据。注意主网需要单独申请对应API密钥,不能复用测试网生成的密钥。
  • 修正K线周期参数:你当前代码中默认的kline_interval为1小时周期Client.KLINE_INTERVAL_1HOUR,如果需要获取1天间隔的K线,需要把参数改为Client.KLINE_INTERVAL_1DAY,才能拿到预期的约700条2年跨度数据。
  • 优化时间参数格式:调用get_historical_klines时优先传入毫秒级整数时间戳,比字符串格式的时间兼容性更高,避免格式解析错误,示例代码如下:
sinceThisDate = untilThisDate - datetime.timedelta(days=timedelta_days)
# 转成毫秒时间戳
start_ts = int(sinceThisDate.timestamp() * 1000)
end_ts = int(untilThisDate.timestamp() * 1000)
candle = client.get_historical_klines(ticker, kline_interval, start_ts, end_ts)
  • 补充请求频率适配:主网拉取跨度过大的K线时可能触发接口频率限制,可按3个月为单位拆分请求分批拉取,再合并结果即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 00:45:03