def get_instrument(self, instmt_id): """ Return the instrument object by instrument id :param instmt_id: Instrument ID :return Instrument object """ exchange_name = self.config.get(instmt_id, 'exchange') instmt_name = self.config.get(instmt_id, 'instmt_name') instmt_code = self.config.get(instmt_id, 'instmt_code') enabled = int(self.config.get(instmt_id, 'enabled')) params = dict(self.config.items(instmt_id)) del params['exchange'] del params['instmt_name'] del params['instmt_code'] del params['enabled'] if enabled == 1: return Instrument(exchange_name, instmt_name, instmt_code, **params) else: return None
:return List of threads """ instmt.set_l2_depth(L2Depth(5)) instmt.set_prev_l2_depth(L2Depth(5)) instmt.set_instmt_snapshot_table_name( self.get_instmt_snapshot_table_name(instmt.get_exchange_name(), instmt.get_instmt_name())) self.init_instmt_snapshot_table(instmt) instmt.set_recovered(False) t1 = threading.Thread( target=partial(self.get_order_book_worker, instmt)) t2 = threading.Thread(target=partial(self.get_trades_worker, instmt)) t1.start() t2.start() return [t1, t2] if __name__ == '__main__': Logger.init_log() exchange_name = 'Poloniex' instmt_name = 'BTCETH' instmt_code = 'BTC_ETH' instmt = Instrument(exchange_name, instmt_name, instmt_code) db_client = SqlClientTemplate() exch = ExchGwPoloniex([db_client]) instmt.set_l2_depth(L2Depth(5)) instmt.set_prev_l2_depth(L2Depth(5)) instmt.set_recovered(False) # exch.get_order_book_worker(instmt) exch.get_trades_worker(instmt)
instmt.get_instmt_name())) self.init_instmt_snapshot_table(instmt) instmt.set_recovered(False) t1 = threading.Thread( target=partial(self.get_order_book_worker, instmt)) t1.start() t2 = threading.Thread(target=partial(self.get_trades_worker, instmt)) t2.start() return [t1, t2] if __name__ == '__main__': Logger.init_log() exchange_name = 'Quoine' instmt_name = 'BTCUSD' instmt_code = '1' instmt = Instrument(exchange_name, instmt_name, instmt_code) db_client = SqlClientTemplate() exch = ExchGwQuoine([db_client]) instmt.set_l2_depth(L2Depth(5)) instmt.set_prev_l2_depth(L2Depth(5)) instmt.set_order_book_table_name( exch.get_order_book_table_name(instmt.get_exchange_name(), instmt.get_instmt_name())) instmt.set_trades_table_name( exch.get_trades_table_name(instmt.get_exchange_name(), instmt.get_instmt_name())) instmt.set_recovered(False) # exch.get_order_book_worker(instmt) exch.get_trades_worker(instmt)
self.init_instmt_snapshot_table(instmt) instmt.set_recovered(False) # t1 = Process(target=partial(self.get_order_book_worker, instmt)) # t2 = Process(target=partial(self.get_trades_worker, instmt)) t1 = threading.Thread( target=partial(self.get_order_book_worker, instmt)) t2 = threading.Thread(target=partial(self.get_trades_worker, instmt)) t1.start() t2.start() return [t1, t2] if __name__ == '__main__': Logger.init_log() exchange_name = 'Cryptopia' instmt_name = 'BTXBTC' instmt_code = 'BTX_BTC' instmt = Instrument(exchange_name, instmt_name, instmt_code) db_client = SqlClientTemplate() exch = ExchGwCryptopia([db_client]) instmt.set_l2_depth(L2Depth(5)) instmt.set_prev_l2_depth(L2Depth(5)) instmt.set_instmt_snapshot_table_name( exch.get_instmt_snapshot_table_name(instmt.get_exchange_name(), instmt.get_instmt_name())) exch.init_instmt_snapshot_table(instmt) instmt.set_recovered(False) # exch.get_order_book_worker(instmt) exch.get_trades_worker(instmt)
def start(self, instmt): """ Start the exchange gateway :param instmt: Instrument :return List of threads """ instmt.set_l2_depth(L2Depth(5)) instmt.set_prev_l2_depth(L2Depth(5)) instmt.set_instmt_snapshot_table_name( self.get_instmt_snapshot_table_name(instmt.get_exchange_name(), instmt.get_instmt_name())) self.init_instmt_snapshot_table(instmt) return [ self.api_socket.connect( self.api_socket.get_link(), on_message_handler=partial(self.on_message_handler, instmt), on_open_handler=partial(self.on_open_handler, instmt), on_close_handler=partial(self.on_close_handler, instmt)) ] if __name__ == '__main__': exchange_name = 'BitMEX' instmt_name = 'XBTUSD' instmt_code = 'XBTUSD' instmt = Instrument(exchange_name, instmt_name, instmt_code) db_client = SqlClientTemplate() Logger.init_log() exch = ExchGwBitmex([db_client]) td = exch.start(instmt)