Verify if trade is closed before acting on Stoploss_on_exchange
This commit is contained in:
parent
ea5ac1efb5
commit
70b9bd9c0e
@ -689,9 +689,10 @@ class FreqtradeBot:
|
|||||||
self._notify_sell(trade, "stoploss")
|
self._notify_sell(trade, "stoploss")
|
||||||
return True
|
return True
|
||||||
|
|
||||||
if trade.open_order_id:
|
if trade.open_order_id or not trade.is_open:
|
||||||
# Trade has an open Buy or Sell order, Stoploss-handling can't happen in this case
|
# Trade has an open Buy or Sell order, Stoploss-handling can't happen in this case
|
||||||
# as the Amount on the exchange is tied up in another trade.
|
# as the Amount on the exchange is tied up in another trade.
|
||||||
|
# The trade can be closed already (sell-order fill confirmation came in this iteration)
|
||||||
return False
|
return False
|
||||||
|
|
||||||
# If buy order is fulfilled but there is no stoploss, we add a stoploss on exchange
|
# If buy order is fulfilled but there is no stoploss, we add a stoploss on exchange
|
||||||
|
@ -1127,6 +1127,7 @@ def test_handle_stoploss_on_exchange(mocker, default_conf, fee, caplog,
|
|||||||
'freqtrade.exchange.Exchange.stoploss_limit',
|
'freqtrade.exchange.Exchange.stoploss_limit',
|
||||||
side_effect=DependencyException()
|
side_effect=DependencyException()
|
||||||
)
|
)
|
||||||
|
trade.is_open = True
|
||||||
freqtrade.handle_stoploss_on_exchange(trade)
|
freqtrade.handle_stoploss_on_exchange(trade)
|
||||||
assert log_has('Unable to place a stoploss order on exchange.', caplog)
|
assert log_has('Unable to place a stoploss order on exchange.', caplog)
|
||||||
assert trade.stoploss_order_id is None
|
assert trade.stoploss_order_id is None
|
||||||
|
Loading…
Reference in New Issue
Block a user