首页 后端开发 Python教程 使用Python轻松获取Binance历史交易

使用Python轻松获取Binance历史交易

Apr 12, 2023 pm 10:16 PM
python 代码 binance

使用Python轻松获取Binance历史交易

鉴于某些策略需要一定水平的技术数据,而其他数据可能只需要花费一个小时的时间,该过程并不总是那么简单,而基础架构,可用性和连接性等元素可能会因数据类型的不同而大相径庭。

但是为什么本文仅涉及获取“交易”数据,为什么我们使用Binance API?你可能对我的文章内容有些疑问。

数据频率和平衡

我想说,交易数据端点主要在99.99%的交易所中提供。它是细粒度的,提供了足够的详细信息(在某些非常特殊的情况下)用于回测高频交易(HFT)策略,并且可以用作 OHLC candles(1S至24H或更多,如果你想要的话)的基础。

交易数据是通用的,并且允许使用不同频率的策略进行大量实验。

为什么选择Binance?

那只是因为它是我由于数量庞大而倾向于回溯的交易所之一。

我们将要进行的编码

我们将创建一个Python脚本,该脚本接收对符号,开始日期和结束日期作为命令行参数。它将包含所有交易的CSV文件输出到磁盘。该过程可以通过以下步骤进行详细说明:

1、解析symbol,starting_date和ending_date论据。

2、获取开始日期发生的第一笔交易,以获取第一笔交易trade_id。

3、循环获取每个请求1000笔交易(Binance API限制),直到ending_date达到为止。

4、最后,将数据保存到磁盘。对于示例,我们将其保存为CSV,但是你还有其他选择,不一定保存为CSV。

5、我们将使用pandas,requests,time,sys,和datetime。在代码段中,将不会显示错误验证,因为它不会为说明添加任何值。

编码时间

该脚本将使用以下参数:

1、symbol:交易对的符号,由Binance定义。可以在此处查询,也可以从Binance Web应用程序的URL复制(不包括 _ 字符)。

使用Python轻松获取Binance历史交易

-starting_date and ending_date:不言自明。期望的格式为mm/dd/yyyy,或者使用Python lang语为%m/%d/%Y。

为了获取参数,我们将使用内置函数sys(这里没有什么花哨的地方),并且为了解析日期,我们将使用datetime库。

使用Python轻松获取Binance历史交易

我们将添加一天并减去一微秒,以使ending_date时间部分始终处于23:59:59.999,这使得获取当天间隔更加实用。

提取交易

使用Binance的API并使用aggTrades端点,我们可以在一个请求中获得最多1000 笔交易,如果我们使用开始和结束参数,则它们之间的间隔最多为一小时。

在出现一些失败之后,通过使用时间间隔获取(在某个时间点或另一个时间点,流动性会变得疯狂,我会失去一些宝贵的交易),我决定尝试from_id策略。

将aggTrades选择的端点,因为它返回压缩行业。这样,我们将不会丢失任何宝贵的信息。

获得压缩的总交易。在同一时间从同一订单以相同价格执行的交易将汇总数量。

该from_id策略是这样的:

我们要得到的第一笔交易starting_date 通过发送日期的时间间隔向终点。之后,我们将从第一个获取的交易ID开始获取1000个交易。然后,我们将检查最后一笔交易是否发生在我们之后ending_date。

如果是这样,我们已经遍历了所有时间段,可以将结果保存到文件中。否则,我们将更新from_id变量以获取最后的交易ID,然后重新开始循环。

取得第一个交易编号

使用Python轻松获取Binance历史交易

首先,我们创建一个new_end_date。那是因为我们aggTrades通过传递a startTime和endTime 参数来使用。

现在,我们只需要知道该期间的第一个交易编号,因此我们将增加60秒。在低流动性货币对中,可以更改此参数,因为不能保证在请求的第一天发生交易。

然后,使用我们的辅助函数解析日期,以使用该calendar.timegm函数将日期转换为Unix毫秒表示形式。该timegm函数是首选函数,因为它将日期保留为UTC。

使用Python轻松获取Binance历史交易

请求的响应是按日期排序的贸易对象列表,格式如下:

使用Python轻松获取Binance历史交易

因此,由于我们需要第一个交易ID ,因此我们将返回该response[0]["a"]值。

主循环

现在我们有了第一个交易ID,我们可以一次提取1000个交易,直到达到ending_date。以下代码将在我们的主循环中调用。它将使用from_id参数,放弃startDate和endDate参数,执行我们的请求。

使用Python轻松获取Binance历史交易

现在,这是我们的主循环,它将执行请求并创建我们的DataFrame。

使用Python轻松获取Binance历史交易

我们检查是否current_time包含最近获取的交易日期大于to_date,如果是,则我们:

  •  使用from_id参数获取交易
  •  使用从最新交易中获取的信息来更新from_id和current_time参数
  • 打印nice调试消息
  •  pd.concat 这些交易与我们之前的交易 DataFrame
  •  使用sleep让Binance不会给我们一个429 HTTP响应

清洁和保存

组装完之后DataFrame,我们需要执行简单的数据清理。我们将删除重复trim的交易和之后发生的交易to_date(我们有这个问题,因为我们要获取1000笔交易中的大部分,因此,我们有望在目标结束日期之后执行一些交易)。

我们可以封装我们的trim功能:

使用Python轻松获取Binance历史交易

并执行我们的数据清理:

使用Python轻松获取Binance历史交易

现在,我们可以使用以下to_csv方法将其保存到文件中:

使用Python轻松获取Binance历史交易

我们还可以使用其他数据存储机制,例如Arctic。

最后:验证你的数据

在使用交易策略时,我们必须信任我们的数据,这一点很重要。通过应用以下验证,我们可以轻松地利用获取的交易数据来做到这一点:

使用Python轻松获取Binance历史交易

在代码段中,我们将其转换DataFrame为NumPy数组,并逐行迭代,检查交易ID是否每行递增1。

Binance交易ID是以递增方式编号的,并且是为每个交易品种创建的,因此,很容易验证数据是否正确。

PS:创建成功的交易策略的第一步是拥有正确的数据。

以上是使用Python轻松获取Binance历史交易的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

meme币交易所排行榜 meme币主流交易所top10盘点 meme币交易所排行榜 meme币主流交易所top10盘点 Apr 22, 2025 am 09:57 AM

最适合交易Meme币的平台包括:1. 币安(Binance),全球最大,流动性高,低手续费;2. 欧意(OKX),高效交易引擎,支持多种Meme币;3. XBIT,去中心化,支持跨链交易;4. 雷迪姆(Solana DEX),低成本,结合Serum订单簿;5. PancakeSwap(BSC DEX),交易费用低,速度快;6. Orca(Solana DEX),用户体验优化;7. Coinbase,安全性高,适合新手;8. 火币(Huobi),亚洲知名,交易对丰富;9. DEXRabbit,智能

免费的看盘软件网站有哪些 币圈十大免费看行情软件排名 免费的看盘软件网站有哪些 币圈十大免费看行情软件排名 Apr 22, 2025 am 10:57 AM

币圈十大免费看行情软件排名前三分别是OKX、Binance和gate.io。 1. OKX提供简洁界面和实时数据,支持多种图表和市场分析。 2. Binance功能强大,数据准确,适合各种交易者。 3. gate.io以稳定性和全面性着称,适合长期和短线投资者。

2025数字货币交易平台有哪些 十大数字货币app最新排行榜 2025数字货币交易平台有哪些 十大数字货币app最新排行榜 Apr 22, 2025 pm 03:09 PM

十大虚拟币看盘平台app推荐:1. OKX,2. Binance,3. Gate.io,4. Huobi,5. Coinbase,6. Kraken,7. Bitfinex,8. KuCoin,9. Bybit,10. Bitstamp,这些平台提供实时行情、技术分析工具和用户友好的界面,帮助投资者进行有效的市场分析和交易决策。

十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 十大数字虚拟货币app排行榜 币圈交易数字货币交易所排名前十 Apr 22, 2025 pm 03:00 PM

十大数字虚拟货币app排行榜分别是:1. OKX,2. Binance,3. gate.io,4. Coinbase,5. Kraken,6. Huobi,7. KuCoin,8. Bitfinex,9. Bitstamp,10. Poloniex。这些交易所根据交易量、用户体验和安全性等因素评选,均提供多种数字货币交易服务和高效的交易体验。

适合新手的数字货币交易App有哪些?一文了解币圈 适合新手的数字货币交易App有哪些?一文了解币圈 Apr 22, 2025 am 08:45 AM

选择适合新手的数字货币交易平台需考虑安全性、易用性、教育资源和费用透明度:1. 优先选择提供冷存储、双重验证和资产保险的平台;2. 界面简洁、操作清晰的App更适合新手;3. 平台应提供教程和市场分析等学习工具;4. 注意交易手续费和提现费等隐性成本。

靠谱好用的虚拟币交易所app推荐 币圈十大交易所排行榜最新 靠谱好用的虚拟币交易所app推荐 币圈十大交易所排行榜最新 Apr 22, 2025 pm 01:21 PM

靠谱好用的虚拟币交易所app是:1. Binance,2. OKX,3. Gate.io,4. Coinbase,5. Kraken,6. Huobi Global,7. Bitfinex,8. KuCoin,9. Bittrex,10. Poloniex。这些平台因其交易量、用户体验和安全性等因素被评选为最佳,均提供注册、验证、存款、提款和交易操作功能。

十大数字货币交易所app推荐 币圈虚拟币交易所排名前十 十大数字货币交易所app推荐 币圈虚拟币交易所排名前十 Apr 22, 2025 pm 03:03 PM

十大数字货币交易所app推荐:1. OKX,2. Binance,3. gate.io,4. Huobi,5. Coinbase,6. KuCoin,7. Kraken,8. Bitfinex,9. Bybit,10. Bitstamp,这些app均提供实时行情、技术分析和价格提醒功能,帮助用户实时监控市场动态并做出明智的投资决策。

十大数字货币交易软件有哪些 币圈交易所平台排名前十 十大数字货币交易软件有哪些 币圈交易所平台排名前十 Apr 22, 2025 pm 03:06 PM

币圈交易所平台排名前十的交易软件分别是:1. OKX,2. Binance,3. gate.io,4. Huobi Global,5. KuCoin,6. Coinbase,7. Kraken,8. Bitfinex,9. Bitstamp,10. Poloniex,这些平台均提供多种交易模式和安全措施,确保用户资产的安全。

See all articles