diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-03-12 01:55:46 +0100 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-03-12 02:06:17 +0100 |
commit | d8deb0e9a6b7b2805e61dc19a287d5474c271cc5 (patch) | |
tree | f56ae35251cfeb60c563c023f7f48e59f8dbee7e /portfolio.py | |
parent | 186f7d816a6bfc4fbf64027c3d7ecea10b97db38 (diff) | |
download | Trader-d8deb0e9a6b7b2805e61dc19a287d5474c271cc5.tar.gz Trader-d8deb0e9a6b7b2805e61dc19a287d5474c271cc5.tar.zst Trader-d8deb0e9a6b7b2805e61dc19a287d5474c271cc5.zip |
Fix mark finished order not alway called when necessary
Diffstat (limited to 'portfolio.py')
-rw-r--r-- | portfolio.py | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/portfolio.py b/portfolio.py index 65fdc6c..ed50b57 100644 --- a/portfolio.py +++ b/portfolio.py | |||
@@ -550,7 +550,7 @@ class Order: | |||
550 | 550 | ||
551 | @property | 551 | @property |
552 | def finished(self): | 552 | def finished(self): |
553 | return self.status == "closed" or self.status == "canceled" or self.status == "error" | 553 | return self.status.startswith("closed") or self.status == "canceled" or self.status == "error" |
554 | 554 | ||
555 | @retry(InsufficientFunds) | 555 | @retry(InsufficientFunds) |
556 | def run(self): | 556 | def run(self): |
@@ -594,15 +594,13 @@ class Order: | |||
594 | # other states are "closed" and "canceled" | 594 | # other states are "closed" and "canceled" |
595 | if not self.finished: | 595 | if not self.finished: |
596 | self.fetch() | 596 | self.fetch() |
597 | if self.finished: | ||
598 | self.mark_finished_order() | ||
599 | return self.status | 597 | return self.status |
600 | 598 | ||
601 | def mark_finished_order(self): | 599 | def mark_finished_order(self): |
602 | if self.market.debug: | 600 | if self.status.startswith("closed") and self.market.debug: |
603 | self.market.report.log_debug_action("Mark {} as finished".format(self)) | 601 | self.market.report.log_debug_action("Mark {} as finished".format(self)) |
604 | return | 602 | return |
605 | if self.status == "closed": | 603 | if self.status.startswith("closed"): |
606 | if self.trade_type == "short" and self.action == "buy" and self.close_if_possible: | 604 | if self.trade_type == "short" and self.action == "buy" and self.close_if_possible: |
607 | self.market.ccxt.close_margin_position(self.amount.currency, self.base_currency) | 605 | self.market.ccxt.close_margin_position(self.amount.currency, self.base_currency) |
608 | 606 | ||
@@ -621,6 +619,7 @@ class Order: | |||
621 | 619 | ||
622 | self.fetch_mouvements() | 620 | self.fetch_mouvements() |
623 | 621 | ||
622 | self.mark_finished_order() | ||
624 | # FIXME: consider open order with dust remaining as closed | 623 | # FIXME: consider open order with dust remaining as closed |
625 | 624 | ||
626 | def dust_amount_remaining(self): | 625 | def dust_amount_remaining(self): |