From b0b036c457f0cc62e0e98ced1df19d68633d4761 Mon Sep 17 00:00:00 2001 From: Matthias Date: Wed, 26 Apr 2023 06:45:09 +0200 Subject: [PATCH] Fix logic lapsus in check_exit_amount --- freqtrade/freqtradebot.py | 3 +++ freqtrade/wallets.py | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 8b877541c..59f764111 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -463,6 +463,7 @@ class FreqtradeBot(LoggingMixin): if trade_order: continue logger.info(f"Found previously unknown order {order['id']} for {trade.pair}.") + order_obj = Order.parse_from_ccxt_object(order, trade.pair, order['side']) order_obj.order_filled_date = datetime.fromtimestamp( safe_value_fallback(order, 'lastTradeTimestamp', 'timestamp') // 1000, @@ -473,6 +474,7 @@ class FreqtradeBot(LoggingMixin): prev_exit_reason = trade.exit_reason trade.exit_reason = ExitType.SOLD_ON_EXCHANGE.value self.update_trade_state(trade, order['id'], order) + logger.info(f"handled order {order['id']}") if not trade.is_open: # Trade was just closed @@ -481,6 +483,7 @@ class FreqtradeBot(LoggingMixin): break else: trade.exit_reason = prev_exit_reason + Trade.commit() except ExchangeError: logger.warning("Error finding onexchange order") diff --git a/freqtrade/wallets.py b/freqtrade/wallets.py index ecac638c6..9a33d1fb1 100644 --- a/freqtrade/wallets.py +++ b/freqtrade/wallets.py @@ -184,7 +184,7 @@ class Wallets: def _check_exit_amount(self, trade: Trade) -> bool: if trade.trading_mode != TradingMode.FUTURES: # Slightly higher offset than in safe_exit_amount. - wallet_amount: float = self.get_total(trade.safe_base_currency) * 0.981 + wallet_amount: float = self.get_total(trade.safe_base_currency) * (2 - 0.981) else: # wallet_amount: float = self.wallets.get_free(trade.safe_base_currency) position = self._positions.get(trade.pair)