use of org.knowm.xchange.dto.account.Balance in project XChange by knowm.
the class PoloniexAdapters method adaptPoloniexBalances.
public static List<Balance> adaptPoloniexBalances(HashMap<String, PoloniexBalance> poloniexBalances) {
List<Balance> balances = new ArrayList<>();
for (Map.Entry<String, PoloniexBalance> item : poloniexBalances.entrySet()) {
Currency currency = Currency.getInstance(item.getKey());
balances.add(new Balance(currency, null, item.getValue().getAvailable(), item.getValue().getOnOrders()));
}
return balances;
}
use of org.knowm.xchange.dto.account.Balance in project XChange by knowm.
the class PaymiumAdapters method adaptWallet.
public static Wallet adaptWallet(PaymiumBalance paymiumBalances) {
List<Balance> wallets = new ArrayList<>();
wallets.add(new Balance(Currency.BTC, paymiumBalances.getBalanceBtc(), paymiumBalances.getBalanceBtc().subtract(paymiumBalances.getLockedBtc()), paymiumBalances.getLockedBtc()));
wallets.add(new Balance(Currency.EUR, paymiumBalances.getBalanceEur(), paymiumBalances.getBalanceEur().subtract(paymiumBalances.getLockedEur()), paymiumBalances.getLockedEur()));
return Wallet.Builder.from(wallets).build();
}
use of org.knowm.xchange.dto.account.Balance in project XChange by knowm.
the class QuoineAdapters method adaptWallet.
public static Wallet adaptWallet(QuoineAccountInfo quoineWallet) {
List<Balance> balances = new ArrayList<>();
// Adapt to XChange DTOs
Balance btcBalance = new Balance(Currency.getInstance(quoineWallet.getBitcoinAccount().getCurrency()), quoineWallet.getBitcoinAccount().getBalance(), quoineWallet.getBitcoinAccount().getFreeBalance());
balances.add(btcBalance);
for (FiatAccount fiatAccount : quoineWallet.getFiatAccounts()) {
Balance fiatBalance = new Balance(Currency.getInstance(fiatAccount.getCurrency()), fiatAccount.getBalance(), fiatAccount.getBalance());
balances.add(fiatBalance);
}
return Wallet.Builder.from(balances).build();
}
use of org.knowm.xchange.dto.account.Balance in project cassandre-trading-bot by cassandre-tech.
the class UserServiceDryModeAOP method addToBalance.
/**
* Update balance of trade account (method called by trade service).
*
* @param strategy strategy
* @param currency currency
* @param amount amount
*/
public void addToBalance(final GenericCassandreStrategy strategy, final Currency currency, final BigDecimal amount) {
final Optional<AccountDTO> tradeAccount = strategy.getTradeAccount();
if (tradeAccount.isEmpty()) {
logger.error("Trading account not found!");
} else {
// We build a new account information from what we saved.
Collection<Wallet> wallets = new LinkedHashSet<>();
// We retreat all the wallets we have.
accountInfo.getWallets().forEach((name, wallet) -> {
HashMap<Currency, Balance> balances = new LinkedHashMap<>();
// For each balance, we add it if nothing changed or, if on trading account, and we need to change the amount,
// Then we do it.
wallet.getBalances().forEach((balanceCurrency, balance) -> {
if (name.equals(tradeAccount.get().getName()) && balanceCurrency.equals(currency)) {
// If we are on the account and currency to update, we calculate the new value.
balances.put(balanceCurrency, new Balance(balanceCurrency, balance.getTotal().add(amount)));
} else {
// Else we keep the same value.
balances.put(balanceCurrency, balance);
}
});
// amounts, then we create a new balance.
if (name.equals(tradeAccount.get().getName()) && balances.get(currency) == null) {
balances.put(currency, new Balance(currency, amount));
}
// We add the wallet.
wallets.add(new Wallet(name, name, balances.values(), Collections.emptySet(), ZERO, ZERO));
});
// Creates the account info.
accountInfo = new AccountInfo(USER_ID, wallets);
// Updates all strategies.
final UserDTO userDTO = ACCOUNT_MAPPER.mapToUserDTO(accountInfo);
applicationContext.getBeansWithAnnotation(CassandreStrategy.class).values().stream().map(o -> (CassandreStrategyInterface) o).forEach(cassandreStrategyInterface -> cassandreStrategyInterface.initializeAccounts(userDTO.getAccounts()));
}
}
Aggregations