def move_balances(market, debug=False):
needed_in_margin = {}
+ for currency in BalanceStore.all:
+ if BalanceStore.all[currency].margin_free != 0:
+ needed_in_margin[currency] = 0
for trade in TradeStore.all:
+ if trade.value_to.currency not in needed_in_margin:
+ needed_in_margin[trade.value_to.currency] = 0
if trade.trade_type == "short":
- if trade.value_to.currency not in needed_in_margin:
- needed_in_margin[trade.value_to.currency] = 0
needed_in_margin[trade.value_to.currency] += abs(trade.value_to)
for currency, needed in needed_in_margin.items():
current_balance = BalanceStore.all[currency].margin_free
portfolio.TradeStore.all = [trade1, trade2, trade3]
balance1 = portfolio.Balance("BTC", { "margin_free": "0" })
balance2 = portfolio.Balance("USDT", { "margin_free": "100" })
- portfolio.BalanceStore.all = {"BTC": balance1, "USDT": balance2}
+ balance3 = portfolio.Balance("ETC", { "margin_free": "10" })
+ portfolio.BalanceStore.all = {"BTC": balance1, "USDT": balance2, "ETC": balance3}
market = mock.Mock()
else:
market.transfer_balance.assert_any_call("BTC", 3, "exchange", "margin")
market.transfer_balance.assert_any_call("USDT", 50, "margin", "exchange")
+ market.transfer_balance.assert_any_call("ETC", 10, "margin", "exchange")
@mock.patch.object(helper, "prepare_trades")
@mock.patch.object(portfolio.TradeStore, "prepare_orders")