X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=portfolio.py;fp=portfolio.py;h=ed50b570ea2c31d310c6a3d271f37f7f413c43c0;hb=d8deb0e9a6b7b2805e61dc19a287d5474c271cc5;hp=65fdc6cf1a7b5bbb52bf60630112d5fb4e1b7243;hpb=186f7d816a6bfc4fbf64027c3d7ecea10b97db38;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/portfolio.py b/portfolio.py index 65fdc6c..ed50b57 100644 --- a/portfolio.py +++ b/portfolio.py @@ -550,7 +550,7 @@ class Order: @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): @@ -594,15 +594,13 @@ class Order: # 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) @@ -621,6 +619,7 @@ class Order: self.fetch_mouvements() + self.mark_finished_order() # FIXME: consider open order with dust remaining as closed def dust_amount_remaining(self):