@property
def finished(self):
- return self.status == "closed" or self.status == "canceled" or self.status == "error"
+ return self.status.startswith("closed") or self.status == "canceled" or self.status == "error"
@retry(InsufficientFunds)
def run(self):
# other states are "closed" and "canceled"
if not self.finished:
self.fetch()
- if self.finished:
- self.mark_finished_order()
return self.status
def mark_finished_order(self):
- if self.market.debug:
+ if self.status.startswith("closed") and self.market.debug:
self.market.report.log_debug_action("Mark {} as finished".format(self))
return
- if self.status == "closed":
+ if self.status.startswith("closed"):
if self.trade_type == "short" and self.action == "buy" and self.close_if_possible:
self.market.ccxt.close_margin_position(self.amount.currency, self.base_currency)
self.fetch_mouvements()
+ self.mark_finished_order()
# FIXME: consider open order with dust remaining as closed
def dust_amount_remaining(self):