pricehub:统一收集多个交易平台的OHLC价格数据

pricehub:统一收集多个交易平台的OHLC价格数据

pricehub PriceHub: Unified Python Package for Collecting OHLC Prices from Binance, Bybit, and Coinbase APIs into a DataFrame pricehub 项目地址: https://gitcode.com/gh_mirrors/pr/pricehub

pricehub是一个Python库,它允许用户从Binance、Bybit和Coinbase等交易平台收集OHLC(开盘价、最高价、最低价和收盘价)数据,并将其存储在DataFrame中。该库支持多个市场和交易类型,包括现货和期货,并提供灵活的时间戳输入和广泛的间隔选项。

项目介绍

pricehub项目的核心功能是从多个交易平台的API中收集OHLC数据,并将其转换为易于分析和可视化的格式。该库支持从Binance Spot、Binance Futures、Bybit Spot、Bybit Linear (Futures)和Bybit Inverse等多个交易平台获取数据。

项目技术分析

pricehub库使用了Python语言编写,并依赖于pandas库来处理和存储数据。它还使用了requests库来从交易平台的API中获取数据。该库采用了面向对象的设计,通过封装相关的功能,提高了代码的可读性和可维护性。

项目及技术应用场景

pricehub库适用于需要进行数据分析和可视化交易的场景。它可以用于构建交易策略、回测模型和进行市场趋势分析。通过使用pricehub库,用户可以轻松地从多个交易平台获取数据,并将其合并到一个DataFrame中,从而方便地进行数据分析和可视化。

项目特点

pricehub库具有以下特点:

  1. 统一接口:支持多个经纪人和市场(现货、期货)的单个接口。
  2. 统一间隔:在所有经纪人间使用相同的间隔格式。
  3. 时间戳灵活性:接受各种格式的开始和结束时间戳(整数、浮点数、字符串、箭头、pandas、datetime)。
  4. 无需凭证:无需验证即可获取公共市场数据。
  5. 扩展日期范围:该库将分页并收集跨越大型日期范围的所有数据。
  6. 官方API的所有字段:检索官方API中可用的所有字段(例如,“交易数量”,“Taker购买基础资产量”)。

安装

要使用pricehub库,您可以通过以下命令安装它:

pip install pricehub

使用方法

以下是一些示例代码,展示了如何使用pricehub库获取OHLC数据:

保存数据到CSV、Excel、Parquet文件

from pricehub import get_ohlc
df = get_ohlc("binance_spot", "BTCUSDT", "1d", "2024-10-01", "2024-10-05")
df.to_csv("btcusdt_1d_2024-10-01_2024-10-05.csv")  # 保存到CSV
df.to_excel("btcusdt_1d_2024-10-01_2024-10-05.xlsx")  # 保存到Excel
df.to_parquet("btcusdt_1d_2024-10-01_2024-10-05.parquet")  # 保存到Parquet,需要'pyarrow', 'fastparquet'

从Binance Spot获取6小时间隔的OHLC数据

from pricehub import get_ohlc

df = get_ohlc(
    broker="binance_spot",
    symbol="BTCUSDT",
    interval="6h",
    start="2024-10-01",
    end="2024-10-02"
)
print(df)
                        Open     High      Low    Close      Volume              Close time  Quote asset volume  Number of trades  Taker buy base asset volume  Taker buy quote asset volume  Ignore
Open time                                                                                                                                                                                           
2024-10-01 00:00:00  63309.0  63872.0  63000.0  63733.9   39397.714 2024-10-01 05:59:59.999        2.500830e+09          598784.0                    19410.785                  1.232417e+09     0.0
2024-10-01 06:00:00  63733.9  64092.6  63683.1  63699.9   32857.923 2024-10-01 11:59:59.999        2.100000e+09          446330.0                    15865.753                  1.014048e+09     0.0
2024-10-01 12:00:00  63700.0  63784.0  61100.0  62134.1  242613.990 2024-10-01 17:59:59.999        1.512287e+10         2583155.0                   112641.347                  7.022384e+09     0.0
2024-10-01 18:00:00  62134.1  62422.3  60128.2  60776.8  114948.208 2024-10-01 23:59:59.999        7.031801e+09         1461890.0                    54123.788                  3.312086e+09     0.0
2024-10-02 00:00:00  60776.7  61858.2  60703.3  61466.7   51046.012 2024-10-02 05:59:59.999        3.133969e+09          668558.0                    27191.919                  1.669187e+09     0.0

从Bybit Spot获取1天间隔的OHLC数据

from pricehub import get_ohlc

df = get_ohlc(
    broker="bybit_spot",
    symbol="ETHUSDT",
    interval="1d",
    start=1727740800.0,  # Unix timestamp in seconds for "2024-10-01"
    end=1728086400000,  # Unix timestamp in ms for "2024-10-05"
)
print(df)
               Open     High      Low    Close        Volume      Turnover
Open time                                                                 
2024-10-01  2602.00  2659.31  2413.15  2447.95  376729.77293  9.623060e+08
2024-10-02  2447.95  2499.82  2351.53  2364.01  242498.88477  5.914189e+08
2024-10-03  2364.01  2403.50  2309.75  2349.91  242598.38255  5.716546e+08
2024-10-04  2349.91  2441.82  2339.15  2414.67  178050.43782  4.254225e+08
2024-10-05  2414.67  2428.69  2389.83  2414.54  106665.69595  2.573030e+08

使用matplotlib绘制Binance Futures上BTCUSDT的1天收盘价数据

from datetime import datetime, timedelta

import matplotlib.pyplot as plt
from pricehub import get_ohlc

now = datetime.now()
df = get_ohlc("binance_futures", "BTCUSDT", "1d", now - timedelta(days=365), now)
df["Close"].plot()
plt.show()

binance_btcusdt_futures.png

使用plotly绘制Binance Spot上BTCUSDT的1周OHLC数据

from datetime import datetime, timedelta
import plotly.graph_objects as go
from pricehub import get_ohlc

now = datetime.now()
df = get_ohlc("binance_spot", "BTCUSDT", "1w", now - timedelta(days=365 * 5), now)

fig = go.Figure(data=go.Candlestick(x=df.index, open=df['Open'], high=df['High'], low=df['Low'], close=df['Close']))

fig.update_layout()
fig.show()

binance_btc_usdt_spot_1w_5_years.png

创建Bybit Spot上SOLUSDT的10分钟自定义间隔数据

from datetime import datetime, timedelta
from pricehub import get_ohlc
now = datetime.now()
df = get_ohlc("bybit_spot", "SOLUSDT", "5m", now - timedelta(days=31), now)
df_10m = (
    df.resample(
        "10min",
    ).agg(
        {
            "Open": "first",
            "High": "max",
            "Low": "min",
            "Close": "last",
            "Volume": "sum",
        }
    )
)
print(df.head())
print(df_10m.head())
#5m
                      Open    High     Low   Close    Volume      Turnover
Open time                                                                  
2024-11-07 17:40:00  194.13  194.66  194.03  194.54  3391.378  6.592576e+05
2024-11-07 17:45:00  194.54  195.48  194.44  195.41  6075.927  1.184312e+06
2024-11-07 17:50:00  195.41  195.71  195.06  195.69  4073.276  7.961276e+05
2024-11-07 17:55:00  195.69  196.16  195.59  195.93  8774.224  1.719060e+06
2024-11-07 18:00:00  195.93  196.83  195.73  196.34  5075.807  9.973238e+05

#10m
                       Open    High     Low   Close     Volume
Open time                                                     
2024-11-07 17:40:00  194.13  195.48  194.03  195.41   9467.305
2024-11-07 17:50:00  195.41  196.16  195.06  195.93  12847.500
2024-11-07 18:00:00  195.93  196.83  194.66  195.29  12506.671
2024-11-07 18:10:00  195.29  196.13  194.70  195.58  20437.030
2024-11-07 18:20:00  195.58  196.00  194.84  195.81  16388.688

pricehub库是一个强大的工具,可以帮助用户从多个交易平台收集OHLC数据,并进行进一步的数据分析和可视化。它的易用性和灵活性使其成为交易者和数据分析人员的理想选择。

pricehub PriceHub: Unified Python Package for Collecting OHLC Prices from Binance, Bybit, and Coinbase APIs into a DataFrame pricehub 项目地址: https://gitcode.com/gh_mirrors/pr/pricehub

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

魏鹭千Peacemaker

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值