Cryptocurrency feed handler and synthetic NBBO feed
Project description
Cryptocurrency Exchange Feed Handler
====================================
| |License|
| |Python|
| |Build Status|
| |Codacy Badge|
| |PyPi|
Handles multiple feeds and returns normalized and standardized results
across exchanges to client registered callbacks for events like trades,
book updates, ticker updates, etc.
Please see the `examples </examples>`__ for more code samples.
.. code:: python
from cryptofeed import FeedHandler
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: TickerCallback(ticker)}
trade_cb = {TRADES: TradeCallback(trade)}
gemini_cb = {TRADES: TradeCallback(trade), L3_BOOK: BookCallback(book)}
fh.add_feed(Coinbase(pairs=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb)
fh.add_feed(Bitfinex(pairs=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb)
fh.add_feed(Poloniex(channels=['USDT-BTC'], callbacks=trade_cb))
fh.add_feed(Gemini(pairs=['BTC-USD'], callbacks=gemini_cb)
fh.run()
Supports the following exchanges:
- Bitfinex
- Coinbase
- Poloniex
- Gemini
- HitBTC
- Bitstamp
- BitMEX
- Kraken
- Binance
Also provides a synthetic NBBO (National Best Bid/Offer) feed that
aggregates the best bids and asks from the user specified feeds.
.. code:: python
from cryptofeed.feedhandler import FeedHandler
from cryptofeed import Coinbase, Bitfinex, HitBTC
def nbbo_ticker(pair, bid, ask, bid_feed, ask_feed):
print('Pair: {} Bid: {} Bid Feed: {} Ask: {} Ask Feed: {}'.format(pair,
bid,
bid_feed,
ask,
ask_feed))
fh = FeedHandler()
fh.add_nbbo([Coinbase, Bitfinex, HitBTC], ['BTC-USD'], nbbo_ticker)
fh.run()
Supported Channels
------------------
Cryptofeed supports the following channels:
- 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
- TICKER
- VOLUME
- FUNDING
- BOOK\_DELTA - Subscribed to with L2 or L3 books, receive book deltas
rather than the entire book on updates. Full updates will be
periodically sent on the L2 or L3 channel. If BOOK\_DELTA is enabled,
only L2 or L3 book can be enabled, not both. To received both create
two ``feedhandler`` objects.
Backends
--------
Cryptofeeds supports ``backend`` callbacks that will write directly to
storage or other interfaces
Supported Backends:
- Redis
- `Arctic <https://github.com/manahl/arctic>`__
- ZeroMQ
- UDP Sockets
- TCP Sockets
- Unix Domain Sockets
Rest API
--------
Cryptofeed supports some REST interfaces for retrieving historical data
and placing orders. See the `rest </cryptofeed/rest>`__ package.
Planned Work
============
Future Feeds
~~~~~~~~~~~~
- EXX
- CEX
- BTCC
- Many more...
REST
~~~~
Continue to build out rest endpoints
Additional Callback Methods / Backends
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Postgres
- InfluxDB
- RabbitMQ
.. |License| image:: https://img.shields.io/badge/license-XFree86-blue.svg
:target: LICENSE
.. |Python| image:: https://img.shields.io/badge/Python-3.6+-green.svg
.. |Build Status| image:: https://travis-ci.org/bmoscon/cryptofeed.svg?branch=master
:target: https://travis-ci.org/bmoscon/cryptofeed
.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/efa4e0d6e10b41d0b51454d08f7b33b1
:target: https://www.codacy.com/app/bmoscon/cryptofeed?utm_source=github.com&utm_medium=referral&utm_content=bmoscon/cryptofeed&utm_campaign=Badge_Grade
.. |PyPi| image:: https://img.shields.io/badge/PyPi-cryptofeed-brightgreen.svg
:target: https://pypi-hypernode.com/pypi/cryptofeed
====================================
| |License|
| |Python|
| |Build Status|
| |Codacy Badge|
| |PyPi|
Handles multiple feeds and returns normalized and standardized results
across exchanges to client registered callbacks for events like trades,
book updates, ticker updates, etc.
Please see the `examples </examples>`__ for more code samples.
.. code:: python
from cryptofeed import FeedHandler
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: TickerCallback(ticker)}
trade_cb = {TRADES: TradeCallback(trade)}
gemini_cb = {TRADES: TradeCallback(trade), L3_BOOK: BookCallback(book)}
fh.add_feed(Coinbase(pairs=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb)
fh.add_feed(Bitfinex(pairs=['BTC-USD'], channels=[TICKER], callbacks=ticker_cb)
fh.add_feed(Poloniex(channels=['USDT-BTC'], callbacks=trade_cb))
fh.add_feed(Gemini(pairs=['BTC-USD'], callbacks=gemini_cb)
fh.run()
Supports the following exchanges:
- Bitfinex
- Coinbase
- Poloniex
- Gemini
- HitBTC
- Bitstamp
- BitMEX
- Kraken
- Binance
Also provides a synthetic NBBO (National Best Bid/Offer) feed that
aggregates the best bids and asks from the user specified feeds.
.. code:: python
from cryptofeed.feedhandler import FeedHandler
from cryptofeed import Coinbase, Bitfinex, HitBTC
def nbbo_ticker(pair, bid, ask, bid_feed, ask_feed):
print('Pair: {} Bid: {} Bid Feed: {} Ask: {} Ask Feed: {}'.format(pair,
bid,
bid_feed,
ask,
ask_feed))
fh = FeedHandler()
fh.add_nbbo([Coinbase, Bitfinex, HitBTC], ['BTC-USD'], nbbo_ticker)
fh.run()
Supported Channels
------------------
Cryptofeed supports the following channels:
- 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
- TICKER
- VOLUME
- FUNDING
- BOOK\_DELTA - Subscribed to with L2 or L3 books, receive book deltas
rather than the entire book on updates. Full updates will be
periodically sent on the L2 or L3 channel. If BOOK\_DELTA is enabled,
only L2 or L3 book can be enabled, not both. To received both create
two ``feedhandler`` objects.
Backends
--------
Cryptofeeds supports ``backend`` callbacks that will write directly to
storage or other interfaces
Supported Backends:
- Redis
- `Arctic <https://github.com/manahl/arctic>`__
- ZeroMQ
- UDP Sockets
- TCP Sockets
- Unix Domain Sockets
Rest API
--------
Cryptofeed supports some REST interfaces for retrieving historical data
and placing orders. See the `rest </cryptofeed/rest>`__ package.
Planned Work
============
Future Feeds
~~~~~~~~~~~~
- EXX
- CEX
- BTCC
- Many more...
REST
~~~~
Continue to build out rest endpoints
Additional Callback Methods / Backends
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Postgres
- InfluxDB
- RabbitMQ
.. |License| image:: https://img.shields.io/badge/license-XFree86-blue.svg
:target: LICENSE
.. |Python| image:: https://img.shields.io/badge/Python-3.6+-green.svg
.. |Build Status| image:: https://travis-ci.org/bmoscon/cryptofeed.svg?branch=master
:target: https://travis-ci.org/bmoscon/cryptofeed
.. |Codacy Badge| image:: https://api.codacy.com/project/badge/Grade/efa4e0d6e10b41d0b51454d08f7b33b1
:target: https://www.codacy.com/app/bmoscon/cryptofeed?utm_source=github.com&utm_medium=referral&utm_content=bmoscon/cryptofeed&utm_campaign=Badge_Grade
.. |PyPi| image:: https://img.shields.io/badge/PyPi-cryptofeed-brightgreen.svg
:target: https://pypi-hypernode.com/pypi/cryptofeed
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
File details
Details for the file cryptofeed-0.17.3-py3-none-any.whl
.
File metadata
- Download URL: cryptofeed-0.17.3-py3-none-any.whl
- Upload date:
- Size: 60.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/1.12.1 pkginfo/1.4.2 requests/2.20.0 setuptools/40.5.0 requests-toolbelt/0.8.0 tqdm/4.28.1 CPython/3.7.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0e395770f6aae90ef4f6be7abb474ae30bf5cb8081d81e7a8a29be819c2ef6f8 |
|
MD5 | 0601bccb9e605bc4746652b68c12783c |
|
BLAKE2b-256 | dc37a51f244d43a9e287d01e2a477b8323a8e7d1035be6bc9725b8ac13e8acb3 |