+ rate = asset_ticker["bidA"]
+ return ["sell", rate, True]
+ else:
+ if value > 0:
+ rate = asset_ticker["bidA"]
+ return ["sell", rate, False]
+ else:
+ rate = asset_ticker["askA"]
+ return ["buy", rate, False]
+
+def make_order(currency, value, market, base_currency="BTC"):
+ action, rate, inverted = compute_order(currency, value, market, base_currency=base_currency)
+ amount = formatted_price(abs(value))
+ if not inverted:
+ symbol = "{}/{}".format(currency, base_currency)
+ else:
+ symbol = "{}/{}".format(base_currency, currency)
+ return market.create_order(symbol, 'limit', action, amount, price=rate)
+
+def make_orders(current_assets, repartition_pertenthousand, market, base_currency="BTC"):
+ mouvements = compute_moves(
+ current_assets,
+ repartition_pertenthousand,
+ market,
+ base_currency=base_currency)
+
+ results = []
+ for currency, value in sorted(mouvements.items(), key=lambda x: x[1]):
+ # FIXME: wait for sales to finish
+ results.append(make_order(currency, value, market, base_currency=base_currency))
+ return results
+
+def print_assets(assets, indent="", market=None, base_currency="BTC"):
+ if market is not None:
+ format_string = "{}{} {} ({} {})"
+ else:
+ format_string = "{}{} {}"
+ base_currency_price = 0
+
+ for currency, value in assets.items():
+ if market is not None:
+ asset_ticker = get_ticker(currency, base_currency, market)
+ base_currency_price = asset_ticker["bidE"] * value
+ print(format_string.format(
+ indent,
+ formatted_price(value),
+ currency,
+ formatted_price(base_currency_price),
+ base_currency))
+
+def print_orders(current_assets, repartition_pertenthousand, market, base_currency="BTC"):
+ mouvements = compute_moves(
+ current_assets,
+ repartition_pertenthousand,
+ market,
+ no_fees=False,
+ base_currency=base_currency)
+
+ for currency, [value, fee] in mouvements.items():
+ action, rate, inverted = compute_order(