コード例 #1
0
    async def _init_exchanges(self):
        self.backtesting = await backtesting_api.initialize_backtesting(
            self.backtesting_config,
            exchange_ids=self.exchange_manager_ids,
            matrix_id=self.matrix_id,
            data_files=self.backtesting_files)
        # modify_backtesting_channels before creating exchanges as they require the current backtesting time to
        # initialize
        await backtesting_api.adapt_backtesting_channels(
            self.backtesting,
            self.backtesting_config,
            importers.ExchangeDataImporter,
            run_on_common_part_only=self.run_on_common_part_only,
            start_timestamp=self.start_timestamp,
            end_timestamp=self.end_timestamp)

        for exchange_class_string in self.symbols_to_create_exchange_classes.keys(
        ):
            exchange_builder = trading_api.create_exchange_builder(self.backtesting_config, exchange_class_string) \
                .has_matrix(self.matrix_id) \
                .use_tentacles_setup_config(self.tentacles_setup_config) \
                .set_bot_id(self.bot_id) \
                .is_simulated() \
                .is_rest_only() \
                .is_backtesting(self.backtesting)
            try:
                await exchange_builder.build()
            finally:
                # always save exchange manager ids and backtesting instances
                self.exchange_manager_ids.append(
                    trading_api.get_exchange_manager_id(
                        exchange_builder.exchange_manager))
コード例 #2
0
def connect(exchange_name):
    if exchange_name not in cli.exchanges:
        exchange_builder = api.create_exchange_builder(cli.get_config(),
                                                       exchange_name)

        cli.exchanges[exchange_name] = {
            "exchange_builder":
            exchange_builder,
            "exchange_thread":
            threading.Thread(target=cli_tools.start_cli_exchange,
                             args=(exchange_builder, ))
        }

        cli.exchanges[exchange_name]["exchange_thread"].start()
    else:
        click.echo("Already connected to this exchange", err=True)
        return
    click.echo(f"Connected to {exchange_name}")