加密货币交易所数据处理程序
交易所APP开发功能丨交易所系统开发(成熟及案例)丨交易所系统源码平台
Uniswap交易所开发稳定版丨Uniswap交易所系统开发(开发模板)丨Uniswap交易所系统源码案例部署
交易所系统开发(成熟及案例)丨交易所开发详情源码
交易所系统开发(海外版)丨交易所系统开发(多语言)丨交易所开发源码版
交易所源码丨交易所APP开发正式版丨交易所系统开发技术逻辑分析
数字货币交易所开发详情丨数字货币交易所系统开发(详细及逻辑)丨数字货币交易所源码
原生交易所开发详情丨原生交易所系统开发(成熟技术)丨原生交易所现成源码部署
交易所系统丨交易所系统开发(逻辑及功能)丨交易所开发源码交付
秒合约开发原理丨秒合约系统开发(详细规则)丨秒合约源码案例部署
处理多个加密货币交易所的数据馈送,并将规范化和标准化的结果返回给客户注册的回调,如交易、账簿更新、股票更新等事件。尽可能利用网络套接字,但如果没有提供网络套接字,也可以通过REST端点轮询数据。
支持的交易所
阿森德交易所
Bequant
Bitfinex
bitFlyer
Bithumb
证券交易所
Bittrex
Blockchain.com
币安
Binance
Binance Delivery
Binance Futures
Binance US
Bit.com
证券交易所
币安
币安
Crypto.com
三角洲
Deribit
dYdX
FMFW.io
EXX
门槛(Gate.io
双子座
HitBTC
Huobi
Huobi DM
Huobi Swap (Coin-M和USDT-M)
独立储备
洛克王国(Kraken)
Kraken期货
KuCoin
OKCoin
OKX
Phemex
证券交易所(Poloniex
淘宝网
涨停板
基本用法
创建一个FeedHandler对象并添加订阅。对于交易所支持的各种数据通道,你可以为数据事件提供回调,或者使用提供的后端(如下所述)来为你处理数据。启动Feed处理程序,你就完成了!
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()
更多的代码样本请看例子,更多的库使用信息请看文档。
关于使用cryptofeed向后端存储数据的容器化应用程序的例子,请参见Cryptostore。
全国最佳买入/卖出(NBBO)
Cryptofeed还提供了一个合成的NBBO(全国最佳买入/卖出)feed,它聚集了来自用户指定feed的最佳买入和卖出。
from cryptofeed import FeedHandler
从cryptofeed.Exchange导入Coinbase, Gemini, Kraken
def nbbo_update(symbol, bid, bid_size, ask, ask_size, bid_feed, ask_feed):
print(f'Pair:符号:{symbol}买入价:{bid:.2f}。出价大小:{bid_size:.6f}。买入价。{bid_feed}要价:{要价:.2f}问价大小: {ask_size:.6f}问价反馈。{ask_feed}')
def main():
f = FeedHandler()
f.add_nbbo([Coinbase, Kraken, Gemini], ['BTC-USD'], nbbo_update)
f.运行()
支持的渠道
Cryptofeed支持以下交易所的渠道。
市场数据通道(公开)
L1_BOOK - 书的顶部
L2_BOOK - 价格汇总的大小。有些交易所提供整个深度,有些提供一个子集。
L3_BOOK - 价格聚集的订单。与L2书一样,有些交易所可能只提供部分深度。
TRADES - 注意这里报告的是买方的情况,即使是报告制造商的交易所也是如此。
票据
资金
OPEN_INTEREST - 持仓数据。
清算
指数
CANDLES - 烛台/K线数据。
认证的数据渠道
ORDER_INFO - 订单状态更新
TRANSACTIONS - 账户存款和取款的实时更新
BALANCES - 钱包资金的更新
FILLS - 用户的已执行交易
后台
Cryptofeed支持后端回调,将直接写到存储或其他接口。
支持的后端。
Redis (流和分类集)
北极
零度空间(ZeroMQ
UDP套接字
TCP套接字
Unix域套接字
InfluxDB v2
蒙特哥尔数据库
呼叫中心
兔斯基(RabbitMQ)
PostgreSQL
GCP Pub/Sub
追求数据库(QuestDB)
安装
注意:cryptofeed需要Python 3.8以上版本。
Cryptofeed可以从PyPi安装。(建议你在你选择的虚拟环境中安装)。
pip install cryptofeed
Cryptofeed有一些可选的依赖项,这取决于所使用的后端。你可以单独安装它们,也可以一次全部安装。要将Cryptofeed和它的所有可选依赖项捆绑在一起安装。
pip install cryptofeed[all]。
如果你想克隆版本库并从源代码安装,从克隆版本库的根部运行此命令。
python setup.py install
另外,你也可以在 "编辑 "模式(也叫开发模式)下安装。
python setup.py develop
参见INSTALL.md中关于软件包安装的更多讨论。
其他API
Cryptofeed支持一些REST接口来检索实时和历史数据,以及下单和账户管理。这些都是直接集成到交易所的类中。你可以通过调用任何交易所的info()方法来查看支持的方法。与交易所RET端点交互的方法有两种,同步方法(后缀为_sync)和异步方法,可以用asyncio来使用。更多信息请参见文档。
未来的工作
有很多计划中的功能,新的交流等计划!如果你想讨论正在进行的工作,请联系我们。如果你想讨论正在进行的开发,请加入slack或在GitHub的讨论中开一个线程。
贡献
我们欢迎问题和PR!
如果没有许多贡献者的帮助,Cryptofeed是不可能实现的!我应该感谢他们和所有其他贡献者!
捐赠/支持
我们非常感谢您的支持和捐赠,但不是必须的。你可以通过GitHub赞助商,或通过以下地址进行捐赠。
Bitcoin: bc1qm0kxz8hqacaglku5fjhfe9a5hjnuyfwk02lsyr
Ethereum: 0x690709FEe13eEce9E7852089BB2D53Ae5D073154