cryptofeed について
Cryptofeed を使うためのリファレンススキルです。暗号資産取引所のデータを収集・正規化する Python ライブラリを扱い、複数取引所の市場データや取引システムの構築、ストレージへの出力を支援します。
主な機能
- 01取引所市場データの正規化
- 02REST によるフォールバック付き WebSocket 配信
- 0340 以上の取引所に対応
- 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 の開発を幅広く支援します。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(現物、先物、デリバリー、US)
- Coinbase、Kraken(現物、先物)、Bitfinex
- Gemini、OKX、Bybit
- Huobi(現物、DM、スワップ)、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 ソケット
主な機能
リアルタイムデータの正規化
Cryptofeed はすべての取引所のデータを正規化し、一貫性のある次の項目を提供します。
- シンボル形式
- タイムスタンプの処理
- データ構造
- チャネル名
WebSocket と REST のフォールバック
- リアルタイムデータには主に WebSocket を使用します
- WebSocket が利用できない場合は、REST ポーリングにフォールバックします
- 再接続を自動的に処理します
NBBO の集約
複数の取引所のデータを集約して裁定取引の機会を見つける、合成 National Best Bid/Offer フィードを作成できます。
バックエンドとの連携
カスタムの連携コードを作成せずに、さまざまなストレージシステムへデータを直接書き込めます。
要件
- 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 以上の取引所に対応しており、今後も増加予定です