def get_tickers(self): logger.info('Ready to fetch tickers tasks....\n' + date_utils.current(Y_M_D_H_M_S)) exchanges = [ ccxt.bitfinex2({'userAgent': USER_AGENT}), ccxt.bittrex({'userAgent': USER_AGENT}), ccxt.poloniex({'userAgent': USER_AGENT}), ccxt.hitbtc2({'userAgent': USER_AGENT}), ccxt.cryptopia({'userAgent': USER_AGENT}), ccxt.livecoin({'userAgent': USER_AGENT}), ccxt.kucoin({'userAgent': USER_AGENT}), ccxt.okex({'userAgent': USER_AGENT}), ccxt.coinexchange({'userAgent': USER_AGENT}), ccxt.binance({'userAgent': USER_AGENT}), ccxt.bithumb({'userAgent': USER_AGENT}), ccxt.kraken({'userAgent': USER_AGENT}) ] tasks = [] for i in range(len(exchanges)): task = self.fetch_tickers_task(exchanges[i]) tasks.append(asyncio.ensure_future(task)) loop = asyncio.get_event_loop() loop.run_until_complete(asyncio.wait(tasks)) loop.close() self.spider_repository.close()
def background_job(self): self.ob_constant = OD_TICK_TIMER self.bl_constant = BALANCE_TICK_TIMER self.trade_constant = TRADE_TICK_TIMER self.stop_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=TICK_TIMER) self.orderbook_tick_time = datetime.datetime.now( ) + datetime.timedelta(seconds=self.ob_constant) self.balance_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=self.bl_constant) self.trade_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=self.trade_constant) self.info_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=INFO_TIMER) self.ccxt_in_queue = self.config['in_queue'] self.ccxt_out_queue = self.config['out_queue'] auth = {} if 'auth' in self.config.keys(): auth = self.config['auth'] self.is_auth = True self.name = '[ccxt %s %s*]' % (self.exhange, auth['apiKey'][:4]) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) if self.exhange == 'hitbtc': loop.create_task(self.run_loop(ccxt.hitbtc(auth))) elif self.exhange == 'coinmarketcap': loop.create_task(self.run_loop(ccxt.coinmarketcap())) elif self.exhange == 'binance': loop.create_task(self.run_loop(ccxt.binance(auth))) elif self.exhange == 'bitmex': loop.create_task(self.run_loop(ccxt.bitmex(auth))) elif self.exhange == 'huobipro': loop.create_task(self.run_loop(ccxt.huobipro())) elif self.exhange == 'liqui': loop.create_task(self.run_loop(ccxt.liqui(auth))) elif self.exhange == 'bitfinex2': loop.create_task(self.run_loop(ccxt.bitfinex2(auth))) elif self.exhange == 'bitfinex': loop.create_task(self.run_loop(ccxt.bitfinex(auth))) elif self.exhange == 'okex': loop.create_task(self.run_loop(ccxt.okex(auth))) elif self.exhange == 'kucoin': loop.create_task(self.run_loop(ccxt.kucoin(auth))) elif self.exhange == 'bittrex': loop.create_task(self.run_loop(ccxt.bittrex(auth))) elif self.exhange == 'qryptos': loop.create_task(self.run_loop(ccxt.qryptos(auth))) elif self.exhange == 'kraken': loop.create_task(self.run_loop(ccxt.kraken(auth))) loop.run_forever()
'rateLimit': 1000, }) bitbay = ccxt.bitbay({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitcoincoid = ccxt.bitcoincoid({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitfinex = ccxt.bitfinex({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitfinex2 = ccxt.bitfinex2({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitflyer = ccxt.bitflyer({ 'enableRateLimit': True, 'rateLimit': 1000, }) bithumb = ccxt.bithumb({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitlish = ccxt.bitlish({ 'enableRateLimit': True, 'rateLimit': 1000, }) bitmarket = ccxt.bitmarket({ 'enableRateLimit': True,
import ccxt. async as ccxt from bot_crawler import BotCrawler from helper import NoInternetException if __name__ == '__main__': # initialize exchangers instances gateways = [ ccxt.cex(), ccxt.poloniex(), ccxt.binance(), ccxt.kraken(), ccxt.bitfinex2(), ccxt.okex() ] # define pairs for analysis pairs = ['XRP/BTC', 'XLM/BTC'] # run the bot crawler = BotCrawler(gateways, pairs, 10.3) try: crawler.run(5) except KeyboardInterrupt: print('stop.') except NoInternetException: print('Connect to the Internet to run the program!')
def __init__(self, exchange_id, config): threading.Thread.__init__(self) self.ob_constant = OD_TICK_TIMER self.bl_constant = BALANCE_TICK_TIMER self.trade_constant = TRADE_TICK_TIMER self.stop_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=TICK_TIMER) self.orderbook_tick_time = datetime.datetime.now( ) + datetime.timedelta(seconds=self.ob_constant) self.balance_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=self.bl_constant) self.trade_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=self.trade_constant) self.info_tick_time = datetime.datetime.now() + datetime.timedelta( seconds=INFO_TIMER) self.config = config self.orderbook_count = 0 self.pair_info = dict() self.exhange = exchange_id self.is_auth = False self.name = '[ccxt %s]' % self.exhange self.pair_list = set() if self.exhange == 'liqui': self.ob_constant = 30 self.bl_constant = 60 self.ccxt_in_queue = self.config['in_queue'] self.ccxt_out_queue = self.config['out_queue'] #self.pair_list = self.config['pairs'] # for i in self.config['pairs']: # i['balance_tick'] = True # self.pair_list.add( i['name'] ) auth = {} if 'auth' in self.config.keys(): auth = self.config['auth'] self.is_auth = True self.name = '[ccxt %s %s*]' % (self.exhange, auth['apiKey'][:4]) loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) if self.exhange == 'hitbtc': loop.create_task(self.run_loop(ccxt.hitbtc(auth))) elif self.exhange == 'coinmarketcap': loop.create_task(self.run_loop(ccxt.coinmarketcap())) elif self.exhange == 'binance': loop.create_task(self.run_loop(ccxt.binance(auth))) elif self.exhange == 'bitmex': loop.create_task(self.run_loop(ccxt.bitmex(auth))) elif self.exhange == 'huobipro': loop.create_task(self.run_loop(ccxt.huobipro())) elif self.exhange == 'liqui': loop.create_task(self.run_loop(ccxt.liqui(auth))) elif self.exhange == 'bitfinex2': loop.create_task(self.run_loop(ccxt.bitfinex2(auth))) elif self.exhange == 'bitfinex': loop.create_task(self.run_loop(ccxt.bitfinex(auth))) elif self.exhange == 'okex': loop.create_task(self.run_loop(ccxt.okex(auth))) elif self.exhange == 'kucoin': loop.create_task(self.run_loop(ccxt.kucoin(auth))) elif self.exhange == 'bittrex': loop.create_task(self.run_loop(ccxt.bittrex(auth))) elif self.exhange == 'qryptos': loop.create_task(self.run_loop(ccxt.qryptos(auth))) elif self.exhange == 'kraken': loop.create_task(self.run_loop(ccxt.kraken(auth))) loop.run_forever()