市值: $2.607T 0.90%
成交额(24h): $88.5549B -12.29%
恐惧与贪婪指数:

64 - 贪婪

  • 市值: $2.607T 0.90%
  • 成交额(24h): $88.5549B -12.29%
  • 恐惧与贪婪指数:
  • 市值: $2.607T 0.90%
加密货币
话题
百科
资讯
加密话题
视频
热门加密百科

选择语种

选择语种

选择货币

加密货币
话题
百科
资讯
加密话题
视频

我如何从binance获取历史期货数据?

Binance provides free historical futures data via API with OHLC, volume, and more for backtesting and analysis.

2025/08/12 04:49

了解二元期货历史数据

来自Binance的历史期货数据对于参与技术分析,进行回测策略或构建算法交易系统的交易者和分析师至关重要。这些数据通常包括开放,高,低,关闭(OHLC)价格,数量,交易数量和时间戳等信息(例如,1分钟,1小时,1天)。 Binance通过其公共API提供了此数据,该数据允许对大量市场信息进行编程访问。

Binance的期货市场包括USDT-Margined和Coin-Margined合同。每种合同类型在API中都有自己的终点。尽管数据保留政策可能会限制对非常旧的记录的访问,但所有积极交易和精心的期货对都可以使用历史数据。要检索这些数据,您必须使用正确的API端点并正确格式化请求。

访问Binance API端点

要检索历史期货数据,您需要与Binance的REST API进行互动。期货数据的主要终点是:

  • USDT-MARGINED期货https://fapi.binance.com/fapi/v1/klines
  • 硬币 - 核果期货https://dapi.binance.com/dapi/v1/klines

每个端点以JSON格式返回Kline/Candlestick数据。所需参数包括:

  • 符号:交易对(例如,USDT期货的BTCUSDT)。
  • 间隔:烛台间隔(例如1M,5M,1H,1D)。
  • 启动时间末日:可选的UNIX时间戳以指定时间范围。
  • 限制:数据点的最大数量(默认值为500,最大值为1500个请求)。

例如,从2023年1月1日到2023年1月2日获得1小时的BTCUSDT期货数据:

 GET https://fapi.binance.com/fapi/v1/klines?symbol=BTCUSDT&interval=1h&startTime=1672531200000&endTime=1672617600000&limit=1000

确保时间戳以毫秒为单位。您可以使用在线工具或编程功能将人类可读日期转换为UNIX时间戳。

使用Python获取历史期货数据

自动数据检索的一种常见方法是将Pythonrequests库一起使用。以下是逐步指南:

  • 安装所需的库:

     pip install requests
  • 导入必要的模块:

     import requests import pandas as pd from datetime import datetime
  • 定义API端点和参数:

     url = 'https://fapi.binance.com/fapi/v1/klines' params = { 'symbol': 'BTCUSDT', 'interval': '1h', 'limit': 1000

    }

  • 发送GET请求:

     response = requests.get(url, params=params) data = response.json()
  • 转换为数据框:

     df = pd.DataFrame(data, columns=[ 'Open time', 'Open', 'High', 'Low', 'Close', 'Volume', 'Close time', 'Quote asset volume', 'Number of trades', 'Taker buy base volume', 'Taker buy quote volume', 'Ignore'

    )))

  • 将时间戳转换为可读日期:

     df['Open time'] = pd.to_datetime(df['Open time'], unit='ms') df['Close time'] = pd.to_datetime(df['Close time'], unit='ms')
  • 保存到CSV(可选):

     df.to_csv('btcusdt_1h_futures_data.csv', index=False)

该脚本检索了最近的1,000个一小时的蜡烛。要在更广泛的范围内获取数据,请在循环中调整启动时间末日来实现分页。

处理速率限制和分页

Binance对API使用施加了速率限制。对于期货API,限制通常为每分钟每分钟2400个请求。超过此限制会导致HTTP 429错误。为了避免这种情况:

  • 使用time.sleep(0.25)进行频繁调用
  • 使用较大的限制(最多1500个)来最大程度地减少请求的数量。
  • 实施错误处理以重试失败的请求。

检索长期系列时,将时间表分成几块。例如,获取一年的每日数据:

  • 计算以毫秒为单位的总时间范围。
  • 将其分为≤1500个数据点的段。
  • 循环遍历每个段,相应地更新启动时间末日

示例逻辑:

  • 开始时间戳:2023年1月1日(在MS中)
  • 结束时间戳:开始 +(MS×1500 Interval)
  • 每个请求之后,将新的开始时间设置为最后收到的闭合时间+ 1

这样可以确保数据集中没有差距或重复。

替代工具和库

除了RAW API调用外,几种工具简化了数据检索:

  • CCXT :一个支持Binance和许多其他交流的加密货币交易库。安装: pip install ccxt用法:

     import ccxt exchange = ccxt.binance({ 'options': {'defaultType': 'future'}

    })) ohlcv = Exchange.fetch_ohlcv('BTC/USDT','1H',limit = 1000)

  • Binance.py :专门用于Binance API的Python包装纸。为期货数据提供更高级别的功能。

  • Pandas-Ta或Backtrader :这些可以与数据fetchers集成以进行直接策略测试。

使用这些库减少样板代码并处理常见问题,例如时间戳转换和分页。

常见问题

Binance提供期货数据多远?对于大多数期货对,Binance通常保留多达1。5年的历史Kline数据。确切的深度取决于符号和间隔。非常旧的或出色的合同可能有限。

我可以获取历史商标价格或资金率数据吗?是的。使用端点https://fapi.binance.com/fapi/v1/fundingRate带有符号开始时间参数以检索资金率。对于Mark Price Klines,请使用https://fapi.binance.com/fapi/v1/markPriceKlines

API访问免费吗?是的,通过Binance API访问公共数据是免费的,并且不需要API密钥。但是,经过身份验证的终点(例如,帐户数据)需要基于密钥的身份验证。

如果我收到空的答复该怎么办?验证符号名称是正确的(例如,BTCUSDT,而不是BTC-USDT)。检查间隔是否支持。确认时间戳为毫秒。直接在浏览器中测试URL以隔离问题。

免责声明:info@kdj.com

所提供的信息并非交易建议。根据本文提供的信息进行的任何投资,kdj.com不承担任何责任。加密货币具有高波动性,强烈建议您深入研究后,谨慎投资!

如您认为本网站上使用的内容侵犯了您的版权,请立即联系我们(info@kdj.com),我们将及时删除。

相关百科

如何查看SOL期货成交量和持仓量?

如何查看SOL期货成交量和持仓量?

2026-09-14 00:40:03

访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...

如何查看XRP期货交易量和持仓量?

如何查看XRP期货交易量和持仓量?

2026-09-15 05:00:12

访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...

如何查看DOGE期货成交量及持仓量?

如何查看DOGE期货成交量及持仓量?

2026-09-12 08:39:38

了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...

如何查看ETH期货交易量和持仓量?

如何查看ETH期货交易量和持仓量?

2026-09-16 19:00:18

访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...

如何查看BTC期货交易量和持仓量?

如何查看BTC期货交易量和持仓量?

2026-09-12 15:19:55

BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...

如何看懂DOGEUSDT永续合约图表?

如何看懂DOGEUSDT永续合约图表?

2026-09-11 19:19:48

了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...

如何查看SOL期货成交量和持仓量?

如何查看SOL期货成交量和持仓量?

2026-09-14 00:40:03

访问 SOL 期货市场数据1. 前往SOL永续合约或季度合约上市的官方交易平台,例如Bybit、OKX或Bitget。 2. 找到SOL/USDT或SOL/USD期货交易对页面,切换到“合约概览”或“市场数据”选项卡。 3. 识别标记为“交易量(24 小时)”和“未平仓合约”的实时字段,这两个字段通...

如何查看XRP期货交易量和持仓量?

如何查看XRP期货交易量和持仓量?

2026-09-15 05:00:12

访问实时 XRP 期货数据1. 访问列出 XRP 永续合约和季度期货合约的主要衍生品交易所,包括 Binance、Bybit、OKX 和 Bitget。 2. 导航至XRP/USDT或XRP/USD交易对页面,找到实时显示交易量和持仓量数据的市场深度面板。 3. 确认显示的持仓量是否反映了多头/空头...

如何查看DOGE期货成交量及持仓量?

如何查看DOGE期货成交量及持仓量?

2026-09-12 08:39:38

了解 DOGE 期货交易量1. 期货交易量是指在特定时间范围内交易的DOGE份期货合约的总数,通常以每天或每小时计算。 2. 高成交量通常表明市场参与度较高,并且可以表明潜在的趋势延续或逆转,具体取决于价格走势背景。 3. 交易者监控交易量峰值以及突破或崩溃,以评估合法性——交易量上升支持的持续价格...

如何查看ETH期货交易量和持仓量?

如何查看ETH期货交易量和持仓量?

2026-09-16 19:00:18

访问实时 ETH 期货数据1. Binance、Bybit和OKX等主要中心化交易所提供实时仪表板,显示ETH永续和季度期货交易量和持仓量。这些指标每 5-10 秒更新一次,无需登录其公开市场页面即可访问。 2. Glassnode、CryptoQuant 和 Coinglass 等链上分析平台可以...

如何查看BTC期货交易量和持仓量?

如何查看BTC期货交易量和持仓量?

2026-09-12 15:19:55

BTC期货指标的数据源1. CoinGlass API v4 提供 30 多个交易所的实时融资利率、清算热图和精细的未平仓合约细分。 2. 币安期货 API 提供对买卖深度、合约特定交易量历史记录和保证金比率快照的本机访问。 3. OKX 数据门户提供可下载的 CSV 档案,其中包含每日结算价格、按...

如何看懂DOGEUSDT永续合约图表?

如何看懂DOGEUSDT永续合约图表?

2026-09-11 19:19:48

了解 DOGEUSDT 永续图表上的价格走势1. 蜡烛图的形成揭示了直接的市场情绪——绿色蜡烛表示买盘占主导地位,而红色蜡烛则反映该区间内的抛售压力。 2. 实体上方和下方的灯芯信号拒绝更高或更低的价格;在波动较大的模因币市场中,长上影线通常先于短期反转。 3. 接近关键水平的连续小实体蜡烛表明在突...

查看所有文章

User not found or password invalid

Your input is correct