def test_get_reference_market(config): config[commons_constants.CONFIG_TRADING][commons_constants.CONFIG_TRADER_REFERENCE_MARKET] = "BTC" assert util.get_reference_market(config) == "BTC" config[commons_constants.CONFIG_TRADING][commons_constants.CONFIG_TRADER_REFERENCE_MARKET] = "BTC1" assert util.get_reference_market(config) == "BTC1" config[commons_constants.CONFIG_TRADING].pop(commons_constants.CONFIG_TRADER_REFERENCE_MARKET, None) assert util.get_reference_market(config) == trading_constants.DEFAULT_REFERENCE_MARKET
def __init__(self, config, trader, portfolio_manager, exchange_manager): super().__init__() self.config = config self.trader = trader self.portfolio_manager = portfolio_manager self.exchange_manager = exchange_manager self.logger = get_logger( f"{self.__class__.__name__}[{self.exchange_manager.exchange_name}]" ) self.profitability = 0 self.profitability_percent = 0 self.profitability_diff = 0 self.market_profitability_percent = 0 self.initial_portfolio_current_profitability = 0 self.initializing_symbol_prices = set() self.portfolio_origin_value = 0 self.portfolio_current_value = 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() self.reference_market = get_reference_market(self.config)
def _reset_portfolio(self): """ Reset the portfolio and portfolio profitability instances """ self.portfolio = personal_data.create_portfolio_from_exchange_manager( self.exchange_manager) self._load_portfolio() self.reference_market = util.get_reference_market(self.config) self.portfolio_value_holder = personal_data.PortfolioValueHolder(self) self.portfolio_profitability = personal_data.PortfolioProfitability( self)
def __init__(self, config, trader, portfolio_manager, exchange_manager): super().__init__() self.config = config self.trader = trader self.portfolio_manager = portfolio_manager self.exchange_manager = exchange_manager self.logger = get_logger( f"{self.__class__.__name__}[{self.exchange_manager.exchange_name}]" ) self.profitability = 0 self.profitability_percent = 0 self.profitability_diff = 0 self.market_profitability_percent = 0 self.initial_portfolio_current_profitability = 0 self.initializing_symbol_prices = set() self.reference_market = get_reference_market(self.config) self.portfolio_origin_value = 0 self.portfolio_current_value = 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() # set of currencies that should be traded because either present in config or as a reference market self.traded_currencies = get_all_currencies(self.config) self.traded_currencies.add(self.reference_market) # set of currencies for which the current exchange is not providing any suitable price data self.missing_currency_data_in_exchange = set()
def get_reference_market(config) -> str: return util.get_reference_market(config)