市值: $2.2269T 1.08%
成交额(24h): $51.7314B 36.39%
恐惧与贪婪指数:

39 - 恐惧

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

选择语种

选择语种

选择货币

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

我如何从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),我们将及时删除。

相关百科

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

TONUSDT永续合约资金费率是多少?

TONUSDT永续合约资金费率是多少?

2026-07-27 02:39:50

定义和核心机制1. TONUSDT永续合约资金费率是专门适用于各大交易所交易的TON/USDT永续合约的定期费用兑换机制。 2. 作为价格锚定工具,防止TONUSDT永续市场价格与基础TON/USDT现货指数价格持续背离。 3. 费率每 8 小时计算一次,采用综合平均保费指数和利息成分的公式计算,通...

AVAX 期货保证金要求是如何计算的?

AVAX 期货保证金要求是如何计算的?

2026-07-23 15:40:03

AVAX 期货保证金结构1. AVAX期货保证金由两个不同的部分组成:初始保证金和维持保证金。这些是根据当前市场价格、波动性、未平仓合约和合约规模实时计算的。 2. 初始保证金作为履约保证金,以弥补短期(通常是一个交易时段)内潜在的不利价格变动。它以头寸名义价值的百分比表示。 3. 维持保证金设置为...

ADA合约保证金率为何会触发警告?

ADA合约保证金率为何会触发警告?

2026-07-22 09:00:26

ADA 合约保证金比率机制1. 各大交易所的ADA永续合约采用根据持仓规模、杠杆水平和当前标记价格实时计算的动态保证金比例。 2. 保证金比率等于(钱包余额+未实现盈亏)除以维持保证金要求,以百分比表示。 3. 当该比率低于交易所定义的维持阈值(通常为 5% 至 10%,具体取决于杠杆率)时,系统将...

ADAUSDT永续合约资金费率是多少?

ADAUSDT永续合约资金费率是多少?

2026-07-24 20:19:46

ADAUSDT永续合约资金费率定义及目的1. ADAUSDT永续合约资金费率是卡尔达诺(ADA)与主要加密货币交易所Tether(USDT)衍生品头寸之间采用的定期费用兑换机制。 2. 作为价格锚定工具,确保ADAUSDT永续合约价格与基础ADA/USDT现货指数价格保持紧密一致。 3、与传统期货不...

TON永续交易建议使用多少杠杆?

TON永续交易建议使用多少杠杆?

2026-07-27 17:20:10

TON 永续交易机制1. TON永续合约在去中心化和中心化交易所运行,保证金模式各异。 2. 资金费率按小时计算,取决于现货价格和永续价格之间的基础,影响多头/空头成本动态。 3. 当维持保证金低于交易所定义的阈值(通常以头寸价值的百分比表示)时,就会触发强平。 4. TON 区块链的原生速度可实现...

TON 期货强平价格公式是什么?

TON 期货强平价格公式是什么?

2026-07-23 09:19:45

TON 期货强平机制1. 当交易者的保证金余额低于交易所设定的维持保证金要求时,TON 期货就会被清算。 2、保证金比例低于或等于100%时,系统自动触发强制平仓,计算公式为(可用保证金/所需保证金)×100%。 3. 强平价格不是固定的,它会随着市场走势、头寸规模、杠杆水平和资金费率的调整而动态变...

TONUSDT永续合约资金费率是多少?

TONUSDT永续合约资金费率是多少?

2026-07-27 02:39:50

定义和核心机制1. TONUSDT永续合约资金费率是专门适用于各大交易所交易的TON/USDT永续合约的定期费用兑换机制。 2. 作为价格锚定工具,防止TONUSDT永续市场价格与基础TON/USDT现货指数价格持续背离。 3. 费率每 8 小时计算一次,采用综合平均保费指数和利息成分的公式计算,通...

查看所有文章

User not found or password invalid

Your input is correct