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

币安2021年12月31日到期交割合约历史价格查询报错如何解决

报错原因说明

你遇到的Invalid symbol错误核心有两个诱因:

  1. 接口与合约类型不匹配:你当前用的futures_historical_klines默认适配U本位永续合约,若查询币本位交割合约,或是部分版本SDK的U本位交割合约,需要调用对应类型的专属接口
  2. 合约代码拼写错误:你使用的BTCUSD_211231/BTCUSDT_211231可能和Binance官方的命名规则不一致,需先确认正确的交易对代码
解决步骤

第一步:确认对应合约的正确交易对代码

先调用交易所信息接口,打印所有期货合约代码,找到2021年12月到期的BTC对应合约的准确拼写:

# 若查询U本位合约(USDT作为保证金),执行以下代码
usd_futures_info = client.futures_exchange_info()
for item in usd_futures_info['symbols']:
    print(item['symbol'])

# 若查询币本位合约(加密币作为保证金),执行以下代码
coin_futures_info = client.futures_coin_exchange_info()
for item in coin_futures_info['symbols']:
    print(item['symbol'])

如果已到期的合约在上述返回结果里查询不到,说明该合约已经下线,API无法直接调取历史数据,可以通过Binance平台的公开历史数据存档下载对应数据。

第二步:调用对应类型合约的K线接口

根据你要查询的合约类型,替换对应的调用方法:

情况1:查询U本位交割合约

确认交易对代码正确后,使用以下代码查询:

df = pd.DataFrame(client.futures_historical_klines(
    symbol='替换为第一步查到的正确U本位交割合约代码',
    interval='1d',
    start_str='2021-06-01',
    end_str='2021-12-31'
))

情况2:查询币本位交割合约

确认交易对代码正确后,使用币本位专属K线接口查询:

df = pd.DataFrame(client.futures_coinm_historical_klines(
    symbol='替换为第一步查到的正确币本位交割合约代码',
    interval='1d',
    start_str='2021-06-01',
    end_str='2021-12-31'
))

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 12:24:03