2025.10.04

This commit is contained in:
Nicolás Sánchez 2025-10-04 21:40:03 -03:00
parent 2823dff56a
commit 8f3b0eb186
4 changed files with 20 additions and 15 deletions

View File

@ -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.

View File

@ -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=={}:

View File

@ -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

View File

@ -1019,16 +1019,6 @@ 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())<max_orders:
self.send_new_safety_order_batch(max_orders-len(self.status.get_safety_orders()))
#Cooldown
time.sleep(self.broker.get_wait_before_new_safety_order())
#Send new TP order
if self.send_new_tp_order()==1:
error_string = "Problems sending the new take profit order"
@ -1036,6 +1026,15 @@ class trader:
self.status.set_pause_reason(error_string)
return 4
#Cooldown
time.sleep(self.broker.get_wait_before_new_safety_order())
#Send new safety order(s)
#Do not send new orders if the max amount is reached or surpassed.
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())<max_orders:
self.send_new_safety_order_batch(max_orders-len(self.status.get_safety_orders()))
#Update status dict
self.update_status(True)
@ -1196,9 +1195,9 @@ class trader:
filled_orders = []
for id in filled_ids:
order = self.broker.get_order(id, self.status.get_pair())
time.sleep(self.broker.get_wait_time())
if order["status"]=="closed":
filled_orders.append(order)
time.sleep(self.broker.get_wait_time())
if len(filled_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)