]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - portfolio.py
Add mouvement representation
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / portfolio.py
index 482d0da5d050fb466589f584ea617c61cd6e94df..c3809f0533db32cc3b62ccbd6c64a5ff5c66e651 100644 (file)
@@ -345,6 +345,7 @@ class Trade:
             ticker = ticker["original"]
         rate = Computation.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
 
+        #TODO: store when the order is considered filled
         # FIXME: Dust amount should be removed from there if they werent
         # honored in other sales
         delta_in_base = abs(self.value_from - self.value_to)
@@ -424,6 +425,8 @@ class Trade:
         print(self)
         for order in self.orders:
             print("\t", order, sep="")
+            for mouvement in order.mouvements:
+                print("\t\t", mouvement, sep="")
 
 class Order:
     def __init__(self, action, amount, rate, base_currency, trade_type, market,
@@ -584,6 +587,19 @@ class Mouvement:
         # rate * total = total_in_base
         self.total_in_base = Amount(base_currency, hash_.get("total", 0))
 
+    def __repr__(self):
+        if self.fee_rate > 0:
+            fee_rate = " fee: {}%".format(self.fee_rate * 100)
+        else:
+            fee_rate = ""
+        if self.date is None:
+            date = "No date"
+        else:
+            date = self.date
+        return "Mouvement({} ; {} {} ({}){})".format(
+                date, self.action, self.total, self.total_in_base,
+                fee_rate)
+
 if __name__ == '__main__': # pragma: no cover
     from market import market
     h.print_orders(market)