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() } }
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
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() } }
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
def enabled(config): return ConfigManager.get_trader_simulator_enabled(config)