Java Examples
ListExchanges
ListExchanges — CCXT Java code example.
package examples;
import io.github.ccxt.Exchange;
import java.util.Map;
/**
* Show details for an exchange: name, version, markets, supported features.
* Uses Exchange.dynamicallyCreateInstance for the generic/dynamic pattern.
*
* Usage:
* cd java && ./gradlew :examples:run -PmainClass=examples.ListExchanges
* cd java && ./gradlew :examples:run -PmainClass=examples.ListExchanges --args="bybit"
*/
public class ListExchanges {
@SuppressWarnings("unchecked")
public static void main(String[] args) {
String exchangeId = args.length > 0 ? args[0] : "binance";
System.out.println("--- " + exchangeId + " details ---\n");
Exchange exchange = Exchange.dynamicallyCreateInstance(exchangeId, null);
System.out.println("ID: " + exchange.id);
System.out.println("Version: " + exchange.version);
System.out.println("Rate limit: " + (int) exchange.rateLimit + " ms");
// Load and summarize markets (untyped: returns CompletableFuture<Object>)
Map<String, Object> markets = (Map<String, Object>) exchange.loadMarkets(false).join();
long spotCount = markets.values().stream()
.filter(m -> Boolean.TRUE.equals(((Map<String, Object>) m).get("spot"))).count();
long futuresCount = markets.values().stream()
.filter(m -> "swap".equals(((Map<String, Object>) m).get("type"))).count();
long optionCount = markets.values().stream()
.filter(m -> "option".equals(((Map<String, Object>) m).get("type"))).count();
System.out.println("Markets: " + markets.size() + " total");
System.out.println(" Spot: " + spotCount);
System.out.println(" Futures: " + futuresCount);
System.out.println(" Options: " + optionCount);
// Show feature support
System.out.println("\nSupported features:");
Map<String, Object> has = (Map<String, Object>) exchange.has;
String[] features = {"fetchTicker", "fetchOrderBook", "fetchOHLCV", "fetchTrades",
"fetchBalance", "createOrder", "cancelOrder", "fetchOpenOrders",
"fetchMyTrades", "watchTicker", "watchOrderBook", "watchTrades"};
for (String f : features) {
Object val = has.get(f);
String status;
if (Boolean.TRUE.equals(val)) status = "YES";
else if (val instanceof String s) status = s; // e.g. "emulated"
else status = "no";
System.out.printf(" %-20s %s%n", f, status);
}
}
}