加密货币数据流Skill cryptofeed

Cryptofeed是一个用于实时加密货币市场数据处理的Python库,支持40多家交易所的WebSocket流式传输,提供标准化数据、订单簿、交易和行情信息。适用于算法交易、量化金融、市场数据分析、套利策略开发、多交易所监控和实时数据处理。关键词:加密货币数据流、Python量化交易、WebSocket实时数据、交易所API集成、算法交易系统、市场数据分析、订单簿处理、套利策略、多交易所聚合、区块链金融数据。

量化金融 2 次安装 66 次浏览 更新于 2/23/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.com, Bit.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多家交易所且持续增加