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

little bugs: merge before commit

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.4.1.tar.gz (43.6 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.4.1-py3-none-any.whl (30.4 kB view details)

Uploaded Python 3

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

Hashes for cryptoservice-0.4.1.tar.gz
Algorithm Hash digest
SHA256 cca80889194026125ac4f5f4d500c8a132dac48259b257de19a9ebf01e0ad34d
MD5 d242f516147f8fcc2cfdcae717be1a5a
BLAKE2b-256 c0e426c0af06e4b397e490005917bdd2d3c36cff971e8f475cbdfd6e999e7e47

See more details on using hashes here.

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

Hashes for cryptoservice-0.4.1-py3-none-any.whl
Algorithm Hash digest
SHA256 3926bc27a08cc1343648bcf873b2ae9db78d60d5727387616f2481815f71e62d
MD5 cdd4c95a859ae51e16fe84e786041c36
BLAKE2b-256 7ca7c6f6894d1bf2a7a3b6ddc152743d9c760e266a8625acc746c318f46d6795

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