关于 cryptofeed
Cryptofeed 使用参考技能,介绍这款用于采集并规范化加密货币交易所数据的 Python 库,适合构建跨交易所行情与交易系统,并将数据写入存储后端。
主要功能
- 01规范化交易所市场数据
- 02WebSocket 数据流及 REST 回退
- 03支持 40 多家交易所
- 04订单簿、交易和行情通道
- 05直接写入存储后端
- 06跨交易所 NBBO 聚合
适用场景
- 01监控多个交易所的价格
- 02分析订单簿深度
- 03处理交易流数据
- 04将行情数据写入存储
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ 2025emma/ vibe-coding-cn --skill cryptofeed安装后在 Claude Code 中输入/cryptofeed确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/index.mdother.mdREADME.md详细介绍
Cryptofeed 技能
全面协助 Cryptofeed 开发——这是一个用于处理加密货币交易所数据流的 Python 库,可提供规范化、标准化的结果。
何时使用此技能
遇到以下情况时,应使用此技能:
- 处理实时加密货币市场数据
- 实现来自加密货币交易所的 WebSocket 流式传输
- 构建算法交易系统
- 处理订单簿更新、交易或行情数据
- 连接 40 多家加密货币交易所
- 使用规范化的交易所 API
- 实现市场数据后端(Redis、MongoDB、Kafka 等)
快速参考
安装
# Basic installation
pip install cryptofeed
# With all optional backends
pip install cryptofeed[all]
基本用法模式
from cryptofeed import FeedHandler
from cryptofeed.exchanges import Coinbase, Bitfinex
from cryptofeed.defines import TICKER, TRADES, L2_BOOK
# Define callbacks
def ticker_callback(data):
print(f"Ticker: {data}")
def trade_callback(data):
print(f"Trade: {data}")
# Create feed handler
fh = FeedHandler()
# Add exchange feeds
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}
))
# Start receiving data
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'Pair: {symbol} Bid: {bid:.2f} ({bid_size:.6f}) from {bid_feed}')
print(f'Ask: {ask:.2f} ({ask_size:.6f}) from {ask_feed}')
f = FeedHandler()
f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
f.run()
支持的交易所(40 多家)
主要交易所
- Binance(现货、期货、交割、美国)
- Coinbase、Kraken(现货、期货)、Bitfinex
- Gemini、OKX、Bybit
- Huobi(现货、DM、Swap)、Gate.io(现货、期货)
- KuCoin、Deribit、BitMEX、dYdX
其他交易所
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(Streams 和 Sorted Sets)
- Arctic - 时间序列数据库
- ZeroMQ、InfluxDB v2、MongoDB
- Kafka、RabbitMQ、PostgreSQL
- QuasarDB、GCP Pub/Sub、QuestDB
- UDP/TCP/Unix Sockets
主要功能
实时数据规范化
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"Bids: {len(book.book.bids)} | Asks: {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 数据流、需身份验证的频道和后端集成,以用于生产系统。
代码示例
请参阅上方的快速参考部分和参考文件,查看完整的可运行示例。
资源
- 仓库:https://github.com/bmoscon/cryptofeed
- PyPI:https://pypi.python.org/pypi/cryptofeed
- 示例:https://github.com/bmoscon/cryptofeed/tree/master/examples
- 文档:https://github.com/bmoscon/cryptofeed/blob/master/docs/README.md
- Discord:https://discord.gg/zaBYaGAYfR
- 相关项目:Cryptostore(容器化数据存储)
注意事项
- 需要 Python 3.8+
- 以 WebSocket 为主,REST 为备用方案
- 对所有交易所的数据进行规范化
- 持续开发并提供社区支持
- 支持 40 多家交易所,且数量持续增长
评论
支持 Markdown