Fix and improve process_maybe_execute_sells()

This commit is contained in:
hroff-1902 2019-10-02 18:38:00 +03:00
parent 15aae8a58c
commit 89729aefe8

View File

@ -446,25 +446,26 @@ class FreqtradeBot:
"""
Tries to execute sell trades in a safe way
"""
result = False
for trade in trades:
try:
self.update_trade_state(trade)
if trade.is_open:
result = False
if self.strategy.order_types.get('stoploss_on_exchange'):
result = self.handle_stoploss_on_exchange(trade)
elif trade.open_order_id is None:
if (self.strategy.order_types.get('stoploss_on_exchange') and
self.handle_stoploss_on_exchange(trade)):
result = True
continue
# Check if we can sell our current pair
result = self.handle_trade(trade)
if trade.open_order_id is None and self.handle_trade(trade):
result = True
except DependencyException as exception:
logger.warning('Unable to sell trade: %s', exception)
# Updating wallets if any trade occured
if result:
self.wallets.update()
except DependencyException as exception:
logger.warning('Unable to sell trade: %s', exception)
def get_real_amount(self, trade: Trade, order: Dict) -> float:
"""
Get real amount for the trade
@ -569,7 +570,7 @@ class FreqtradeBot:
:return: True if trade has been sold, False otherwise
"""
if not trade.is_open:
raise ValueError(f'Attempt to handle closed trade: {trade}')
raise DependencyException(f'Attempt to handle closed trade: {trade}')
logger.debug('Handling %s ...', trade)