mirror of
https://github.com/tradecatlabs/vibe-coding-cn.git
synced 2026-08-16 12:28:06 +00:00
refactor: 重构目录结构以支持 i18n
创建 'i18n' 目录以存放多语言内容。将所有现有的中文内容(文档、提示词、技能、README)移动到 'i18n/zh/' 中。添加了新的根 README 作为语言入口,并为英文('en')翻译创建了占位符结构。
This commit is contained in:
@@ -1,221 +0,0 @@
|
||||
---
|
||||
name: cryptofeed
|
||||
description: Cryptofeed - Real-time cryptocurrency market data feeds from 40+ exchanges. WebSocket streaming, normalized data, order books, trades, tickers. Python library for algorithmic trading and market data analysis.
|
||||
---
|
||||
|
||||
# Cryptofeed Skill
|
||||
|
||||
Comprehensive assistance with Cryptofeed development - a Python library for handling cryptocurrency exchange data feeds with normalized and standardized results.
|
||||
|
||||
## When to Use This Skill
|
||||
|
||||
This skill should be triggered when:
|
||||
- Working with real-time cryptocurrency market data
|
||||
- Implementing WebSocket streaming from crypto exchanges
|
||||
- Building algorithmic trading systems
|
||||
- Processing order book updates, trades, or ticker data
|
||||
- Connecting to 40+ cryptocurrency exchanges
|
||||
- Using normalized exchange APIs
|
||||
- Implementing market data backends (Redis, MongoDB, Kafka, etc.)
|
||||
|
||||
## Quick Reference
|
||||
|
||||
### Installation
|
||||
|
||||
```python
|
||||
# Basic installation
|
||||
pip install cryptofeed
|
||||
|
||||
# With all optional backends
|
||||
pip install cryptofeed[all]
|
||||
```
|
||||
|
||||
### Basic Usage Pattern
|
||||
|
||||
```python
|
||||
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()
|
||||
```
|
||||
|
||||
### National Best Bid/Offer (NBBO)
|
||||
|
||||
```python
|
||||
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()
|
||||
```
|
||||
|
||||
## Supported Exchanges (40+)
|
||||
|
||||
### Major Exchanges
|
||||
- **Binance** (Spot, Futures, Delivery, US)
|
||||
- **Coinbase**, **Kraken** (Spot, Futures), **Bitfinex**
|
||||
- **Gemini**, **OKX**, **Bybit**
|
||||
- **Huobi** (Spot, DM, Swap), **Gate.io** (Spot, Futures)
|
||||
- **KuCoin**, **Deribit**, **BitMEX**, **dYdX**
|
||||
|
||||
### Additional Exchanges
|
||||
AscendEX, Bequant, bitFlyer, Bithumb, Bitstamp, Blockchain.com, Bit.com, Bitget, Crypto.com, Delta, EXX, FMFW.io, HitBTC, Independent Reserve, OKCoin, Phemex, Poloniex, ProBit, Upbit
|
||||
|
||||
## Supported Data Channels
|
||||
|
||||
### Market Data (Public)
|
||||
- **L1_BOOK** - Top of order book
|
||||
- **L2_BOOK** - Price aggregated sizes
|
||||
- **L3_BOOK** - Price aggregated orders
|
||||
- **TRADES** - Executed trades (taker side)
|
||||
- **TICKER** - Price ticker updates
|
||||
- **FUNDING** - Funding rate data
|
||||
- **OPEN_INTEREST** - Open interest statistics
|
||||
- **LIQUIDATIONS** - Liquidation events
|
||||
- **INDEX** - Index price data
|
||||
- **CANDLES** - Candlestick/K-line data
|
||||
|
||||
### Authenticated Channels (Private)
|
||||
- **ORDER_INFO** - Order status updates
|
||||
- **TRANSACTIONS** - Deposits and withdrawals
|
||||
- **BALANCES** - Wallet balance updates
|
||||
- **FILLS** - User's executed trades
|
||||
|
||||
## Supported Backends
|
||||
|
||||
Write data directly to storage:
|
||||
|
||||
- **Redis** (Streams and Sorted Sets)
|
||||
- **Arctic** - Time-series database
|
||||
- **ZeroMQ**, **InfluxDB v2**, **MongoDB**
|
||||
- **Kafka**, **RabbitMQ**, **PostgreSQL**
|
||||
- **QuasarDB**, **GCP Pub/Sub**, **QuestDB**
|
||||
- **UDP/TCP/Unix Sockets**
|
||||
|
||||
## Key Features
|
||||
|
||||
### Real-time Data Normalization
|
||||
Cryptofeed normalizes data across all exchanges, providing consistent:
|
||||
- Symbol formatting
|
||||
- Timestamp handling
|
||||
- Data structures
|
||||
- Channel names
|
||||
|
||||
### WebSocket + REST Fallback
|
||||
- Primarily uses WebSockets for real-time data
|
||||
- Falls back to REST polling when WebSocket unavailable
|
||||
- Automatic reconnection handling
|
||||
|
||||
### NBBO Aggregation
|
||||
Create synthetic National Best Bid/Offer feeds by aggregating data across multiple exchanges to find arbitrage opportunities.
|
||||
|
||||
### Backend Integration
|
||||
Direct data writing to various storage systems without custom integration code.
|
||||
|
||||
## Requirements
|
||||
|
||||
- **Python**: 3.8 or higher
|
||||
- **Installation**: Via pip or from source
|
||||
- **Optional Dependencies**: Install backends as needed
|
||||
|
||||
## Common Use Cases
|
||||
|
||||
### Multi-Exchange Price Monitoring
|
||||
```python
|
||||
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()
|
||||
```
|
||||
|
||||
### Order Book Depth Analysis
|
||||
```python
|
||||
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}
|
||||
))
|
||||
```
|
||||
|
||||
### Trade Flow Analysis
|
||||
```python
|
||||
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}
|
||||
))
|
||||
```
|
||||
|
||||
## Reference Files
|
||||
|
||||
This skill includes documentation in `references/`:
|
||||
|
||||
- **getting_started.md** - Installation and basic usage
|
||||
- **README.md** - Complete overview and examples
|
||||
|
||||
Use `view` to read specific reference files when detailed information is needed.
|
||||
|
||||
## Working with This Skill
|
||||
|
||||
### For Beginners
|
||||
Start with basic FeedHandler setup and single exchange connections before adding multiple feeds.
|
||||
|
||||
### For Advanced Users
|
||||
Explore NBBO feeds, authenticated channels, and backend integrations for production systems.
|
||||
|
||||
### For Code Examples
|
||||
See the quick reference section above and the reference files for complete working examples.
|
||||
|
||||
## Resources
|
||||
|
||||
- **Repository**: https://github.com/bmoscon/cryptofeed
|
||||
- **PyPI**: https://pypi.python.org/pypi/cryptofeed
|
||||
- **Examples**: https://github.com/bmoscon/cryptofeed/tree/master/examples
|
||||
- **Documentation**: https://github.com/bmoscon/cryptofeed/blob/master/docs/README.md
|
||||
- **Discord**: https://discord.gg/zaBYaGAYfR
|
||||
- **Related**: Cryptostore (containerized data storage)
|
||||
|
||||
## Notes
|
||||
|
||||
- Requires Python 3.8+
|
||||
- WebSocket-first approach with REST fallback
|
||||
- Normalized data across all exchanges
|
||||
- Active development and community support
|
||||
- 40+ supported exchanges and growing
|
||||
@@ -1,192 +0,0 @@
|
||||
# Cryptocurrency Exchange Feed Handler
|
||||
[](LICENSE)
|
||||

|
||||
[](https://pypi.python.org/pypi/cryptofeed)
|
||||
[](https://www.codacy.com/app/bmoscon/cryptofeed?utm_source=github.com&utm_medium=referral&utm_content=bmoscon/cryptofeed&utm_campaign=Badge_Grade)
|
||||
|
||||
Handles multiple cryptocurrency exchange data feeds and returns normalized and standardized results to client registered callbacks for events like trades, book updates, ticker updates, etc. Utilizes websockets when possible, but can also poll data via REST endpoints if a websocket is not provided.
|
||||
|
||||
## Supported exchanges
|
||||
|
||||
* [AscendEX](https://ascendex.com/)
|
||||
* [Bequant](https://bequant.io/)
|
||||
* [Bitfinex](https://bitfinex.com)
|
||||
* [bitFlyer](https://bitflyer.com/)
|
||||
* [Bithumb](https://en.bithumb.com/)
|
||||
* [Bitstamp](https://www.bitstamp.net/)
|
||||
* [Blockchain.com](https://www.blockchain.com/)
|
||||
* [Bybit](https://www.bybit.com/)
|
||||
* [Binance](https://www.binance.com/en)
|
||||
* [Binance Delivery](https://binance-docs.github.io/apidocs/delivery/en/)
|
||||
* [Binance Futures](https://www.binance.com/en/futures)
|
||||
* [Binance US](https://www.binance.us/en)
|
||||
* [Bit.com](https://www.bit.com)
|
||||
* [Bitget](https://www.bitget.com/)
|
||||
* [BitMEX](https://www.bitmex.com/)
|
||||
* [Coinbase](https://www.coinbase.com/)
|
||||
* [Crypto.com](https://www.crypto.com)
|
||||
* [Delta](https://www.delta.exchange/)
|
||||
* [Deribit](https://www.deribit.com/)
|
||||
* [dYdX](https://dydx.exchange/)
|
||||
* [FMFW.io](https://www.fmfw.io/)
|
||||
* [EXX](https://www.exx.com/)
|
||||
* [Gate.io](https://www.gate.io/)
|
||||
* [Gate.io Futures](https://www.gate.io/futures_center)
|
||||
* [Gemini](https://gemini.com/)
|
||||
* [HitBTC](https://hitbtc.com/)
|
||||
* [Huobi](https://www.hbg.com/)
|
||||
* [Huobi DM](https://www.huobi.com/en-us/markets/hb_dm/)
|
||||
* Huobi Swap (Coin-M and USDT-M)
|
||||
* [Independent Reserve](https://www.independentreserve.com/)
|
||||
* [Kraken](https://www.kraken.com/)
|
||||
* [Kraken Futures](https://futures.kraken.com/)
|
||||
* [KuCoin](https://www.kucoin.com/)
|
||||
* [OKCoin](http://okcoin.com/)
|
||||
* [OKX](https://www.okx.com/)
|
||||
* [Phemex](https://phemex.com/)
|
||||
* [Poloniex](https://www.poloniex.com/)
|
||||
* [ProBit](https://www.probit.com/)
|
||||
* [Upbit](https://sg.upbit.com/home)
|
||||
|
||||
|
||||
## Basic Usage
|
||||
|
||||
Create a FeedHandler object and add subscriptions. For the various data channels that an exchange supports, you can supply callbacks for data events, or use provided backends (described below) to handle the data for you. Start the feed handler and you're done!
|
||||
|
||||
```python
|
||||
from cryptofeed import FeedHandler
|
||||
# not all imports shown for clarity
|
||||
|
||||
fh = FeedHandler()
|
||||
|
||||
# ticker, trade, and book are user defined functions that
|
||||
# will be called when ticker, trade and book updates are received
|
||||
ticker_cb = {TICKER: ticker}
|
||||
trade_cb = {TRADES: trade}
|
||||
gemini_cb = {TRADES: trade, L2_BOOK: book}
|
||||
|
||||
|
||||
fh.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
|
||||
fh.add_feed(Bitfinex(symbols=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb))
|
||||
fh.add_feed(Poloniex(symbols=['BTC-USDT'], channels=[TRADES], callbacks=trade_cb))
|
||||
fh.add_feed(Gemini(symbols=['BTC-USD', 'ETH-USD'], channels=[TRADES, L2_BOOK], callbacks=gemini_cb))
|
||||
|
||||
fh.run()
|
||||
```
|
||||
|
||||
Please see the [examples](https://github.com/bmoscon/cryptofeed/tree/master/examples) for more code samples and the [documentation](https://github.com/bmoscon/cryptofeed/blob/master/docs/README.md) for more information about the library usage.
|
||||
|
||||
|
||||
For an example of a containerized application using cryptofeed to store data to a backend, please see [Cryptostore](https://github.com/bmoscon/cryptostore).
|
||||
|
||||
|
||||
## National Best Bid/Offer (NBBO)
|
||||
|
||||
Cryptofeed also provides a synthetic [NBBO](examples/demo_nbbo.py) (National Best Bid/Offer) feed that aggregates the best bids and asks from the user specified feeds.
|
||||
|
||||
```python
|
||||
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 Price: {bid:.2f} Bid Size: {bid_size:.6f} Bid Feed: {bid_feed} Ask Price: {ask:.2f} Ask Size: {ask_size:.6f} Ask Feed: {ask_feed}')
|
||||
|
||||
|
||||
def main():
|
||||
f = FeedHandler()
|
||||
f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
|
||||
f.run()
|
||||
```
|
||||
|
||||
## Supported Channels
|
||||
|
||||
Cryptofeed supports the following channels from exchanges:
|
||||
|
||||
### Market Data Channels (Public)
|
||||
|
||||
* L1_BOOK - Top of book
|
||||
* L2_BOOK - Price aggregated sizes. Some exchanges provide the entire depth, some provide a subset.
|
||||
* L3_BOOK - Price aggregated orders. Like the L2 book, some exchanges may only provide partial depth.
|
||||
* TRADES - Note this reports the taker's side, even for exchanges that report the maker side.
|
||||
* TICKER
|
||||
* FUNDING
|
||||
* OPEN_INTEREST - Open interest data.
|
||||
* LIQUIDATIONS
|
||||
* INDEX
|
||||
* CANDLES - Candlestick / K-Line data.
|
||||
|
||||
### Authenticated Data Channels
|
||||
|
||||
* ORDER_INFO - Order status updates
|
||||
* TRANSACTIONS - Real-time updates on account deposits and withdrawals
|
||||
* BALANCES - Updates on wallet funds
|
||||
* FILLS - User's executed trades
|
||||
|
||||
|
||||
## Backends
|
||||
|
||||
Cryptofeed supports `backend` callbacks that will write directly to storage or other interfaces.
|
||||
|
||||
Supported Backends:
|
||||
* Redis (Streams and Sorted Sets)
|
||||
* [Arctic](https://github.com/manahl/arctic)
|
||||
* ZeroMQ
|
||||
* UDP Sockets
|
||||
* TCP Sockets
|
||||
* Unix Domain Sockets
|
||||
* [InfluxDB v2](https://github.com/influxdata/influxdb)
|
||||
* MongoDB
|
||||
* Kafka
|
||||
* RabbitMQ
|
||||
* PostgreSQL
|
||||
* [QuasarDB](https://quasar.ai/)
|
||||
* GCP Pub/Sub
|
||||
* [QuestDB](https://questdb.io/)
|
||||
|
||||
|
||||
## Installation
|
||||
|
||||
**Note:** cryptofeed requires Python 3.8+
|
||||
|
||||
Cryptofeed can be installed from PyPi. (It's recommended that you install in a virtual environment of your choosing).
|
||||
|
||||
pip install cryptofeed
|
||||
|
||||
Cryptofeed has optional dependencies, depending on the backends used. You can install them individually, or all at once. To install Cryptofeed along with all its optional dependencies in one bundle:
|
||||
|
||||
pip install cryptofeed[all]
|
||||
|
||||
If you wish to clone the repository and install from source, run this command from the root of the cloned repository.
|
||||
|
||||
python setup.py install
|
||||
|
||||
Alternatively, you can install in 'edit' mode (also called development mode):
|
||||
|
||||
python setup.py develop
|
||||
|
||||
See more discussion of package installation in [INSTALL.md](https://github.com/bmoscon/cryptofeed/blob/master/INSTALL.md).
|
||||
|
||||
|
||||
|
||||
## Rest API
|
||||
|
||||
Cryptofeed supports some REST interfaces for retrieving real-time and historical data, as well as order placement and account management. These are integrated into the exchange classes directly. You can view the supported methods by calling the `info()` method on any exchange. The methods for interacting with the exchange RET endpoints exist in two flavors, the synchronous methods (suffixed with `_sync`) as well as the asynchronous which can be utilized with asyncio. For more information see the [documentation](docs/rest.md).
|
||||
|
||||
|
||||
## Future Work
|
||||
|
||||
There are a lot of planned features, new exchanges, etc planned! If you'd like to discuss ongoing development, please join the [discord](https://discord.gg/zaBYaGAYfR) or open a thread in the [discussions](https://github.com/bmoscon/cryptofeed/discussions) in GitHub.
|
||||
|
||||
## Contributing
|
||||
|
||||
Issues and PRs are welcomed!
|
||||
|
||||
Cryptofeed wouldn't be possible without the help of many [contributors](AUTHORS.md)! I owe them and all other contributors my thanks!
|
||||
|
||||
## Donations / Support
|
||||
|
||||
Support and donations are appreciated but not required. You can donate via [GitHub Sponsors](https://github.com/sponsors/bmoscon), or via the addresses below:
|
||||
|
||||
* Bitcoin: bc1qm0kxz8hqacaglku5fjhfe9a5hjnuyfwk02lsyr
|
||||
* Ethereum: 0x690709FEe13eEce9E7852089BB2D53Ae5D073154
|
||||
@@ -1,24 +0,0 @@
|
||||
# Cryptofeed Documentation Index
|
||||
|
||||
## Categories
|
||||
|
||||
### README
|
||||
**File:** `README.md`
|
||||
**Pages:** 1 (192 lines)
|
||||
|
||||
Complete overview of Cryptofeed including:
|
||||
- Installation instructions
|
||||
- Supported exchanges (40+)
|
||||
- Basic usage examples
|
||||
- NBBO (National Best Bid/Offer) implementation
|
||||
- Supported channels and backends
|
||||
- REST API information
|
||||
|
||||
## Quick Links
|
||||
|
||||
- Installation and setup → `README.md`
|
||||
- Basic usage examples → `README.md` (line 52-76)
|
||||
- NBBO example → `README.md` (line 83-100)
|
||||
- Supported exchanges → `README.md` (line 9-50)
|
||||
- Data channels → `README.md` (line 102-125)
|
||||
- Backend integrations → `README.md` (line 127-146)
|
||||
@@ -1,11 +0,0 @@
|
||||
# Cryptofeed - Other
|
||||
|
||||
**Pages:** 1
|
||||
|
||||
---
|
||||
|
||||
## GitHub - bmoscon/cryptofeed: Cryptocurrency Exchange Websocket Data Feed Handler
|
||||
|
||||
**URL:** https://github.com/bmoscon/cryptofeed
|
||||
|
||||
---
|
||||
Reference in New Issue
Block a user