加密货币数据流Skill cryptofeed

Cryptofeed是一个强大的Python库,专门用于实时获取和标准化处理来自40多家加密货币交易所的市场数据。它支持WebSocket流式传输、订单簿深度、交易记录、行情报价等多种数据通道,并提供NBBO聚合、多后端存储集成等功能。该工具是构建算法交易系统、量化策略回测、市场监控和数据分析平台的核心组件,适用于量化金融、区块链开发和金融科技领域。关键词:加密货币数据,实时行情,WebSocket,算法交易,量化金融,Python库,交易所API,市场数据标准化,NBBO聚合,区块链开发。

算法交易 0 次安装 2 次浏览 更新于 2/28/2026

名称: cryptofeed 描述: Cryptofeed - 来自40多家交易所的实时加密货币市场数据源。WebSocket流式传输、标准化数据、订单簿、交易、行情。用于算法交易和市场数据分析的Python库。

Cryptofeed 技能

提供关于Cryptofeed开发的全面帮助 - 这是一个用于处理加密货币交易所数据源的Python库,提供标准化和统一的结果。

何时使用此技能

此技能应在以下情况下触发:

  • 处理实时加密货币市场数据时
  • 从加密货币交易所实现WebSocket流式传输时
  • 构建算法交易系统时
  • 处理订单簿更新、交易或行情数据时
  • 连接40多家加密货币交易所时
  • 使用标准化交易所API时
  • 实现市场数据后端(Redis、MongoDB、Kafka等)时

快速参考

安装

# 基本安装
pip install cryptofeed

# 包含所有可选后端
pip install cryptofeed[all]

基本使用模式

from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Bitfinex
from cryptofeed.defines import TICKER, TRADES, L2_BOOK

# 定义回调函数
def ticker_callback(data):
    print(f"行情: {data}")

def trade_callback(data):
    print(f"交易: {data}")

# 创建数据处理器
fh = FeedHandler()

# 添加交易所数据源
fh.add_feed(Coinbase(
    symbols=['BTC-USD'],
    channels=[TICKER],
    callbacks={TICKER: ticker_callback}
))

fh.add_feed(Bitfinex(
    symbols=['BTC-USD'],
    channels=[TRADES],
    callbacks={TRADES: trade_callback}
))

# 开始接收数据
fh.run()

全国最优买卖报价(NBBO)

from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Gemini, Kraken

def nbbo_update(symbol, bid, bid_size, ask, ask_size, bid_feed, ask_feed):
    print(f'交易对: {symbol} 买价: {bid:.2f} ({bid_size:.6f}) 来自 {bid_feed}')
    print(f'卖价: {ask:.2f} ({ask_size:.6f}) 来自 {ask_feed}')

f = FeedHandler()
f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
f.run()

支持的交易所(40+)

主要交易所

  • 币安(现货、期货、交割、美国站)
  • CoinbaseKraken(现货、期货)、Bitfinex
  • GeminiOKXBybit
  • 火币(现货、DM、Swap)、Gate.io(现货、期货)
  • KuCoinDeribitBitMEXdYdX

其他交易所

AscendEX、Bequant、bitFlyer、Bithumb、Bitstamp、Blockchain.comBit.com、Bitget、Crypto.com、Delta、EXX、FMFW.io、HitBTC、Independent Reserve、OKCoin、Phemex、Poloniex、ProBit、Upbit

支持的数据通道

市场数据(公开)

  • L1_BOOK - 订单簿顶部
  • L2_BOOK - 价格聚合数量
  • L3_BOOK - 价格聚合订单
  • TRADES - 已执行交易(吃单方)
  • TICKER - 行情更新
  • FUNDING - 资金费率数据
  • OPEN_INTEREST - 未平仓量统计
  • LIQUIDATIONS - 清算事件
  • INDEX - 指数价格数据
  • CANDLES - K线数据

认证通道(私有)

  • ORDER_INFO - 订单状态更新
  • TRANSACTIONS - 充值和提现
  • BALANCES - 钱包余额更新
  • FILLS - 用户已执行交易

支持的后端

直接将数据写入存储:

  • Redis(流和有序集合)
  • Arctic - 时间序列数据库
  • ZeroMQInfluxDB v2MongoDB
  • KafkaRabbitMQPostgreSQL
  • QuasarDBGCP Pub/SubQuestDB
  • UDP/TCP/Unix套接字

主要特性

实时数据标准化

Cryptofeed对所有交易所的数据进行标准化,提供一致的:

  • 交易对格式
  • 时间戳处理
  • 数据结构
  • 通道名称

WebSocket + REST回退

  • 主要使用WebSocket进行实时数据传输
  • 当WebSocket不可用时回退到REST轮询
  • 自动重连处理

NBBO聚合

通过聚合多个交易所的数据创建合成全国最优买卖报价源,以发现套利机会。

后端集成

无需自定义集成代码即可直接将数据写入各种存储系统。

要求

  • Python: 3.8或更高版本
  • 安装: 通过pip或从源码安装
  • 可选依赖: 根据需要安装后端

常见用例

多交易所价格监控

fh = FeedHandler()
fh.add_feed(Binance(symbols=['BTC-USDT'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.add_feed(Kraken(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
fh.run()

订单簿深度分析

def book_callback(book, receipt_timestamp):
    print(f"买盘: {len(book.book.bids)} | 卖盘: {len(book.book.asks)}")

fh.add_feed(Coinbase(
    symbols=['BTC-USD'],
    channels=[L2_BOOK],
    callbacks={L2_BOOK: book_callback}
))

交易流分析

def trade_callback(trade, receipt_timestamp):
    print(f"{trade.exchange} - {trade.symbol}: {trade.side} {trade.amount} @ {trade.price}")

fh.add_feed(Binance(
    symbols=['BTC-USDT', 'ETH-USDT'],
    channels=[TRADES],
    callbacks={TRADES: trade_callback}
))

参考文件

此技能包含references/目录中的文档:

  • getting_started.md - 安装和基本使用
  • README.md - 完整概述和示例

需要详细信息时,使用view命令读取特定参考文件。

使用此技能

对于初学者

从基本FeedHandler设置和单个交易所连接开始,然后再添加多个数据源。

对于高级用户

探索NBBO数据源、认证通道和后端集成,用于生产系统。

对于代码示例

请参阅上面的快速参考部分和参考文件中的完整工作示例。

资源

注意事项

  • 需要Python 3.8+
  • 以WebSocket为主,REST为备用
  • 所有交易所数据标准化
  • 积极开发和社区支持
  • 支持40多家交易所且不断增加