small refactor in send_new_safety_order_batch
This commit is contained in:
parent
406067497e
commit
7dab4d4890
2
main.py
2
main.py
|
|
@ -18,7 +18,7 @@ import exchange_wrapper
|
|||
import trader
|
||||
|
||||
|
||||
version = "2025.08.28"
|
||||
version = "2025.08.29"
|
||||
|
||||
'''
|
||||
Color definitions. If you want to change them, check the reference at https://en.wikipedia.org/wiki/ANSI_escape_code#Colors
|
||||
|
|
|
|||
26
trader.py
26
trader.py
|
|
@ -735,7 +735,7 @@ class trader:
|
|||
#If this order wasn't filled, it is safe to assume that no order coming after this one was.
|
||||
break
|
||||
#Sum the filled amounts
|
||||
self.broker.logger.log_this(f"Old safety order is partially filled, ID: {closed_order['id']}",1,self.status.get_pair())
|
||||
self.broker.logger.log_this(f"Old safety order is partially filled, ID: {closed_order['id']}, {closed_order['filled']}/{closed_order['amount']} {self.base} filled",1,self.status.get_pair())
|
||||
self.status.set_base_bought(self.status.get_base_bought() + closed_order["filled"] - self.parse_fees(closed_order)[0])
|
||||
self.status.set_quote_spent(self.status.get_quote_spent() + closed_order["cost"])
|
||||
#Save the order
|
||||
|
|
@ -834,6 +834,7 @@ class trader:
|
|||
return 0
|
||||
|
||||
orders_placed = 0
|
||||
orders_returned = []
|
||||
# if self.broker.get_exchange_name()!="binance": #Binance does not support sending multiple orders at once in Spot.
|
||||
# self.broker.logger.log_this(f"Sending {orders_to_place} safety orders",2,self.status.get_pair())
|
||||
# orders_to_send = []
|
||||
|
|
@ -853,7 +854,8 @@ class trader:
|
|||
# "amount": so_size/self.status.get_safety_price_table()[order_index],
|
||||
# "price": self.status.get_safety_price_table()[order_index]})
|
||||
# sent_orders = self.broker.new_limit_orders(orders_to_send)
|
||||
# self.status.set_so_amount(self.status.get_so_amount()+len(sent_orders))
|
||||
# orders_placed = len(sent_orders)
|
||||
# self.status.set_so_amount(self.status.get_so_amount()+orders_placed)
|
||||
# for item in sent_orders:
|
||||
# self.status.add_safety_order(item)
|
||||
# else:
|
||||
|
|
@ -864,6 +866,7 @@ class trader:
|
|||
new_order = self.broker.new_limit_order(self.status.get_pair(),so_size,"sell",self.status.get_safety_price_table()[self.status.get_so_amount()+1])
|
||||
else:
|
||||
new_order = self.broker.new_limit_order(self.status.get_pair(),so_size/self.status.get_safety_price_table()[self.status.get_so_amount()+1],"buy",self.status.get_safety_price_table()[self.status.get_so_amount()+1])
|
||||
|
||||
if new_order==1:
|
||||
self.broker.logger.log_this("Not enough balance to send a new safety order",1,self.status.get_pair())
|
||||
self.status.set_no_of_safety_orders(self.status.get_so_amount()) #To avoid sending more safety orders, no_of_safety_order can be later modified manually.
|
||||
|
|
@ -875,10 +878,11 @@ class trader:
|
|||
elif new_order==self.broker.get_empty_order():
|
||||
self.broker.logger.log_this("new_limit_order returned an empty order",1,self.status.get_pair())
|
||||
self.status.set_no_of_safety_orders(self.status.get_so_amount()) #To avoid sending more safety orders, no_of_safety_order can be later modified manually.
|
||||
return orders_placed
|
||||
orders_placed+=1
|
||||
self.status.add_safety_order(new_order)
|
||||
self.status.set_so_amount(self.status.get_so_amount()+1)
|
||||
return orders_placed
|
||||
else:
|
||||
orders_placed+=1
|
||||
self.status.add_safety_order(new_order)
|
||||
self.status.set_so_amount(self.status.get_so_amount()+1)
|
||||
return orders_placed
|
||||
|
||||
|
||||
|
|
@ -887,6 +891,7 @@ class trader:
|
|||
Modifies the current take profit order and sends a new safety order
|
||||
:return: 0 OK, 1 take profit order is None, 2 not enough funds, 3 can't cancel TP (filled?), 4 can't send new TP
|
||||
'''
|
||||
|
||||
safety_orders_to_remove_by_id = []
|
||||
|
||||
#Check if current TP order is valid
|
||||
|
|
@ -978,6 +983,7 @@ class trader:
|
|||
'''
|
||||
Checks if short price exceeds old long price. If so, send a Telegram message
|
||||
'''
|
||||
|
||||
price_exceeds = False
|
||||
if self.status.get_old_long()!={}:
|
||||
price_exceeds = self.status.get_price()>float(self.status.get_old_long()["tp_price"])
|
||||
|
|
@ -1648,9 +1654,15 @@ class trader:
|
|||
self.quit = True
|
||||
return 1
|
||||
|
||||
#MIGRATION: ONCE MIGRATION IS DONE, REMOVE THESE LINES
|
||||
#MIGRATION: ONCE MIGRATION IS DONE, REMOVE THIS CODE
|
||||
# It moves the current safety order (if it exists) to the new safety order list
|
||||
# It sets the concurrent safety orders setting to 1 (to avoid sending a big amount of orders at startup)
|
||||
# It saves the modified config file
|
||||
|
||||
#if self.status.status_dictionary["safety_order"]["id"]!="":
|
||||
# self.status.set_safety_orders([self.status.status_dictionary["safety_order"]])
|
||||
# self.config.set_concurrent_safety_orders(1)
|
||||
# self.config.save_to_file()
|
||||
|
||||
#Done
|
||||
self.pause = False
|
||||
|
|
|
|||
Loading…
Reference in New Issue