]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - portfolio.py
Don’t close dust remaining orders before end of trade.
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / portfolio.py
index 1067b0b0e50084283efe3c7d61477312ae9336d8..c064249af992bcd46a9f5e41f47cd3c1c5fff724 100644 (file)
@@ -320,8 +320,6 @@ class Trade:
             ticker = ticker["original"]
         rate = Computation.compute_value(ticker, self.order_action(), compute_value=compute_value)
 
-        # FIXME: Dust amount should be removed from there if they werent
-        # honored in other sales
         delta_in_base = abs(self.delta)
         # 9 BTC's worth of move (10 - 1 or 1 - 10 depending on case)
 
@@ -580,12 +578,12 @@ class Order:
         self.fetch_mouvements()
 
         self.mark_disappeared_order()
-
+        self.mark_dust_amount_remaining_order()
         self.mark_finished_order()
-        # FIXME: consider open order with dust remaining as closed
 
-    def dust_amount_remaining(self):
-        return self.remaining_amount() < Amount(self.amount.currency, D("0.001"))
+    def mark_dust_amount_remaining_order(self):
+        if self.market.ccxt.is_dust_trade(self.remaining_amount().value, self.rate):
+            self.status = "closed_dust_remaining"
 
     def remaining_amount(self):
         return self.amount - self.filled_amount()
@@ -650,7 +648,6 @@ class Order:
             return True
 
         similar_trades = self.market.ccxt.fetch_my_trades(symbol=symbol, since=start_timestamp)
-        # FIXME: use set instead of sorted(list(...))
         for order_id in sorted(list(map(lambda x: x["order"], similar_trades))):
             trades = list(filter(lambda x: x["order"] == order_id, similar_trades))
             if any(x["timestamp"] < start_timestamp for x in trades):