Skip to main content

A cryptocurrency trading info package

Project description

Crypto Service

一个基于 Python 的加密货币数据处理工具包,专注于数据获取、处理和分析。

功能特点

  • 支持币安的现货和永续合约数据获取
  • 高效的数据缓存和存储机制
  • 完整的类型提示和错误处理
  • 支持自定义数据格式和存储方式
  • 持续集成和自动发布

安装

pip install cryptoservice

快速开始

  1. 设置环境变量:
# 在 .env 文件中设置
BINANCE_API_KEY=your_api_key
BINANCE_API_SECRET=your_api_secret
  1. 基本使用:
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")

开发环境设置

  1. 克隆仓库:
git clone https://github.com/Mrzai/cryptoservice.git
cd cryptoservice
  1. 安装所有开发依赖:
pip install -e ".[dev-all]"  # 安装所有开发依赖
  1. 安装 pre-commit hooks:
pre-commit install

贡献指南

  1. Fork 项目
  2. 创建功能分支:git checkout -b feature/new-feature
  3. 提交更改:git commit -m 'feat: add new feature'
  4. 推送分支:git push origin feature/new-feature
  5. 提交 Pull Request

提交信息必须遵循 Conventional Commits 规范:

  • feat: 新功能
  • fix: 修复问题
  • docs: 文档更新
  • style: 代码格式调整
  • refactor: 代码重构
  • perf: 性能优化
  • test: 测试相关
  • chore: 构建过程或辅助工具的变动

许可证

MIT License

联系方式

提交规范

提交信息必须遵循以下格式:

<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: 构建系统

Project details


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.2.4.tar.gz (20.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cryptoservice-0.2.4-py3-none-any.whl (21.4 kB view details)

Uploaded Python 3

File details

Details for the file cryptoservice-0.2.4.tar.gz.

File metadata

  • Download URL: cryptoservice-0.2.4.tar.gz
  • Upload date:
  • Size: 20.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for cryptoservice-0.2.4.tar.gz
Algorithm Hash digest
SHA256 4ed9ee40c02bc5749115a184281eb1ebd9c04a3ca54de1f551f84a869ef3f1d6
MD5 b13189193be4b47b26a9205e6294d462
BLAKE2b-256 bf8949a83d99b4699e9afde0f6c758d3003de5c32e709b3d8ea5d813529face7

See more details on using hashes here.

File details

Details for the file cryptoservice-0.2.4-py3-none-any.whl.

File metadata

  • Download URL: cryptoservice-0.2.4-py3-none-any.whl
  • Upload date:
  • Size: 21.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.10.15

File hashes

Hashes for cryptoservice-0.2.4-py3-none-any.whl
Algorithm Hash digest
SHA256 1f5ebc225828a02a3cf70da3d154a8368677b8144b6fcbbebfd3584deef91531
MD5 46e901701a8ef09b16171b07bb8311ab
BLAKE2b-256 962597d2098879e18b2b0195acdda3b8185ee097bf2093e96f892de76f35a2d9

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page