Skip to content
This repository was archived by the owner on Oct 30, 2023. It is now read-only.

Commit 787d106

Browse files
committed
Add TotalAccountBalanceExample
1 parent 9e6cfca commit 787d106

2 files changed

Lines changed: 86 additions & 0 deletions

File tree

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package com.binance.api.client.constant;
2+
3+
4+
import java.util.Arrays;
5+
import java.util.Collections;
6+
import java.util.List;
7+
8+
public final class Util {
9+
10+
public static final List<String> FIAT_CURRENCY = Collections.unmodifiableList(Arrays.asList("USDT", "BUSD", "PAX", "TUSD", "USDC", "NGN", "RUB", "USDS"));
11+
12+
public static final String BTC_TICKER = "BTC";
13+
14+
private Util() {
15+
throw new java.lang.UnsupportedOperationException("This is a utility class and cannot be instantiated");
16+
}
17+
18+
public static boolean isFiatCurrency(String symbol) {
19+
for (String fiat : FIAT_CURRENCY) {
20+
if (symbol.equals(fiat)) return true;
21+
}
22+
return false;
23+
}
24+
}
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
package com.binance.api.examples;
2+
3+
import com.binance.api.client.BinanceApiClientFactory;
4+
import com.binance.api.client.BinanceApiRestClient;
5+
import com.binance.api.client.constant.Util;
6+
import com.binance.api.client.domain.account.Account;
7+
import com.binance.api.client.domain.account.AssetBalance;
8+
9+
10+
public class TotalAccountBalanceExample {
11+
12+
13+
public static void main(String[] args) {
14+
BinanceApiClientFactory factory = BinanceApiClientFactory.newInstance("YOUR_API_KEY", "YOUR_SECRET");
15+
BinanceApiRestClient client = factory.newRestClient();
16+
17+
// Get account balances
18+
Account account = client.getAccount(60_000L, System.currentTimeMillis());
19+
20+
// Get total account balance in BTC (spot only)
21+
TotalAccountBalanceExample accountBalance = new TotalAccountBalanceExample();
22+
double totalBalanceInBTC = accountBalance.getTotalAccountBalance(client,account);
23+
// Get total account balance in USDT (spot only)
24+
double totalBalanceInUSDT = totalBalanceInBTC * Double.parseDouble(client.getPrice("BTCUSDT").getPrice());
25+
26+
System.out.println(totalBalanceInBTC);
27+
System.out.println(totalBalanceInUSDT);
28+
29+
30+
31+
32+
}
33+
34+
// Get total account balance in BTC (spot only)
35+
public double getTotalAccountBalance(BinanceApiRestClient client, Account account) {
36+
double totalBalance = 0;
37+
for (AssetBalance balance : account.getBalances()) {
38+
double free = Double.parseDouble(balance.getFree());
39+
double locked = Double.parseDouble(balance.getLocked());
40+
String ticker = balance.getAsset() + Util.BTC_TICKER;
41+
String tickerRev = Util.BTC_TICKER + balance.getAsset();
42+
if (free + locked != 0) {
43+
if (Util.isFiatCurrency(balance.getAsset())) {
44+
double price = Double.parseDouble(client.getPrice(tickerRev).getPrice());
45+
double amount = (free + locked) / price;
46+
totalBalance += amount;
47+
} else {
48+
double price = Double.parseDouble(client.getPrice(ticker).getPrice());
49+
double amount = price * (free + locked);
50+
totalBalance += amount;
51+
}
52+
53+
}
54+
}
55+
56+
return totalBalance;
57+
58+
}
59+
60+
61+
62+
}

0 commit comments

Comments
 (0)