Esempio n. 1
0
 def _get_bot_metrics(self):
     return {
         MetricsFields.ID.value: self.bot_id,
         MetricsFields.CURRENT_SESSION.value: {
             MetricsFields.STARTED_AT.value:
             int(self.octobot.start_time),
             MetricsFields.UP_TIME.value:
             int(time.time() - self.octobot.start_time),
             MetricsFields.SIMULATOR.value:
             ConfigManager.get_trader_simulator_enabled(self.edited_config),
             MetricsFields.TRADER.value:
             ConfigManager.get_trader_enabled(self.edited_config),
             MetricsFields.EVAL_CONFIG.value:
             self._get_eval_config(),
             MetricsFields.PAIRS.value:
             self._get_traded_pairs(),
             MetricsFields.EXCHANGES.value:
             list(self.octobot.get_exchanges_list().keys()),
             MetricsFields.NOTIFICATIONS.value:
             self._get_notification_types(),
             MetricsFields.TYPE.value:
             get_octobot_type(),
             MetricsFields.PLATFORM.value:
             get_current_platform()
         }
     }
Esempio n. 2
0
    def _check_exchange_data(self, config, found_currencies_prices):
        for exchange_data in self._previous_state.values():
            # check currencies
            missing_traded_currencies = set()
            for currency in exchange_data[
                    WATCHED_MARKETS_INITIAL_STARTUP_VALUES].keys():
                if currency in found_currencies_prices:
                    found_currencies_prices[currency] = True
                else:
                    missing_traded_currencies.add(currency)
            if missing_traded_currencies:
                self.logger.warning(
                    f"{self.ERROR_MESSAGE}Missing trading pair(s) for "
                    f"{', '.join(missing_traded_currencies)}.")
                return False
            # check reference market
            if exchange_data[REFERENCE_MARKET] != config[CONFIG_TRADING][
                    CONFIG_TRADER_REFERENCE_MARKET]:
                self.logger.warning(
                    f"{self.ERROR_MESSAGE}Reference market changed, "
                    f"reinitializing traders.")
                return False

            # check initial portfolios and portfolios values
            if ConfigManager.get_trader_simulator_enabled(config):
                if exchange_data[SIMULATOR_INITIAL_STARTUP_PORTFOLIO] is None \
                        or exchange_data[SIMULATOR_INITIAL_STARTUP_PORTFOLIO_VALUE] is None:
                    return False
            if ConfigManager.get_trader_enabled(config):
                if exchange_data[REAL_INITIAL_STARTUP_PORTFOLIO] is None\
                        or exchange_data[REAL_INITIAL_STARTUP_PORTFOLIO_VALUE] is None:
                    return False
        return True
Esempio n. 3
0
 def _get_bot_metrics(self):
     return {
         MetricsFields.ID.value: self.bot_id,
         MetricsFields.CURRENT_SESSION.value: {
             MetricsFields.STARTED_AT.value:
             int(self.octobot.start_time),
             MetricsFields.UP_TIME.value:
             int(time.time() - self.octobot.start_time),
             MetricsFields.SIMULATOR.value:
             ConfigManager.get_trader_simulator_enabled(self.edited_config),
             MetricsFields.TRADER.value:
             self.has_real_trader,
             MetricsFields.EVAL_CONFIG.value:
             self._get_eval_config(),
             MetricsFields.PAIRS.value:
             self._get_traded_pairs(),
             MetricsFields.EXCHANGES.value:
             list(self.octobot.get_exchanges_list().keys()),
             MetricsFields.NOTIFICATIONS.value:
             self._get_notification_types(),
             MetricsFields.TYPE.value:
             get_octobot_type(),
             MetricsFields.PLATFORM.value:
             get_current_platform(),
             MetricsFields.REFERENCE_MARKET.value:
             self.reference_market,
             MetricsFields.PORTFOLIO_VALUE.value:
             self._get_real_portfolio_value(),
             MetricsFields.PROFITABILITY.value:
             self._get_profitability()
         }
     }
Esempio n. 4
0
 def _load_previous_state(self, target_exchanges, config):
     if self._load_previous_state_metadata(target_exchanges, config):
         if ConfigManager.get_trader_simulator_enabled(config):
             return self._load_previous_state_portfolios(target_exchanges)
         else:
             return True
     else:
         return False
Esempio n. 5
0
 def enabled(config):
     return ConfigManager.get_trader_simulator_enabled(config)