wait_before_new_safety_order

This commit is contained in:
Nicolás Sánchez 2024-10-31 09:42:53 -03:00
parent 179bc276a6
commit b3d22c0fa2
5 changed files with 16 additions and 6 deletions

View File

@ -1,3 +1,6 @@
2024.10.31:
. Added an option to set the wait time before sending a new safety order.
2024.10.30: 2024.10.30:
. Changes trying to catch the wrong base amount bug. . Changes trying to catch the wrong base amount bug.
. Simplified new_market_order code. . Simplified new_market_order code.

View File

@ -16,6 +16,7 @@
"reconnect": 30, #Deprecated "reconnect": 30, #Deprecated
"lap_time": 1, #Time in seconds between each iteration of the instance. "lap_time": 1, #Time in seconds between each iteration of the instance.
"cooldown_multiplier": 2, #Time in seconds to wait between closing a new trade and starting a new one. Useful to combat big orderbook movements. "cooldown_multiplier": 2, #Time in seconds to wait between closing a new trade and starting a new one. Useful to combat big orderbook movements.
"wait_before_new_safety_order": 1, #Prior to sending a new safety order, wait n amount of seconds (might help some exchanges to reflect the full amount of a filled order)
"host": "0.0.0.0", #API host "host": "0.0.0.0", #API host
"port": "5006", #API port "port": "5006", #API port
"telegram": false, #Send Telegram notifications "telegram": false, #Send Telegram notifications

View File

@ -16,6 +16,9 @@ class broker:
self.cooldown_multiplier = 2 #Default cooldown multiplier value self.cooldown_multiplier = 2 #Default cooldown multiplier value
if "cooldown_multiplier" in self.read_config: if "cooldown_multiplier" in self.read_config:
self.cooldown_multiplier = self.read_config["cooldown_multiplier"] self.cooldown_multiplier = self.read_config["cooldown_multiplier"]
self.wait_before_new_safety_order = 1
if "wait_before_new_safety_order" in self.read_config:
self.wait_before_new_safety_order = self.read_config["wait_before_new_safety_order"]
self.empty_order = {"id": "", "status": "", "filled": 0, "remaining": 0, "price": 0, "cost": 0, "fees": [], "symbol": ""} self.empty_order = {"id": "", "status": "", "filled": 0, "remaining": 0, "price": 0, "cost": 0, "fees": [], "symbol": ""}
self.retries = read_config["retries"] if "retries" in self.read_config else 10 self.retries = read_config["retries"] if "retries" in self.read_config else 10
self.slippage_default_threshold = self.read_config["slippage_default_threshold"] if "slippage_default_threshold" in read_config else .03 self.slippage_default_threshold = self.read_config["slippage_default_threshold"] if "slippage_default_threshold" in read_config else .03
@ -119,10 +122,16 @@ class broker:
self.cooldown_multiplier = value self.cooldown_multiplier = value
return 0 return 0
def get_wait_before_new_safety_order(self):
return self.wait_before_new_safety_order
def set_wait_before_new_safety_order(self,value:float):
self.wait_before_new_safety_order = value
return 0
def get_default_order_size(self): def get_default_order_size(self):
return self.read_config["default_order_size"] return self.read_config["default_order_size"]
def set_default_order_size(self,size): def set_default_order_size(self,size):
try: try:
self.read_config["default_order_size"] = float(size) self.read_config["default_order_size"] = float(size)

View File

@ -22,7 +22,7 @@ In case the permissions of the certificate changes, reset them this way:
# ll /etc/letsencrypt/ # ll /etc/letsencrypt/
''' '''
version = "2024.10.30" version = "2024.10.31"
''' '''
Color definitions. If you want to change them, check the reference at https://en.wikipedia.org/wiki/ANSI_escape_code#Colors Color definitions. If you want to change them, check the reference at https://en.wikipedia.org/wiki/ANSI_escape_code#Colors

View File

@ -1015,10 +1015,7 @@ class trader:
self.sum_filled_amounts(filled_order) self.sum_filled_amounts(filled_order)
#Cooldown #Cooldown
time.sleep(self.broker.get_wait_time()) time.sleep(self.broker.get_wait_before_new_safety_order())
if self.broker.get_exchange_name()=="gateio":
#Extend the wait time because Gate.io sucks
time.sleep(self.broker.get_wait_time())
# Send the new safety order. If all expected safety orders are filled, it assigns an empty order to self.so # Send the new safety order. If all expected safety orders are filled, it assigns an empty order to self.so
if send_new_so: if send_new_so: