调用Binance API get_aggregate_trades报-1128参数组合无效错误
问题诱因
- 核心错误是传入的
startTime时间戳格式不符合币安接口要求:币安所有REST接口的时间参数必须传13位毫秒级Unix时间戳,你代码里写的165605516493是12位,比合法毫秒时间戳少一位,换算后属于超出合理范围的非法时间值,直接触发参数校验逻辑返回code=-1128错误。 - 这个错误和时间间隔、是否传全可选参数没有关系,只要时间戳位数不对,不管怎么调整其他参数都会触发相同报错。
正确调用方式
- 先把时间戳修正为13位毫秒格式,你之前的时间值补一位末尾的0得到
1656055164930就是合法的起始时间戳。 - 调用时建议同时传入
endTime和limit参数,避免触发默认参数的隐式校验,单次调用最多拉取1000条数据,超出范围需要分页拉取。
参考代码:
import time from binance.client import Client # 初始化客户端,替换为你自己的API密钥 client = Client("your_api_key", "your_api_secret") # 合法13位毫秒级起始时间 start_time = 1656055164930 # 结束时间取当前时间的毫秒级时间戳 end_time = int(time.time() * 1000) agg_trades = client.get_aggregate_trades( symbol="EURBUSD", startTime=start_time, endTime=end_time, limit=1000 ) print(agg_trades)
注意事项
- 所有传入币安接口的时间参数,传参前先确认长度为13位,10位秒级时间戳需要乘以1000转成毫秒值再传。
- 如果指定时间范围内的聚合交易数据量超过1000条,需要循环分页拉取:每次请求后取返回结果最后一条的
T(成交时间)字段+1毫秒,作为下一次请求的startTime,直到返回结果为空或拉取到当前时间为止。 - 若修正时间戳后仍报错,先确认交易对
EURBUSD是否处于可交易状态,已下线的交易对也会触发参数类错误。
内容的提问来源于stack exchange,提问作者PyNoob
相关产品推荐
相关产品推荐

