Beispiel #1
0
 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})