async def _init_origin_portfolio_and_currencies_value_from_previous_executions( self, previous_state_manager): try: self.origin_crypto_currencies_values = \ previous_state_manager.get_previous_state(self.exchange, WATCHED_MARKETS_INITIAL_STARTUP_VALUES) portfolio_key = SIMULATOR_INITIAL_STARTUP_PORTFOLIO if self.trader.simulate \ else REAL_INITIAL_STARTUP_PORTFOLIO self.origin_portfolio = Portfolio.get_portfolio_from_amount_dict( previous_state_manager.get_previous_state( self.exchange, portfolio_key)) self.logger.info( f"Resuming the previous trading session: using this initial portfolio as a " f"profitability reference: {self.origin_portfolio}") portfolio_origin_value_key = SIMULATOR_INITIAL_STARTUP_PORTFOLIO_VALUE if self.trader.simulate \ else REAL_INITIAL_STARTUP_PORTFOLIO_VALUE self.portfolio_origin_value = \ previous_state_manager.get_previous_state(self.exchange, portfolio_origin_value_key) except Exception as e: self.logger.warning( f"Error when loading trading history, will reset history. ({e})" ) self.logger.exception(e) previous_state_manager.reset_trading_history() await self._init_origin_portfolio_and_currencies_value( force_ignore_history=True)
async def test_get_portfolio_from_amount_dict(self): assert Portfolio.get_portfolio_from_amount_dict({ "zyx": 10, "BTC": 1 }) == { 'zyx': { 'available': 10, 'total': 10 }, 'BTC': { 'available': 1, 'total': 1 } } assert Portfolio.get_portfolio_from_amount_dict({}) == {} with pytest.raises(RuntimeError): Portfolio.get_portfolio_from_amount_dict({"zyx": "10", "BTC": 1})