From 61a3545dd7a7e1175c62c50d2fcaee7b9711f90c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nicol=C3=A1s=20S=C3=A1nchez?= Date: Fri, 5 Sep 2025 16:44:38 -0300 Subject: [PATCH] wrong tp order code --- trader.py | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/trader.py b/trader.py index cada2e6..0af70db 100755 --- a/trader.py +++ b/trader.py @@ -1161,15 +1161,16 @@ class trader: self.status.set_pause_reason("check if tp_order is filled") #Checks if the take profit order is filled if self.status.get_take_profit_order()["id"] not in open_orders_ids: - # # I hate Kucoin: - # # Check if the order has a wrong id. If so, update the order. - # for order in open_orders: - # if order["amount"]==self.status.get_take_profit_order()["amount"] and order["price"]==self.status.get_take_profit_order()["price"] and order["side"]==self.status.get_take_profit_order()["side"]: - # #Right order, wrong id. Update order - # self.broker.logger.log_this(f"Updating take profit order for {self.status.get_pair()}",1,self.status.get_pair()) - # self.status.set_take_profit_order(order) - # self.update_status(True) - # return 0 + # Check if the order has a wrong id. If so, update the order. + # To cover a very rare case that happens if the trader sends a new take profit order but is interrupted before saving the status. + # Not sure if it is worth to keep this code. + for order in open_orders: + if order["amount"]==self.status.get_take_profit_order()["amount"] and order["price"]==self.status.get_take_profit_order()["price"] and order["side"]==self.status.get_take_profit_order()["side"]: + #Right order, wrong id. Update order + self.broker.logger.log_this(f"Updating take profit order for {self.status.get_pair()}",1,self.status.get_pair()) + self.status.set_take_profit_order(order) + self.update_status(True) + return 0 tp_status = self.broker.get_order(self.status.get_take_profit_order()["id"],self.status.get_pair()) if tp_status["status"]=="closed":