]> git.immae.eu Git - perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git/blobdiff - market.py
Add processors
[perso/Immae/Projets/Cryptomonnaies/Cryptoportfolio/Trader.git] / market.py
index 9122fc07256ce7d30e9e3490912ea54a15c842d7..3381d1e2643e03cb35019cbd14eb29f0f9108cbf 100644 (file)
--- a/market.py
+++ b/market.py
@@ -88,23 +88,22 @@ class Market:
                 "inverted": False,
                 "average": (ticker["bid"] + ticker["ask"] ) / 2,
                 })
+            return ticker
 
         tickers = self.get_tickers()
         if tickers is None:
             try:
-                ticker = self.ccxt.fetch_ticker("{}/{}".format(c1, c2))
-                augment_ticker(ticker)
+                ticker = augment_ticker(self.ccxt.fetch_ticker("{}/{}".format(c1, c2)))
             except ExchangeError:
                 try:
-                    ticker = invert(self.ccxt.fetch_ticker("{}/{}".format(c2, c1)))
+                    ticker = invert(augment_ticker(self.ccxt.fetch_ticker("{}/{}".format(c2, c1))))
                 except ExchangeError:
                     ticker = None
         else:
             if "{}/{}".format(c1, c2) in tickers:
-                ticker = tickers["{}/{}".format(c1, c2)]
-                augment_ticker(ticker)
+                ticker = augment_ticker(tickers["{}/{}".format(c1, c2)])
             elif "{}/{}".format(c2, c1) in tickers:
-                ticker = invert(tickers["{}/{}".format(c2, c1)])
+                ticker = invert(augment_ticker(tickers["{}/{}".format(c2, c1)]))
             else:
                 ticker = None
         return ticker
@@ -129,27 +128,18 @@ class Market:
                     order.trade.update_order(order, tick)
         self.report.log_stage("follow_orders_end")
 
-    def prepare_trades(self, base_currency="BTC", liquidity="medium", compute_value="average"):
-        self.report.log_stage("prepare_trades")
-        values_in_base = self.balances.in_currency(base_currency, compute_value=compute_value)
-        total_base_value = sum(values_in_base.values())
-        new_repartition = self.balances.dispatch_assets(total_base_value, liquidity=liquidity)
-        # Recompute it in case we have new currencies
-        values_in_base = self.balances.in_currency(base_currency, compute_value=compute_value)
-        self.trades.compute_trades(values_in_base, new_repartition)
-
-    def update_trades(self, base_currency="BTC", liquidity="medium", compute_value="average", only=None):
-        self.report.log_stage("update_trades")
-        values_in_base = self.balances.in_currency(base_currency, compute_value=compute_value)
-        total_base_value = sum(values_in_base.values())
-        new_repartition = self.balances.dispatch_assets(total_base_value, liquidity=liquidity)
-        self.trades.compute_trades(values_in_base, new_repartition, only=only)
+    def prepare_trades(self, base_currency="BTC", liquidity="medium",
+            compute_value="average", repartition=None, only=None):
 
-    def prepare_trades_to_sell_all(self, base_currency="BTC", compute_value="average"):
-        self.report.log_stage("prepare_trades_to_sell_all")
-        values_in_base = self.balances.in_currency(base_currency, compute_value=compute_value)
-        total_base_value = sum(values_in_base.values())
-        new_repartition = self.balances.dispatch_assets(total_base_value, repartition={ base_currency: (1, "long") })
-        self.trades.compute_trades(values_in_base, new_repartition)
+        self.report.log_stage("prepare_trades",
+                base_currency=base_currency, liquidity=liquidity,
+                compute_value=compute_value, only=only,
+                repartition=repartition)
 
+        values_in_base = self.balances.in_currency(base_currency,
+                compute_value=compute_value)
+        total_base_value = sum(values_in_base.values())
+        new_repartition = self.balances.dispatch_assets(total_base_value,
+                liquidity=liquidity, repartition=repartition)
+        self.trades.compute_trades(values_in_base, new_repartition, only=only)