aboutsummaryrefslogtreecommitdiff
path: root/portfolio.py
diff options
context:
space:
mode:
authorIsmaël Bouya <ismael.bouya@normalesup.org>2018-03-12 01:55:46 +0100
committerIsmaël Bouya <ismael.bouya@normalesup.org>2018-03-12 02:06:17 +0100
commitd8deb0e9a6b7b2805e61dc19a287d5474c271cc5 (patch)
treef56ae35251cfeb60c563c023f7f48e59f8dbee7e /portfolio.py
parent186f7d816a6bfc4fbf64027c3d7ecea10b97db38 (diff)
downloadTrader-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.py9
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):