From c0754587bfa755bdede7ba8dae5503a3aa1957ff Mon Sep 17 00:00:00 2001 From: Axel-CH Date: Tue, 29 Oct 2024 23:30:36 -0400 Subject: [PATCH] add handle_similar_open_order for execute_trade_exit --- freqtrade/freqtradebot.py | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/freqtrade/freqtradebot.py b/freqtrade/freqtradebot.py index 2a2f9e0f7..9db4bfd13 100644 --- a/freqtrade/freqtradebot.py +++ b/freqtrade/freqtradebot.py @@ -2014,13 +2014,6 @@ class FreqtradeBot(LoggingMixin): limit = self.get_valid_price(custom_exit_price, proposed_limit_rate) - if trade.has_open_orders: - # cancel any open order of this trade - self.cancel_open_orders_of_trade( - trade, [trade.exit_side], constants.CANCEL_REASON["REPLACE"], True - ) - Trade.commit() - # First cancelling stoploss on exchange ... trade = self.cancel_stoploss_on_exchange(trade) @@ -2050,6 +2043,17 @@ class FreqtradeBot(LoggingMixin): logger.info(f"User denied exit for {trade.pair}.") return False + if trade.has_open_orders: + if self.handle_similar_open_order(trade, limit, amount, trade.exit_side): + logger.info(f"A similar open order was found for {trade.pair}.") + return False + + # cancel any open order of this trade + self.cancel_open_orders_of_trade( + trade, [trade.exit_side], constants.CANCEL_REASON["REPLACE"], True + ) + Trade.commit() + try: # Execute sell and update trade record order = self.exchange.create_order(