no_of_safety_orders bug
This commit is contained in:
parent
b594bd2007
commit
2e35ea9c13
|
|
@ -1,8 +1,8 @@
|
||||||
next:
|
next:
|
||||||
. Default wait time now 0.5 seconds.
|
. Default wait time now 0.5 seconds.
|
||||||
. Now the trader supports multiple safety orders at the same time.
|
. Now the trader supports multiple safety orders at the same time.
|
||||||
. Removed endpoint /reload_safety_orders.
|
|
||||||
. Removed forcing orders when importing a trader. Maybe it will be reinstated at a later date.
|
. Removed forcing orders when importing a trader. Maybe it will be reinstated at a later date.
|
||||||
|
. Removed endpoint /reload_safety_orders.
|
||||||
. New endpoints: /mod_concurrent_safety orders and /mod_boosted_concurrent_safety_orders.
|
. New endpoints: /mod_concurrent_safety orders and /mod_boosted_concurrent_safety_orders.
|
||||||
|
|
||||||
2025.08.19:
|
2025.08.19:
|
||||||
|
|
|
||||||
|
|
@ -14,7 +14,7 @@ class Broker:
|
||||||
self.broker_config = broker_config
|
self.broker_config = broker_config
|
||||||
self.exchange = exchange
|
self.exchange = exchange
|
||||||
self.last_price = 0
|
self.last_price = 0
|
||||||
self.wait_time = .5 #Default wait time for API breathing room
|
self.wait_time = .5 #Default wait time for API breathing room
|
||||||
self.cooldown_multiplier = 2 #Default cooldown multiplier value
|
self.cooldown_multiplier = 2 #Default cooldown multiplier value
|
||||||
if "cooldown_multiplier" in self.broker_config:
|
if "cooldown_multiplier" in self.broker_config:
|
||||||
self.cooldown_multiplier = self.broker_config["cooldown_multiplier"]
|
self.cooldown_multiplier = self.broker_config["cooldown_multiplier"]
|
||||||
|
|
@ -881,12 +881,6 @@ class Broker:
|
||||||
order_to_send = self.exchange.create_order(symbol,"limit",side,self.amount_to_precision(symbol,size),price)
|
order_to_send = self.exchange.create_order(symbol,"limit",side,self.amount_to_precision(symbol,size),price)
|
||||||
time.sleep(self.wait_time)
|
time.sleep(self.wait_time)
|
||||||
return self.get_order(order_to_send["id"],symbol)
|
return self.get_order(order_to_send["id"],symbol)
|
||||||
#if order_to_send["amount"] is not None: # Because Kucoin etc etc
|
|
||||||
# return self.get_order(order_to_send["id"],pair) #
|
|
||||||
#self.logger.log_this(f"Error sending order: Null order returned",2,pair) #
|
|
||||||
#self.cancel_order(order_to_send["id"],symbol,no_retries=True) #
|
|
||||||
#retries-=1
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
self.logger.log_this(f"Exception in new_limit_order - Side: {side} - Size: {size} - {self.amount_to_precision(symbol,size)} - Exception: {e}",1,symbol)
|
self.logger.log_this(f"Exception in new_limit_order - Side: {side} - Size: {size} - {self.amount_to_precision(symbol,size)} - Exception: {e}",1,symbol)
|
||||||
if self.not_enough_balance_error(e):
|
if self.not_enough_balance_error(e):
|
||||||
|
|
@ -1025,8 +1019,8 @@ class Broker:
|
||||||
|
|
||||||
:param pair: pair
|
:param pair: pair
|
||||||
:return: step size
|
:return: step size
|
||||||
|
|
||||||
'''
|
'''
|
||||||
|
|
||||||
market = self.fetch_market(pair)
|
market = self.fetch_market(pair)
|
||||||
if market is None:
|
if market is None:
|
||||||
return None
|
return None
|
||||||
|
|
@ -1126,14 +1120,9 @@ class Logger:
|
||||||
|
|
||||||
#Append to log list
|
#Append to log list
|
||||||
self.log_list.append(text)
|
self.log_list.append(text)
|
||||||
|
|
||||||
#Trim log list
|
|
||||||
#self.log_list = self.log_list[-self.log_list_max_length:]
|
|
||||||
|
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
print("Can't write log file")
|
print("Can't write log file")
|
||||||
print(e)
|
print(e)
|
||||||
|
|
||||||
if level<1:
|
if level<1:
|
||||||
self.send_tg_message(f"{self.broker_config['exchange'].capitalize()} | {pair_data}{message}",ignore_config=level==-1)
|
self.send_tg_message(f"{self.broker_config['exchange'].capitalize()} | {pair_data}{message}",ignore_config=level==-1)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,7 @@ class StatusHandler:
|
||||||
"quote_spent": 0.0,
|
"quote_spent": 0.0,
|
||||||
"base_bought": 0.0,
|
"base_bought": 0.0,
|
||||||
"so_amount": 0,
|
"so_amount": 0,
|
||||||
"no_of_safety_orders": "",
|
"no_of_safety_orders": 0,
|
||||||
"safety_price_table": [],
|
"safety_price_table": [],
|
||||||
"deal_uptime": 0.0,
|
"deal_uptime": 0.0,
|
||||||
"total_uptime": 0.0,
|
"total_uptime": 0.0,
|
||||||
|
|
|
||||||
|
|
@ -116,6 +116,7 @@ class trader:
|
||||||
self.status.set_take_profit_order(self.broker.get_empty_order())
|
self.status.set_take_profit_order(self.broker.get_empty_order())
|
||||||
self.status.set_safety_orders([])
|
self.status.set_safety_orders([])
|
||||||
self.status.set_safety_orders_filled(0)
|
self.status.set_safety_orders_filled(0)
|
||||||
|
self.status.set_no_of_safety_orders(self.config.get_no_of_safety_orders())
|
||||||
|
|
||||||
#Reloads the market
|
#Reloads the market
|
||||||
new_market_data = self.broker.fetch_market(self.status.get_pair())
|
new_market_data = self.broker.fetch_market(self.status.get_pair())
|
||||||
|
|
@ -1185,7 +1186,7 @@ class trader:
|
||||||
tp_level = self.config.get_tp_table()[-1]
|
tp_level = self.config.get_tp_table()[-1]
|
||||||
tp_level = self.config.get_tp_level()
|
tp_level = self.config.get_tp_level()
|
||||||
elif self.config.get_tp_mode()==3: #Linear percentage table
|
elif self.config.get_tp_mode()==3: #Linear percentage table
|
||||||
profit_table = self.linear_space(self.config.get_tp_level()+0.005,self.config.get_tp_level()-0.005,self.status.get_no_of_safety_orders())
|
profit_table = self.linear_space(self.config.get_tp_level()+0.005,self.config.get_tp_level()-0.005,self.config.get_no_of_safety_orders())
|
||||||
tp_level = profit_table[-1]
|
tp_level = profit_table[-1]
|
||||||
if order_index<len(profit_table): #If more safety orders were added, instead of recalculating the whole table
|
if order_index<len(profit_table): #If more safety orders were added, instead of recalculating the whole table
|
||||||
tp_level = profit_table[order_index] #it just returns the last value. Otherwise, the percentage gets very small.
|
tp_level = profit_table[order_index] #it just returns the last value. Otherwise, the percentage gets very small.
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue