diff --git a/changelog.txt b/changelog.txt index 14192e7..0de480d 100755 --- a/changelog.txt +++ b/changelog.txt @@ -1,3 +1,7 @@ +2025.10.04: +. Fixed error while logging orders in new_simulated_market_order. +. renew_tp_and_so_routine now send the take profit order first, and then the safety orders. + 2025.10.03: . New broker config option: log_orders. If set to True, the orders will be logged in orders.log under logs directory. . New API endpoint: /toggle_log_orders. diff --git a/exchange_wrapper.py b/exchange_wrapper.py index fce5497..c5db781 100755 --- a/exchange_wrapper.py +++ b/exchange_wrapper.py @@ -694,6 +694,8 @@ class Broker: try: if self.get_exchange_name()=="gateio" and side=="buy" and not amount_in_base: new_order = self.exchange.create_market_buy_order_with_cost(symbol, size) + if self.log_orders: + self.logger.log_order(f"New simulated market order: Symbol: {symbol} - Side: {side} - Size: {size} - ID: {new_order['id']} - Origin: {log}") else: order_book = self.get_order_book(symbol) if order_book=={}: @@ -707,8 +709,8 @@ class Broker: price = self.find_minimum_viable_price(order_book,base_amount,side) #Maybe check for slippage here instead of within the trader itself? idk new_order = self.exchange.create_order(symbol,"limit",side,base_amount,price) - if self.log_orders: - self.logger.log_order(f"New simulated market order: Symbol: {symbol} - Side: {side} - Size: {size} - Price: {price} - ID: {new_order['id']} - Origin: {log}") + if self.log_orders: + self.logger.log_order(f"New simulated market order: Symbol: {symbol} - Side: {side} - Size: {size} - Price: {price} - ID: {new_order['id']} - Origin: {log}") time.sleep(self.wait_time) return self.get_order(new_order["id"],symbol) except Exception as e: diff --git a/main.py b/main.py index eab5cbf..51ea4d9 100644 --- a/main.py +++ b/main.py @@ -18,7 +18,7 @@ import exchange_wrapper import trader -version = "2025.10.03" +version = "2025.10.04" ''' Color definitions. If you want to change them, check the reference at https://en.wikipedia.org/wiki/ANSI_escape_code#Colors diff --git a/trader.py b/trader.py index 09a181b..3a747db 100755 --- a/trader.py +++ b/trader.py @@ -1019,22 +1019,21 @@ class trader: #Cooldown time.sleep(self.broker.get_wait_before_new_safety_order()) - #Send new SO(s) - #Do not send new orders if the max amount is reached or surpassed. - #It can happen if the max amount of concurrent orders is modified through an API call. - max_orders = self.config.get_concurrent_safety_orders() if not self.status.get_is_boosted() else self.config.get_boosted_concurrent_safety_orders() - if len(self.status.get_safety_orders())0: #To make sure that the safety orders are actually filled (Kucoin sometimes sends incomplete order lists) self.status.set_safety_orders_filled(self.status.get_safety_orders_filled()+len(filled_orders)) renew_outcome = self.renew_tp_and_so_routine(filled_orders)