ccxt设置defaultType为future仍仅返回币安现货数据如何修复
问题根因
初始化配置的键名拼写错误:ccxt 交易所实例的自定义配置项键名为 options(复数形式),你传入的单数option不会被框架识别,实例会默认使用spot(现货)作为默认市场类型,因此fetch_markets只会返回现货市场数据。
修复方案
拉取U本位合约市场数据(查资金费率的常用场景)
将配置键名修正为options即可,示例代码:
import ccxt binance = ccxt.binance({ 'options': { 'defaultType': 'future' } }) # 拉取全量U本位合约市场数据 contract_markets = binance.fetch_markets()
初始化完成后可直接调用资金费率相关接口拉取数据,比如拉取BTC永续合约资金费率历史:
# 拉取BTC/USDT U本位永续合约最近100条资金费率记录 funding_history = binance.fetch_funding_rate_history('BTC/USDT:USDT', limit=100)
拉取币本位合约市场数据
如果需要获取币本位交割/永续合约数据,将defaultType参数值改为delivery即可:
binance = ccxt.binance({ 'options': { 'defaultType': 'delivery' } }) delivery_markets = binance.fetch_markets()
注意事项
- 币安期货交易对的符号规则和现货不同,U本位永续合约后缀为
:USDT,币本位永续合约后缀为:USD,调用接口时需使用对应合约的完整符号,否则会报交易对不存在的错误。 - 如果初始化后仍返回现货数据,可以在调用
fetch_markets前手动执行binance.load_markets(reload=True)强制刷新市场缓存。
内容的提问来源于stack exchange,提问作者Marco Polo
相关产品推荐
相关产品推荐

