pricehub:统一收集多个交易平台的OHLC价格数据
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库具有以下特点:
- 统一接口:支持多个经纪人和市场(现货、期货)的单个接口。
- 统一间隔:在所有经纪人间使用相同的间隔格式。
- 时间戳灵活性:接受各种格式的开始和结束时间戳(整数、浮点数、字符串、箭头、pandas、datetime)。
- 无需凭证:无需验证即可获取公共市场数据。
- 扩展日期范围:该库将分页并收集跨越大型日期范围的所有数据。
- 官方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()
使用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()
创建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数据,并进行进一步的数据分析和可视化。它的易用性和灵活性使其成为交易者和数据分析人员的理想选择。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考