Exemple #1
0
    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)
Exemple #4
0
        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)