| @@ -666,7 +666,7 @@ class FreqtradeBot(LoggingMixin): | ||||
|                     trades_closed += 1 | ||||
|  | ||||
|             except DependencyException as exception: | ||||
|                 logger.warning('Unable to sell trade %s: %s', trade.pair, exception) | ||||
|                 logger.warning(f'Unable to sell trade {trade.pair}: {exception}') | ||||
|  | ||||
|         # Updating wallets if any trade occurred | ||||
|         if trades_closed: | ||||
| @@ -910,8 +910,12 @@ class FreqtradeBot(LoggingMixin): | ||||
|                 if max_timeouts > 0 and canceled_count >= max_timeouts: | ||||
|                     logger.warning(f'Emergencyselling trade {trade}, as the sell order ' | ||||
|                                    f'timed out {max_timeouts} times.') | ||||
|                     self.execute_trade_exit(trade, order.get('price'), sell_reason=SellCheckTuple( | ||||
|                         sell_type=SellType.EMERGENCY_SELL)) | ||||
|                     try: | ||||
|                         self.execute_trade_exit( | ||||
|                             trade, order.get('price'), | ||||
|                             sell_reason=SellCheckTuple(sell_type=SellType.EMERGENCY_SELL)) | ||||
|                     except DependencyException as exception: | ||||
|                         logger.warning(f'Unable to emergency sell trade {trade.pair}: {exception}') | ||||
|  | ||||
|     def cancel_all_open_orders(self) -> None: | ||||
|         """ | ||||
|   | ||||
| @@ -2171,10 +2171,20 @@ def test_check_handle_timedout_sell_usercustom(default_conf_usdt, ticker_usdt, l | ||||
|     assert open_trade.is_open is True | ||||
|     assert freqtrade.strategy.check_sell_timeout.call_count == 1 | ||||
|  | ||||
|     # 2nd canceled trade ... | ||||
|     # 2nd canceled trade - Fail execute sell | ||||
|     caplog.clear() | ||||
|     open_trade.open_order_id = 'order_id_2' | ||||
|     mocker.patch('freqtrade.persistence.Trade.get_exit_order_count', return_value=1) | ||||
|     mocker.patch('freqtrade.freqtradebot.FreqtradeBot.execute_trade_exit', | ||||
|                  side_effect=DependencyException) | ||||
|     freqtrade.check_handle_timedout() | ||||
|     assert log_has_re('Unable to emergency sell .*', caplog) | ||||
|  | ||||
|     et_mock = mocker.patch('freqtrade.freqtradebot.FreqtradeBot.execute_trade_exit') | ||||
|     caplog.clear() | ||||
|  | ||||
|     # 2nd canceled trade ... | ||||
|     open_trade.open_order_id = 'order_id_2' | ||||
|     freqtrade.check_handle_timedout() | ||||
|     assert log_has_re('Emergencyselling trade.*', caplog) | ||||
|     assert et_mock.call_count == 1 | ||||
|   | ||||
		Reference in New Issue
	
	Block a user