]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/commitdiff
Fix selling price for inverted markets
authorIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 22 Jan 2018 00:07:06 +0000 (01:07 +0100)
committerIsmaël Bouya <ismael.bouya@normalesup.org>
Mon, 22 Jan 2018 00:07:06 +0000 (01:07 +0100)
portfolio.py

index 1041df13a76ebad551646fa8e8209b822b89b26d..60b57cad1aaac93fcf46f76a78612509ac97a3a1 100644 (file)
@@ -357,19 +357,28 @@ class Trade:
             return
         ticker = self.value_from.ticker
         inverted = ticker["inverted"]
+        if inverted:
+            ticker = ticker["original"]
+        rate = Trade.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
+
+        # We can use that amount of BTC:
+        delta_in_base = abs(self.value_from - self.value_to)
 
         if not inverted:
-            value_from = self.value_from.linked_to
-            value_to = self.value_to.in_currency(self.currency, self.market, rate=1/self.value_from.rate)
-            delta = abs(value_to - value_from)
+            if self.action == "sell":
+                value_from = self.value_from.linked_to
+                value_to = self.value_to.in_currency(self.currency, self.market, rate=1/self.value_from.rate)
+                delta = abs(value_to - value_from)
+            else:
+                delta = delta_in_base.in_currency(self.currency, self.market, rate=1/rate)
             currency = self.base_currency
         else:
-            ticker = ticker["original"]
-            delta = abs(self.value_to - self.value_from)
+            if self.action == "sell":
+                delta = delta_in_base.in_currency(self.base_currency, self.market, rate=rate)
+            else:
+                delta = delta_in_base
             currency = self.currency
 
-        rate = Trade.compute_value(ticker, self.order_action(inverted), compute_value=compute_value)
-
         self.orders.append(Order(self.order_action(inverted), delta, rate, currency, self.market))
 
     @classmethod