package org.knowm.xchange.examples.independentreserve.trade; import java.io.IOException; import java.math.BigDecimal; import java.util.concurrent.TimeUnit; import org.knowm.xchange.Exchange; import org.knowm.xchange.currency.CurrencyPair; import org.knowm.xchange.dto.Order; import org.knowm.xchange.dto.trade.LimitOrder; import org.knowm.xchange.dto.trade.OpenOrders; import org.knowm.xchange.dto.trade.UserTrades; import org.knowm.xchange.examples.independentreserve.IndependentReserveDemoUtils; import org.knowm.xchange.service.trade.TradeService; /** * Author: Aleksey Baryshnikov Date: 8/31/2016. The logic should be refactored to define supported primary and secondary currencies. Now I had to * manually add ETH everywhere BTC was hardcoded. But this will still fail if you traded NZD or AUD currencies even for Bitcoin. */ public class IndependentReserveTradeDemoEth { public static void main(String[] args) throws IOException, InterruptedException { Exchange independentReserve = IndependentReserveDemoUtils.createExchange(); TradeService tradeService = independentReserve.getTradeService(); generic(tradeService); } private static void generic(TradeService tradeService) throws IOException, InterruptedException { printOpenOrders(tradeService); // place a limit buy order LimitOrder limitOrder = new LimitOrder((Order.OrderType.ASK), new BigDecimal(".01"), CurrencyPair.ETH_USD, "", null, new BigDecimal("1000.00")); String limitOrderReturnValue = tradeService.placeLimitOrder(limitOrder); System.out.println("Limit Order return value: " + limitOrderReturnValue); printOpenOrders(tradeService); // Cancel the added order boolean cancelResult = tradeService.cancelOrder(limitOrderReturnValue); System.out.println("Canceling returned " + cancelResult); printOpenOrders(tradeService); UserTrades tradeHistory = tradeService.getTradeHistory(tradeService.createTradeHistoryParams()); System.out.println("Trade history: " + tradeHistory.toString()); } private static void printOpenOrders(TradeService tradeService) throws IOException, InterruptedException { // IR API caches data for some time, so we can get the same set of orders as we saw before TimeUnit.SECONDS.sleep(1); OpenOrders openOrders = tradeService.getOpenOrders(); System.out.println("Open Orders: " + openOrders.toString()); } }