def __init__(self, config, trader): super().__init__() self.config = config self.trader = trader self.portfolio = trader.get_portfolio() self.exchange = trader.get_exchange() self.logger = get_logger( f"{self.__class__.__name__}[{self.exchange.get_name()}]") self.trade_history = [] self.profitability = 0 self.profitability_percent = 0 self.profitability_diff = 0 self.currencies_last_prices = {} self.origin_crypto_currencies_values = {} self.current_crypto_currencies_values = {} self.origin_portfolio = None # buffer of currencies excluding market only used currencies ex: conf = btc/usd, eth/btc, ltc/btc, here usd # is market only => not used to compute market average profitability self.traded_currencies_without_market_specific = set() # buffer of currencies containing currencies that have already been logged as without matching symbol # (used not to spam logs) self.already_informed_no_matching_symbol_currency = set() self.portfolio_origin_value = 0 self.portfolio_current_value = 0 self.trades_value = 0 self.reference_market = ConfigManager.get_reference_market(self.config)
def get_reference_market(): global reference_market if reference_market is None: try: reference_market = ConfigManager.get_reference_market( global_config) except StopIteration: reference_market = None return reference_market
def __init__(self, octobot): self.octobot = octobot self.edited_config = octobot.edited_config self.enabled = ConfigManager.get_metrics_enabled(self.edited_config) self.bot_id = self._init_config_bot_id(self.edited_config) self.reference_market = ConfigManager.get_reference_market( self.edited_config) self.logger = get_logger(self.__class__.__name__) self.current_config = None self.keep_running = True self.session = octobot.get_aiohttp_session() self.has_real_trader = ConfigManager.get_trader_enabled( self.edited_config)
def test_get_reference_market(): config = load_config("tests/static/config.json") assert ConfigManager.get_reference_market(config) == DEFAULT_REFERENCE_MARKET config[CONFIG_TRADING][CONFIG_TRADER_REFERENCE_MARKET] = "ETH" assert ConfigManager.get_reference_market(config) == "ETH"