diff options
author | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-05-01 17:35:55 +0200 |
---|---|---|
committer | Ismaël Bouya <ismael.bouya@normalesup.org> | 2018-05-01 17:35:55 +0200 |
commit | 9eb0de20f243bb78de0bf9118289f01f1ea1f77c (patch) | |
tree | 762d3a59d666bf6e1d4d1ea5901c31ab06f7e88e /portfolio.py | |
parent | 6cffa4af8b5a04b17ffd95738b8e843c4605d4e7 (diff) | |
parent | 2b1ee8f4d54fa1672510141a71a5817120ac031c (diff) | |
download | Trader-9eb0de20f243bb78de0bf9118289f01f1ea1f77c.tar.gz Trader-9eb0de20f243bb78de0bf9118289f01f1ea1f77c.tar.zst Trader-9eb0de20f243bb78de0bf9118289f01f1ea1f77c.zip |
Merge branch 'dev'v1.5
Diffstat (limited to 'portfolio.py')
-rw-r--r-- | portfolio.py | 13 |
1 files changed, 5 insertions, 8 deletions
diff --git a/portfolio.py b/portfolio.py index 1067b0b..d8a5465 100644 --- a/portfolio.py +++ b/portfolio.py | |||
@@ -320,8 +320,6 @@ class Trade: | |||
320 | ticker = ticker["original"] | 320 | ticker = ticker["original"] |
321 | rate = Computation.compute_value(ticker, self.order_action(), compute_value=compute_value) | 321 | rate = Computation.compute_value(ticker, self.order_action(), compute_value=compute_value) |
322 | 322 | ||
323 | # FIXME: Dust amount should be removed from there if they werent | ||
324 | # honored in other sales | ||
325 | delta_in_base = abs(self.delta) | 323 | delta_in_base = abs(self.delta) |
326 | # 9 BTC's worth of move (10 - 1 or 1 - 10 depending on case) | 324 | # 9 BTC's worth of move (10 - 1 or 1 - 10 depending on case) |
327 | 325 | ||
@@ -580,12 +578,12 @@ class Order: | |||
580 | self.fetch_mouvements() | 578 | self.fetch_mouvements() |
581 | 579 | ||
582 | self.mark_disappeared_order() | 580 | self.mark_disappeared_order() |
583 | 581 | self.mark_dust_amount_remaining_order() | |
584 | self.mark_finished_order() | 582 | self.mark_finished_order() |
585 | # FIXME: consider open order with dust remaining as closed | ||
586 | 583 | ||
587 | def dust_amount_remaining(self): | 584 | def mark_dust_amount_remaining_order(self): |
588 | return self.remaining_amount() < Amount(self.amount.currency, D("0.001")) | 585 | if self.market.ccxt.is_dust_trade(self.remaining_amount().value, self.rate): |
586 | self.status = "closed_dust_remaining" | ||
589 | 587 | ||
590 | def remaining_amount(self): | 588 | def remaining_amount(self): |
591 | return self.amount - self.filled_amount() | 589 | return self.amount - self.filled_amount() |
@@ -618,7 +616,7 @@ class Order: | |||
618 | self.market.report.log_debug_action("Mark {} as cancelled".format(self)) | 616 | self.market.report.log_debug_action("Mark {} as cancelled".format(self)) |
619 | self.status = "canceled" | 617 | self.status = "canceled" |
620 | return | 618 | return |
621 | if self.open and self.id is not None: | 619 | if (self.status == "closed_dust_remaining" or self.open) and self.id is not None: |
622 | try: | 620 | try: |
623 | self.market.ccxt.cancel_order(self.id) | 621 | self.market.ccxt.cancel_order(self.id) |
624 | except OrderNotFound as e: # Closed inbetween | 622 | except OrderNotFound as e: # Closed inbetween |
@@ -650,7 +648,6 @@ class Order: | |||
650 | return True | 648 | return True |
651 | 649 | ||
652 | similar_trades = self.market.ccxt.fetch_my_trades(symbol=symbol, since=start_timestamp) | 650 | similar_trades = self.market.ccxt.fetch_my_trades(symbol=symbol, since=start_timestamp) |
653 | # FIXME: use set instead of sorted(list(...)) | ||
654 | for order_id in sorted(list(map(lambda x: x["order"], similar_trades))): | 651 | for order_id in sorted(list(map(lambda x: x["order"], similar_trades))): |
655 | trades = list(filter(lambda x: x["order"] == order_id, similar_trades)) | 652 | trades = list(filter(lambda x: x["order"] == order_id, similar_trades)) |
656 | if any(x["timestamp"] < start_timestamp for x in trades): | 653 | if any(x["timestamp"] < start_timestamp for x in trades): |