A cryptocurrency trading info package
Project description
Crypto Service
一个基于 Python 的加密货币数据处理工具包,专注于数据获取、处理和分析。
功能特点
- 支持币安的现货和永续合约数据获取
- 高效的数据缓存和存储机制
- 完整的类型提示和错误处理
- 支持自定义数据格式和存储方式
- 持续集成和自动发布
安装
pip install cryptoservice
快速开始
- 设置环境变量:
# 在 .env 文件中设置
BINANCE_API_KEY=your_api_key
BINANCE_API_SECRET=your_api_secret
- 基本使用:
from dotenv import load_dotenv
import os
from cryptoservice import MarketDataService
from cryptoservice.models import SortBy, Freq, HistoricalKlinesType
# 加载环境变量
load_dotenv()
api_key = os.getenv("BINANCE_API_KEY")
api_secret = os.getenv("BINANCE_API_SECRET")
# 创建服务实例
market_service = MarketDataService(api_key, api_secret)
演示各种市场数据功能
# 1. 获取单个交易对的实时行情
btc_ticker = market_service.get_symbol_ticker("BTCUSDT")
logger.info(f"BTCUSDT 实时行情: {btc_ticker}")
# 2. 获取所有交易对的实时行情
all_tickers = market_service.get_symbol_ticker()
logger.info(f"获取到 {len(all_tickers)} 个交易对的行情")
# 3. 获取成交量排名前10的USDT交易对
top_coins = market_service.get_top_coins(
limit=10, sort_by=SortBy.QUOTE_VOLUME, quote_asset="USDT"
)
logger.info("成交量TOP10的USDT交易对:")
for coin in top_coins:
logger.info(f"{coin.symbol}: 成交量 {coin.quote_volume}")
# 4. 获取市场概览
market_summary = market_service.get_market_summary(interval=Freq.h1)
logger.info(f"市场概览时间: {market_summary['snapshot_time']}")
# 5. 获取历史K线数据
historical_data = market_service.get_historical_klines(
symbol="ETHUSDT",
start_time="20240101",
end_time="20240103",
interval=Freq.h4,
klines_type=HistoricalKlinesType.SPOT,
)
logger.info(f"获取到 {len(historical_data)} 条 ETHUSDT 历史数据")
# 6. 获取订单簿数据
orderbook = market_service.get_orderbook("BTCUSDT", limit=10)
logger.info(f"BTCUSDT 订单簿深度: {len(orderbook['bids'])} 档")
# 7. 获取永续合约数据
perpetual_data = market_service.get_perpetual_data(
symbols=[
"BTCUSDT",
"ETHUSDT",
"BNBUSDT",
"SOLUSDT",
"ADAUSDT",
"XRPUSDT",
"DOGEUSDT",
"DOTUSDT",
"AVAXUSDT",
"LTCUSDT",
],
start_time="20240101",
end_time="20240103",
interval=Freq.h1,
data_path="data",
)
StorageUtils.visualize_npy_data("./data/1h/count/20240102.npy")
StorageUtils.visualize_npy_data("./data/1h/high_price/20240102.npy")
StorageUtils.visualize_npy_data("./data/1h/last_price/20240102.npy")
StorageUtils.visualize_npy_data("./data/1h/low_price/20240102.npy")
开发环境设置
- 克隆仓库:
git clone https://github.com/Mrzai/cryptoservice.git
cd cryptoservice
- 安装所有开发依赖:
pip install -e ".[dev-all]" # 安装所有开发依赖
- 安装 pre-commit hooks:
pre-commit install
贡献指南
- Fork 项目
- 创建功能分支:
git checkout -b feature/new-feature - 提交更改:
git commit -m 'feat: add new feature' - 推送分支:
git push origin feature/new-feature - 提交 Pull Request
提交信息必须遵循 Conventional Commits 规范:
feat: 新功能fix: 修复问题docs: 文档更新style: 代码格式调整refactor: 代码重构perf: 性能优化test: 测试相关chore: 构建过程或辅助工具的变动
许可证
MIT License
联系方式
- GitHub Issues: https://github.com/Mrzai/cryptoservice/issues
- Email: minzzzai.s@gmail.com
提交规范
提交信息必须遵循以下格式:
<type>(<scope>): <subject>
<body>
<footer>
例如:
# 新功能
feat(market): add historical data support
Added support for fetching historical market data
with customizable time ranges and intervals.
# 修复bug
fix(cache): resolve memory leak issue
Fixed memory leak in cache manager when handling
large datasets.
# 文档更新
docs(readme): update installation guide
Updated installation instructions to include
new development dependencies.
提交类型必须是以下之一:
- feat: 新功能
- fix: 修复问题
- docs: 文档更新
- style: 代码格式调整
- refactor: 代码重构
- perf: 性能优化
- test: 测试相关
- chore: 构建过程或辅助工具
- revert: 回退
- ci: CI/CD相关
- build: 构建系统
little bugs: merge before commit
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
cryptoservice-0.4.1.tar.gz
(43.6 kB
view details)
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file cryptoservice-0.4.1.tar.gz.
File metadata
- Download URL: cryptoservice-0.4.1.tar.gz
- Upload date:
- Size: 43.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cca80889194026125ac4f5f4d500c8a132dac48259b257de19a9ebf01e0ad34d
|
|
| MD5 |
d242f516147f8fcc2cfdcae717be1a5a
|
|
| BLAKE2b-256 |
c0e426c0af06e4b397e490005917bdd2d3c36cff971e8f475cbdfd6e999e7e47
|
File details
Details for the file cryptoservice-0.4.1-py3-none-any.whl.
File metadata
- Download URL: cryptoservice-0.4.1-py3-none-any.whl
- Upload date:
- Size: 30.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.10.16
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3926bc27a08cc1343648bcf873b2ae9db78d60d5727387616f2481815f71e62d
|
|
| MD5 |
cdd4c95a859ae51e16fe84e786041c36
|
|
| BLAKE2b-256 |
7ca7c6f6894d1bf2a7a3b6ddc152743d9c760e266a8625acc746c318f46d6795
|