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()
Example #2
0
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))
Example #4
0
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()
Example #6
0
def main():
    f = FeedHandler()

    f.add_feed(
        Coinbase(
            config={TRADES: ['BTC-USD']},
            callbacks={TRADES: [TradeCallback(trade),
                                TradeCallback(trade2)]}))

    f.run()
Example #7
0
    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))
Example #8
0
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()
Example #9
0
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()
Example #10
0
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()
Example #12
0
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()
Example #13
0
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()
Example #14
0
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()
Example #15
0
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()
Example #16
0
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()
Example #17
0
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()
Example #18
0
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()
Example #19
0
def streaming_ticker():
    f = FeedHandler()
    f.add_feed(
        Binance(pairs=['BTC-USDT'],
                channels=[TRADES, TICKER],
                callbacks={
                    TICKER: TickerCallback(ticker),
                    TRADES: TradeCallback(trade)
                }))

    f.run()
Example #20
0
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()
Example #21
0
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()
Example #22
0
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()
Example #23
0
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()
Example #24
0
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()
Example #25
0
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()
Example #26
0
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()
Example #27
0
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()
Example #29
0
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()
Example #30
0
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()