X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=market.py;h=3381d1e2643e03cb35019cbd14eb29f0f9108cbf;hb=9db7d156833cd384baa64b6148b5c646bfcc41f8;hp=9122fc07256ce7d30e9e3490912ea54a15c842d7;hpb=aca4d4372553110ab5d76740ff536de83d5617b2;p=perso%2FImmae%2FProjets%2FCryptomonnaies%2FCryptoportfolio%2FTrader.git diff --git a/market.py b/market.py index 9122fc0..3381d1e 100644 --- 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)