def main(): f = FeedHandler() # Note: EXX is extremely unreliable - sometimes a connection can take many many retries # f.add_feed(EXX(pairs=['BTC-USDT'], channels=[L2_BOOK, TRADES], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed( Binance(pairs=['BTC-USDT'], channels=[TRADES, TICKER, L2_BOOK], callbacks={ L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker) })) f.add_feed(COINBASE, pairs=['BTC-USD'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)}) f.add_feed( Coinbase(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed( Coinbase(config={ L2_BOOK: ['BTC-USD', 'ETH-USD'], TRADES: ['ETH-USD', 'BTC-USD'] }, callbacks={ TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book) })) f.run(start_loop=False) loop = asyncio.get_event_loop() loop.create_task(aio_task()) loop.run_forever()
def main(): f = FeedHandler() # Note: EXX is extremely unreliable - sometimes a connection can take many many retries # f.add_feed(EXX(pairs=['BTC-USDT'], channels=[L2_BOOK, TRADES], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed(Binance(pairs=['BTC-USDT'], channels=[TRADES, TICKER, L2_BOOK], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker)})) f.add_feed(COINBASE, pairs=['BTC-USD'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)}) f.add_feed(Coinbase(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Coinbase(pairs=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitfinex(pairs=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Poloniex(channels=[TICKER, 'BTC-USDT', 'BTC-USDC'], callbacks={L2_BOOK: BookCallback(book), TICKER: TickerCallback(ticker)})) f.add_feed(Poloniex(channels=['BTC-USDT', 'BTC-USDC'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Gemini(pairs=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed(HitBTC(channels=[TRADES], pairs=['BTC-USD'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(HitBTC(channels=[L2_BOOK], pairs=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitstamp(channels=[L2_BOOK, TRADES], pairs=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) bitmex_symbols = Bitmex.get_active_symbols() f.add_feed(Bitmex(channels=[TRADES], pairs=bitmex_symbols, callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bitmex(pairs=['XBTUSD'], channels=[FUNDING, TRADES], callbacks={FUNDING: FundingCallback(funding), TRADES: TradeCallback(trade)})) f.add_feed(Bitfinex(pairs=['BTC'], channels=[FUNDING], callbacks={FUNDING: FundingCallback(funding)})) f.add_feed(Bitmex(pairs=['XBTUSD'], channels=[L3_BOOK], callbacks={L3_BOOK: BookCallback(book)})) f.add_feed(Kraken(pairs=['BTC-USD'], channels=[TRADES, TICKER, L2_BOOK], callbacks={TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker), L2_BOOK: BookCallback(book)})) f.run()
def load(self, **kwargs): """Load. """ super().load(is_initialize_instmt=False, **kwargs) self._feed_handler = FeedHandler() self._instrument_mapping = self._create_instrument_mapping() try: exchange = getattr(cryptofeed_exchanges, self._get_exchange_name(self._name)) except AttributeError as e: raise ImportError('Cannot load exchange %s from websocket' % self._name) if self._is_orders: channels = [TRADES, L2_BOOK] callbacks = { TRADES: TradeCallback(self._update_trade_callback), L2_BOOK: BookCallback(self._update_order_book_callback) } else: channels = [TRADES] callbacks = { TRADES: TradeCallback(self._update_trade_callback), } if self._name.lower() == 'poloniex': self._feed_handler.add_feed( exchange(channels=list(self._instrument_mapping.keys()), callbacks=callbacks)) else: self._feed_handler.add_feed( exchange(symbols=list(self._instrument_mapping.keys()), channels=channels, callbacks=callbacks))
def main(): f = FeedHandler() f.add_feed( GDAX(pairs=['BTC-USD'], channels=[TICKER, TRADES], callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.add_feed( GDAX(pairs=['BTC-USD'], channels=[L3_BOOK_UPDATE, L3_BOOK], callbacks={ L3_BOOK: L3BookCallback(l3book), L3_BOOK_UPDATE: L3BookUpdateCallback(l3bookupdate) }, intervals={'_book_snapshot': 3})) f.add_feed( Bitfinex(pairs=['BTC-USD'], channels=[L3_BOOK], callbacks={L3_BOOK: L3BookCallback(l3book)})) f.add_feed( Poloniex(channels=[TICKER, 'USDT-BTC'], callbacks={ L3_BOOK_UPDATE: L3BookUpdateCallback(l3bookupdate), L3_BOOK: L3BookCallback(l3book), TICKER: TickerCallback(ticker) })) f.add_feed( Gemini(pairs=['BTC-USD'], channels=[L3_BOOK], callbacks={ L3_BOOK_UPDATE: L3BookUpdateCallback(l3bookupdate), L3_BOOK: L3BookCallback(l3book), TRADES: TradeCallback(trade) }, intervals={'_book_snapshot': 3})) f.add_feed( HitBTC(channels=[TRADES], pairs=['BTC-USD'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed( Bitstamp(channels=[L3_BOOK, TRADES], pairs=['BTC-USD'], callbacks={ L3_BOOK: L3BookCallback(l3book), TRADES: TradeCallback(trade) })) bitmex_symbols = Bitmex.get_active_symbols() f.add_feed( Bitmex(channels=[TRADES], pairs=bitmex_symbols, callbacks={TRADES: TradeCallback(trade)})) f.add_feed( Bitmex(pairs=['XBTUSD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.run()
def main(): fh = FeedHandler() callbacks = {TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book), TICKER: TickerCallback(ticker), TICKER_FUTURES: TickerCallback(ticker), TRADES_FUTURES: TradeCallback(trade), L2_BOOK_FUTURES: BookCallback(book)} pairs = OKEx.get_active_symbols() fh.add_feed(OKEx(pairs=pairs, channels=[TRADES_FUTURES, L2_BOOK_FUTURES, TICKER_FUTURES], callbacks=callbacks)) fh.run()
def main(): f = FeedHandler() f.add_feed( Coinbase( config={TRADES: ['BTC-USD']}, callbacks={TRADES: [TradeCallback(trade), TradeCallback(trade2)]})) f.run()
def load(self, **kwargs): """Load. """ super().load(is_initialize_instmt=False, **kwargs) self._feed_handler = FeedHandler() self._instrument_mapping = self._create_instrument_mapping() try: exchange = getattr(cryptofeed_exchanges, self._get_exchange_name(self._name)) except AttributeError as e: raise ImportError('Cannot load exchange %s from websocket' % self._name) contract_exchanges_use_common_channel = [ 'HuobiSwap', 'HuibiDM', 'KrakenFutures', 'BinanceFutures', 'Bitmex' ] if self._is_orders: if self._type == 'spot' or self._name in contract_exchanges_use_common_channel: channels = [TRADES, L2_BOOK] elif self._type == 'futures': channels = [TRADES_FUTURES, L2_BOOK_FUTURES] elif self._type == 'swap': channels = [TRADES_SWAP, L2_BOOK_SWAP] callbacks = { channels[0]: TradeCallback(self._update_trade_callback), L2_BOOK: BookCallback(self._update_order_book_callback) } else: if self._type == 'spot' or self._name in contract_exchanges_use_common_channel: channels = [TRADES] elif self._type == 'futures': channels = [TRADES_FUTURES] elif self._type == 'swap': channels = [TRADES_SWAP] callbacks = { channels[0]: TradeCallback(self._update_trade_callback), } if self._name.lower() == 'poloniex': self._feed_handler.add_feed( exchange(channels=list(self._instrument_mapping.keys()), callbacks=callbacks)) else: self._feed_handler.add_feed( exchange(pairs=list(self._instrument_mapping.keys()), channels=channels, callbacks=callbacks))
def main(): f = FeedHandler() f.add_feed(GDAX(pairs=['BTC-USD'], channels=[TICKER, TRADES], callbacks={TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade)})) f.add_feed(GDAX(pairs=['BTC-USD'], channels=[L3_BOOK], callbacks={L3_BOOK: BookCallback(book)})) f.add_feed(Bitfinex(pairs=['BTC-USD'], channels=[L3_BOOK], callbacks={L3_BOOK: BookCallback(book)})) f.add_feed(Poloniex(channels=[TICKER, 'USDT-BTC'], callbacks={L3_BOOK: BookCallback(book), TICKER: TickerCallback(ticker)})) f.add_feed(Gemini(pairs=['BTC-USD'], callbacks={L3_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed(HitBTC(channels=[TRADES], pairs=['BTC-USD'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bitstamp(channels=[L3_BOOK, TRADES], pairs=['BTC-USD'], callbacks={L3_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) bitmex_symbols = Bitmex.get_active_symbols() f.add_feed(Bitmex(channels=[TRADES], pairs=bitmex_symbols, callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bitmex(pairs=['XBTUSD'], channels=[FUNDING, TRADES], callbacks={FUNDING: FundingCallback(funding), TRADES: TradeCallback(trade)})) f.add_feed(Bitfinex(pairs=['fBTC'], channels=[FUNDING], callbacks={FUNDING: FundingCallback(funding)})) f.run()
def main(): fh = FeedHandler() pairs_list = [ 'BTC-USD', 'ETH-USD', 'LINK-USD', 'FIL-USD', 'UNI-USD', 'DOT-USD', 'EOS-USD', 'ADA-USD', 'LTC-USD', 'BAND-USD', 'WAVES-USD', 'JST-USD', 'ATOM-USD', 'ZEC-USD', 'BCH-USD', 'BSV-USD', 'XRP-USD', 'ETC-USD', 'TRX-USD', 'QTUM-USD', 'IOTA-USD', 'NEO-USD', 'ONT-USD', 'XLM-USD', 'XMR-USD', 'XTZ-USD', 'DASH-USD', 'ALGO-USD', 'VET-USD', 'ZRX-USD', 'DOGE-USD', 'THETA-USD', 'REN-USD', 'IOST-USD', 'BTM-USD', 'COMP-USD', 'SNX-USD', 'OMG-USD', 'ANT-USD', 'CRV-USD', 'KSM-USD', 'RSR-USD', 'STORJ-USD', 'YFI-USD', 'SUSHI-USD', 'YFII-USD', 'TRB-USD', 'SUN-USD', 'AAVE-USD', 'NEAR-USD', 'GRT-USD' ] # 'YFV-USD', # 'LEND-USD', # fh.add_feed(OKEx(pairs=['EOS-USD-SWAP'], channels=[TRADES_SWAP, L2_BOOK_SWAP, OPEN_INTEREST, FUNDING], callbacks={FUNDING: funding, OPEN_INTEREST: open_interest, TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book), TICKER_SWAP:TickerCallback(ticker)})) #fh.add_feed(OKEx(pairs=['EOS-USD-SWAP'], channels=[ TRADES_SWAP,L2_BOOK_SWAP], callbacks={FUNDING: funding, OPEN_INTEREST: open_interest, TRADES_SWAP: TradeCallback(trade), L2_BOOK: BookCallback(book)})) # fh.add_feed(HuobiDM(pairs=['BTC'], channels=[ TRADES], callbacks={FUNDING: funding, OPEN_INTEREST: open_interest, TRADES_SWAP: TradeCallback(trade), L2_BOOK: BookCallback(book)})) # fh.add_feed(HuobiDM(pairs=['BTC_CQ'], channels=[ TRADES,L2_BOOK], callbacks={FUNDING: funding, OPEN_INTEREST: open_interest, TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) # fh.add_feed(HuobiDM(max_depth=1, pairs=['BTC_CQ'], channels=[ L2_BOOK], callbacks={ L2_BOOK: BookCallback(book)})) # fh.add_feed(HuobiSwap(max_depth=1, pairs=pairs_list, channels=[ L2_BOOK], callbacks={ L2_BOOK: BookCallback(book)})) fh.add_feed( HuobiSwap(max_depth=1, pairs=pairs_list, channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) # fh.add_feed(HuobiSwap(pairs=['BTC-USD'], channels=[ L2_BOOK], callbacks={ L2_BOOK: BookCallback(book)})) fh.run()
def main(): channels = [TRADES] exch_sym_map = {} exch_sym_map['Binance'] = ['BTC-USDT', 'BTC-USDC', 'BTC-TUSD'] exch_sym_map['Bitfinex'] = ['BTC-USD'] exch_sym_map['BitMEX'] = ['XBTUSD'] exch_sym_map['Bitstamp'] = ['BTC-USD'] exch_sym_map['Bybit'] = ['BTC-USD'] exch_sym_map['Coinbase'] = ['BTC-USD'] exch_sym_map['Deribit'] = ['BTC-PERPETUAL'] exch_sym_map['EXX'] = ['BTC-USDT'] exch_sym_map['Gemini'] = ['BTC-USD'] exch_sym_map['HitBTC'] = ['BTC-USD'] exch_sym_map['Huobi'] = ['BTC-USDT'] exch_sym_map['Kraken'] = ['BTC-USD'] exch_sym_map['OKCoin'] = ['BTC-USD'] exch_sym_map['OKEx'] = ['BTC-USDT'] exch_sym_map['Poloniex'] = ['BTC-USDT'] global exchanges exchanges = {e.upper() for e in exch_sym_map.keys()} print(f'Starting: {time.time()}') f = FeedHandler() for i, e in enumerate(exch_sym_map): print(f'{[i]}: Subscribing to {e}') if e == 'Gemini': f.add_feed(e.upper(), pairs=exch_sym_map[e], callbacks={TRADES: TradeCallback(trade)}) else: f.add_feed(e.upper(), pairs=exch_sym_map[e], channels=channels, callbacks={TRADES: TradeCallback(trade)}) f.run()
def main(): # if you use the YAML file, pass the filename as the following: # # f = FeedHandler(config='path/config_example.yml') # # in this demo we use the dict: f = FeedHandler(config=config) bitmex_symbols = Bitmex.info()['symbols'] f.add_feed( Bitmex(config=config, symbols=bitmex_symbols, channels=[OPEN_INTEREST], callbacks={OPEN_INTEREST: print_all})) f.add_feed( Bitmex(config=config, symbols=bitmex_symbols, channels=[TRADES], callbacks={TRADES: TradeCallback(print_all)})) # When using the following no need to pass config when using 'BITMEX' f.add_feed('BITMEX', symbols=bitmex_symbols, channels=[FUNDING], callbacks={FUNDING: FundingCallback(print_all)}) f.add_feed('BITMEX', symbols=['XBTUSD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(print_all)}) f.run()
def main(): f = FeedHandler() f.add_feed( Bitmex(pairs=['XBTUSD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed( Bitstamp(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed( Bitfinex(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) #f.add_feed(GDAX(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES:TradeCallback(trade)})) f.run()
def main(): f = FeedHandler() # Deribit can't handle 400+ simultaneous requests, so if all # instruments are needed they should be fed in the different calls config = { TRADES: ["BTC-PERPETUAL"], TICKER: ['ETH-PERPETUAL'], FUNDING: ['ETH-PERPETUAL'], OPEN_INTEREST: ['ETH-PERPETUAL'] } f.add_feed( Deribit(config=config, callbacks={ OPEN_INTEREST: oi, FUNDING: funding, TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.add_feed( Deribit(pairs=['BTC-PERPETUAL'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed( Deribit(pairs=['BTC-26JUN20', 'BTC-25SEP20-11000-P'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)})) f.run()
def main(): f = FeedHandler() # Deribit can't handle 400+ simultaneous requests, so if all # instruments are needed they should be fed in the different calls sub = { TRADES: ["BTC-PERPETUAL"], TICKER: ['ETH-PERPETUAL'], FUNDING: ['ETH-PERPETUAL'], OPEN_INTEREST: ['ETH-PERPETUAL'] } f.add_feed( Deribit(subscription=sub, callbacks={ OPEN_INTEREST: oi, FUNDING: funding, TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.add_feed( Deribit(symbols=['BTC-PERPETUAL'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.run()
def main(): set_pair_separator('/') f = FeedHandler() f.add_feed(COINBASE, pairs=['BTC/USD'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)}) f.add_feed(Gemini(pairs=['BTC/USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Coinbase(config={L2_BOOK: ['ETH/USD'], L3_BOOK: ['BTC/USD']}, callbacks={L3_BOOK: BookCallback(book), L2_BOOK: BookCallback(book)})) f.run()
def main(): upbit_active_pairs = Upbit.get_active_symbols() f = FeedHandler() f.add_feed(Upbit(pairs=upbit_active_pairs, channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Upbit(pairs=upbit_active_pairs, channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.run()
def main(): f = FeedHandler() f.add_feed( Bybit(pairs=['BTC-USD', 'ETH-USD', 'XRP-USD', 'EOS-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) #f.add_feed(Bybit(pairs=['BTC-USD', 'ETH-USD', 'XRP-USD', 'EOS-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.run()
def main(): fh = FeedHandler() callbacks = {TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)} fh.add_feed( HuobiSwap(pairs=['BTC-USD'], channels=[TRADES, L2_BOOK], callbacks=callbacks)) fh.run()
def streaming_ticker(): f = FeedHandler() f.add_feed( Binance(pairs=['BTC-USDT'], channels=[TRADES, TICKER], callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.run()
def main(): f = FeedHandler() f.add_feed( FTXUS(pairs=['BTC-USD', 'BCH-USD', 'USDT-USD'], channels=[TRADES, L2_BOOK, TICKER], callbacks={ L2_BOOK: BookCallback(book), TICKER: ticker, TRADES: TradeCallback(trade) })) f.run()
def main(): fh = FeedHandler() fh.add_feed( OKEx(pairs=['EOS-USD-SWAP'], channels=[TRADES_SWAP, L2_BOOK_SWAP], callbacks={ TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book) })) fh.run()
def main(): f = FeedHandler() # Note: EXX is extremely unreliable - sometimes a connection can take many many retries # f.add_feed(EXX(pairs=['BTC-USDT'], channels=[L2_BOOK, TRADES], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed(Binance(pairs=['BTC-USDT'], channels=[TRADES, TICKER, L2_BOOK], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker)})) f.add_feed(COINBASE, pairs=['BTC-USD'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)}) f.add_feed(Coinbase(pairs=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Coinbase(pairs=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitfinex(pairs=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Poloniex(pairs=['BTC-USDT', 'BTC-USDC'], channels=[TICKER, TRADES], callbacks={TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade)})) f.add_feed(Poloniex(config={TRADES: ['DOGE-BTC', 'ETH-BTC'], TICKER: ['ETH-BTC'], L2_BOOK: ['LTC-BTC']}, callbacks={TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker), L2_BOOK: BookCallback(book)})) f.add_feed(Gemini(config={L2_BOOK: ['BTC-USD', 'ETH-USD'], TRADES: ['ETH-USD', 'BTC-USD']}, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(HitBTC(channels=[TRADES], pairs=['BTC-USD'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(HitBTC(channels=[L2_BOOK], pairs=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitstamp(channels=[L2_BOOK, TRADES], pairs=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) bitmex_symbols = Bitmex.get_active_symbols() f.add_feed(Bitmex(channels=[INSTRUMENT], pairs=['XBTUSD'], callbacks={INSTRUMENT: InstrumentCallback(instrument)})) f.add_feed(Bitmex(channels=[TRADES], pairs=bitmex_symbols, callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bitmex(pairs=['XBTUSD'], channels=[FUNDING, TRADES], callbacks={FUNDING: FundingCallback(funding), TRADES: TradeCallback(trade)})) f.add_feed(Bitfinex(pairs=['BTC'], channels=[FUNDING], callbacks={FUNDING: FundingCallback(funding)})) f.add_feed(Bitmex(pairs=['XBTUSD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Kraken(config={TRADES: ['BTC-USD'], TICKER: ['ETH-USD']}, callbacks={TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker)})) config={TRADES: ['BTC-USD', 'ETH-USD', 'BTC-USDT', 'ETH-USDT'], L2_BOOK: ['BTC-USD', 'BTC-USDT']} f.add_feed(HuobiUS(config=config, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) config={TRADES: ['BTC-USDT', 'ETH-USDT'], L2_BOOK: ['BTC-USDT']} f.add_feed(Huobi(config=config, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(OKCoin(pairs=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(OKEx(pairs=['BTC-USDT'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Coinbene(channels=[L2_BOOK, TRADES, TICKER], pairs=['BTC-USDT'], callbacks={L2_BOOK: BookCallback(book), TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade)})) f.run()
def main(): fh = FeedHandler() fh.add_feed( OKEx(pairs=['EOS-USD-SWAP'], channels=[TRADES_SWAP, L2_BOOK_SWAP, OPEN_INTEREST], callbacks={ OPEN_INTEREST: open_interest, TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book) })) fh.run()
def main(): ftx = Rest(config='config.yaml')['ftx'] print(ftx.ticker('ETH-USD')) print(ftx.orders(symbol='USDT-USD')) f = FeedHandler(config="config.yaml") f.add_feed( FTX(config="config.yaml", symbols=['BTC-USD', 'BCH-USD', 'USDT-USD'], channels=[TRADES, USER_FILLS], callbacks={ TRADES: TradeCallback(trade), USER_FILLS: fill })) f.run()
def main(): f = FeedHandler() f.add_feed( Coinbase(config={ TRADES: ['BTC-USD'], L3_BOOK: ['ETH-USD'] }, callbacks={ TRADES: TradeCallback(trade, include_order_type=True), L3_BOOK: BookCallback(book) })) f.run()
def main(): config = {'log': {'filename': 'demo.log', 'level': 'INFO'}} # the config will be automatically passed into any exchanges set up by string. Instantiated exchange objects would need to pass the config in manually. f = FeedHandler(config=config) # Note: EXX is extremely unreliable - sometimes a connection can take many many retries # from cryptofeed.exchanges import EXX # f.add_feed(EXX(symbols=['BTC-USDT'], channels=[L2_BOOK, TRADES], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) f.add_feed(KuCoin(symbols=['BTC-USDT', 'ETH-USDT'], channels=[L2_BOOK, ], callbacks={L2_BOOK: book, BOOK_DELTA: delta, CANDLES: candle_callback, TICKER: ticker, TRADES: trade})) f.add_feed(Gateio(symbols=['BTC-USDT', 'ETH-USDT'], channels=[L2_BOOK], callbacks={CANDLES: candle_callback, L2_BOOK: book, TRADES: trade, TICKER: ticker, BOOK_DELTA: delta})) pairs = Binance.symbols() f.add_feed(Binance(symbols=pairs, channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) pairs = BinanceUS.symbols() f.add_feed(BinanceUS(symbols=pairs, channels=[CANDLES], callbacks={CANDLES: candle_callback})) f.add_feed(COINBASE, symbols=['BTC-USD'], channels=[TICKER], callbacks={TICKER: TickerCallback(ticker)}) f.add_feed(Coinbase(symbols=['BTC-USD'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Coinbase(subscription={L2_BOOK: ['BTC-USD', 'ETH-USD'], TRADES: ['ETH-USD']}, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(Coinbase(subscription={L3_BOOK: ['LTC-USD']}, callbacks={L3_BOOK: BookCallback(book)})) f.add_feed(Bitfinex(symbols=['BTC-USDT'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitfinex(symbols=['BTC'], channels=[FUNDING], callbacks={FUNDING: FundingCallback(funding)})) f.add_feed(Poloniex(symbols=['BTC-USDT'], channels=[TICKER, TRADES], callbacks={TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade)})) f.add_feed(Poloniex(subscription={TRADES: ['DOGE-BTC'], L2_BOOK: ['LTC-BTC']}, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(GEMINI, subscription={L2_BOOK: ['BTC-USD', 'ETH-USD'], TRADES: ['ETH-USD', 'BTC-USD']}, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)}) f.add_feed(HitBTC(channels=[TRADES], symbols=['BTC-USD'], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(HitBTC(channels=[L2_BOOK], symbols=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Bitstamp(channels=[L2_BOOK, TRADES], symbols=['BTC-USD'], callbacks={L2_BOOK: BookCallback(book), TRADES: TradeCallback(trade)})) bitmex_symbols = Bitmex.symbols() f.add_feed(Bitmex(channels=[OPEN_INTEREST], symbols=['BTC-USD'], callbacks={OPEN_INTEREST: oi})) f.add_feed(Bitmex(channels=[TRADES], symbols=bitmex_symbols, callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bitmex(symbols=['BTC-USD'], channels=[FUNDING, TRADES], callbacks={FUNDING: FundingCallback(funding), TRADES: TradeCallback(trade)})) f.add_feed(Bitmex(symbols=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(Kraken(checksum_validation=True, subscription={L2_BOOK: ['BTC-USD'], TRADES: ['BTC-USD'], CANDLES: ['BTC-USD'], TICKER: ['ETH-USD']}, callbacks={L2_BOOK: book, CANDLES: candle_callback, TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker)})) sub = {TRADES: ['BTC-USDT', 'ETH-USDT'], L2_BOOK: ['BTC-USDT']} f.add_feed(Huobi(subscription=sub, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(Huobi(symbols=['BTC-USDT'], channels=[CANDLES], callbacks={CANDLES: candle_callback})) sub = {L2_BOOK: ['BTC_CQ', 'BTC_NQ']} f.add_feed(HuobiDM(subscription=sub, callbacks={TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) pairs = ['BTC-USD', 'ETH-USD', 'EOS-USD', 'BCH-USD', 'BSV-USD', 'LTC-USD'] f.add_feed(HuobiSwap(symbols=pairs, channels=[TRADES, L2_BOOK, FUNDING], callbacks={FUNDING: funding, TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book)})) f.add_feed(OKCoin(symbols=['BTC-USD'], channels=[L2_BOOK], callbacks={L2_BOOK: BookCallback(book)})) f.add_feed(OKEx(symbols=['BTC-USDT'], channels=[TRADES], callbacks={TRADES: TradeCallback(trade)})) f.add_feed(Bittrex(subscription={L2_BOOK: ['BTC-USDT', 'ETH-USDT'], CANDLES: ['BTC-USDT', 'ETH-USDT'], TRADES: ['BTC-USDT', 'ETH-USDT'], TICKER: ['BTC-USDT', 'ETH-USDT']}, callbacks={CANDLES: candle_callback, L2_BOOK: BookCallback(book), TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade)})) f.add_feed(FTX(symbols=['ADA-PERP', 'ALGO-PERP', 'ALT-PERP', 'ATOM-PERP', 'BCH-PERP', 'BNB-PERP', 'BSV-PERP', 'BTC-PERP', 'BTMX-PERP', 'DOGE-PERP', 'DRGN-PERP', 'EOS-PERP', 'ETC-PERP'], channels=[TICKER], callbacks={TICKER: ticker, TRADES: TradeCallback(trade)})) f.add_feed(Bybit(symbols=['BTC-USDT', 'BTC-USD'], channels=[FUTURES_INDEX], callbacks={OPEN_INTEREST: OpenInterestCallback(oi), FUTURES_INDEX: FuturesIndexCallback(futures_index)})) f.add_feed(Bybit(symbols=['BTC-USDT', 'BTC-USD'], channels=[L2_BOOK, TRADES], callbacks={TRADES: trade, L2_BOOK: book})) f.add_feed(BLOCKCHAIN, symbols=['BTC-USD', 'ETH-USD'], channels=[L2_BOOK, TRADES], callbacks={L2_BOOK: BookCallback(book), TRADES: trade}) f.add_feed(Bitmax(symbols=['XRP-USDT', 'BTC-USDT'], channels=[L2_BOOK], callbacks={TRADES: trade, L2_BOOK: book})) f.add_feed(Bitflyer(symbols=['BTC-JPY'], channels=[L2_BOOK, TRADES, TICKER], callbacks={L2_BOOK: book, BOOK_DELTA: delta, TICKER: ticker, TRADES: trade})) f.add_feed(BinanceFutures(symbols=['BTC-USDT'], channels=[TICKER], callbacks={TICKER: ticker})) f.add_feed(BinanceFutures(subscription={TRADES: ['BTC-USDT'], CANDLES: ['BTC-USDT', 'BTC-USDT-PINDEX']}, callbacks={CANDLES: candle_callback, TRADES: trade})) f.add_feed(dYdX(symbols=dYdX.symbols(), channels=[L2_BOOK], callbacks={TRADES: trade, L2_BOOK: book, BOOK_DELTA: delta})) f.run()
def main(): f = FeedHandler() f.add_feed( Coinbase(pairs=['BTC-USD', 'ETH-USD'], channels=[TRADES, TICKER], callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.add_feed( Kraken(pairs=['BTC-USD', 'ETH-USD'], channels=[TRADES, TICKER], callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) f.add_feed( Bitfinex(pairs=['BTC-USD', 'ETH-USD'], channels=[TRADES, TICKER], callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade) })) # f.add_feed(Bitmex(pairs=['XBTUSD','ETHUSD'],channels=[TRADES],callbacks={TRADES:TradeCallback(trade)})) # f.add_feed(Bitstamp(pairs=['BTC-USD','ETH-USD'],channels=[TRADES],callbacks={TRADES:TradeCallback(trade)})) # f.add_feed(Gemini(pairs=['ETH-USD'], callbacks={TRADES:TradeCallback(trade)})) # f.add_feed(Gemini(pairs=['BTC-USD'], callbacks={TRADES:TradeCallback(trade)})) f.add_feed( HitBTC(channels=[TRADES, TICKER], pairs=['BTC-USD', 'ETH-USD'], callbacks={ TRADES: TradeCallback(trade), TICKER: TickerCallback(ticker) })) # f.add_feed(Huobi(pairs=['BTC-USD','ETH-USD'],channels=[TRADES],callbacks={TRADES:TradeCallback(trade)})) f.run()
def main(): fh = FeedHandler() config = { TRADES: ['PI_XBTUSD'], TICKER: ['PI_XBTUSD', 'PI_ETHUSD'], L2_BOOK: ['PI_XBTUSD'] } fh.add_feed( KrakenFutures(config=config, callbacks={ TICKER: TickerCallback(ticker), TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book) })) fh.run()
def main(): fh = FeedHandler() # Add futures contracts callbacks = {TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book), TRADES: trade, TICKER: TickerCallback(ticker)} pairs = OKEx.get_active_symbols()[:5] fh.add_feed(OKEx(pairs=pairs, channels=[TRADES, L2_BOOK, TICKER], callbacks=callbacks)) # Add swaps. Futures and swaps could be added together in one feed, but its clearer to # add them as separate feeds. # EOS-USD-SWAP is from the swap exchange, BTC-USDT is from spot exchage. fh.add_feed(OKEx(pairs=['EOS-USD-SWAP', 'BTC-USDT'], channels=[L2_BOOK, TICKER, TRADES], callbacks={L2_BOOK: book, TRADES: trade, TICKER: ticker})) # Open Interest and Funding Rates fh.add_feed(OKEx(pairs=['EOS-USD-SWAP'], channels=[FUNDING], callbacks={FUNDING: funding})) fh.add_feed(OKEx(pairs=pairs, channels=[OPEN_INTEREST], callbacks={OPEN_INTEREST: open_int})) fh.run()
def main(): fh = FeedHandler() # Add futures contracts callbacks = { TRADES: TradeCallback(trade), L2_BOOK: BookCallback(book), TICKER: TickerCallback(ticker) } symbols = OKEx.get_active_symbols()[:5] fh.add_feed( OKEx(checksum_validation=True, symbols=symbols, channels=[TRADES, TICKER, L2_BOOK], callbacks=callbacks)) # Add swaps. Futures and swaps could be added together in one feed, but its clearer to # add them as separate feeds. # EOS-USD-SWAP is from the swap exchange, BTC-USDT is from spot exchage, BTC-USD-210129-10000-C is from options fh.add_feed( OKEx(symbols=['EOS-USD-SWAP', 'BTC-USDT', "BTC-USD-210129-10000-C"], channels=[L2_BOOK, TICKER, TRADES], callbacks={ L2_BOOK: book, TRADES: trade, TICKER: ticker })) # Open Interest, Liquidations, and Funding Rates # funding is low volume, so set timeout to -1 fh.add_feed(OKEx(symbols=['EOS-USD-SWAP'], channels=[FUNDING, LIQUIDATIONS], callbacks={ FUNDING: funding, LIQUIDATIONS: liquidation }), timeout=-1) fh.add_feed( OKEx(symbols=symbols, channels=[OPEN_INTEREST], callbacks={OPEN_INTEREST: open_int})) fh.run()