"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
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)