All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.knowm.xchange.examples.binance.trade.BinanceTradeDemo Maven / Gradle / Ivy

package org.knowm.xchange.examples.binance.trade;

import java.io.IOException;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import org.knowm.xchange.Exchange;
import org.knowm.xchange.binance.BinanceExchange;
import org.knowm.xchange.binance.service.BinanceTradeService;
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.examples.binance.BinanceDemoUtils;
import org.knowm.xchange.instrument.Instrument;
import org.knowm.xchange.service.trade.TradeService;
import org.knowm.xchange.service.trade.params.*;
import org.knowm.xchange.service.trade.params.orders.*;
import org.knowm.xchange.utils.StreamUtils;

public class BinanceTradeDemo {

  public static void main(String[] args) throws IOException {

    Exchange exchange = BinanceDemoUtils.createExchange();

    generic(exchange);
    raw((BinanceExchange) exchange);
  }

  public static void generic(Exchange exchange) throws IOException {

    CurrencyPair pair = CurrencyPair.EOS_ETH;
    TradeService tradeService = exchange.getTradeService();

    // Get open orders
    OpenOrders orders = tradeService.getOpenOrders(new DefaultOpenOrdersParamCurrencyPair(pair));
    LimitOrder order = orders.getOpenOrders().stream().collect(StreamUtils.singletonCollector());
    if (order != null) {
      System.out.println(order);
    }

    // Get orders using params
    if (order != null) {
      Class queryParamClass = exchange.getTradeService().getRequiredOrderQueryParamClass();
      OrderQueryParams queryParams = new DefaultQueryOrderParam(order.getId());
      if (queryParamClass == OrderQueryParamCurrencyPair.class) {
        queryParams = new DefaultQueryOrderParamCurrencyPair(pair, order.getId());
      } else if (queryParamClass == OrderQueryParamInstrument.class) {
        Instrument pairAsInstrument = pair;
        queryParams = new DefaultQueryOrderParamInstrument(pairAsInstrument, order.getId());
      }
      Collection ordersWithId = exchange.getTradeService().getOrder(queryParams);
      if (ordersWithId != null) {
        System.out.println(ordersWithId);
      }
    }

    // Cancel order
    if (order != null) {
      List classList =
          Arrays.asList(exchange.getTradeService().getRequiredCancelOrderParamClasses());

      CancelOrderParams cancelParam = new DefaultCancelOrderParamId(order.getId());
      if (classList.contains(CancelOrderByCurrencyPair.class)
          && classList.contains(CancelOrderByIdParams.class)) {
        cancelParam = new DefaultCancelOrderByCurrencyPairAndIdParams(pair, order.getId());
      }

      exchange.getTradeService().cancelOrder(cancelParam);
    }
  }

  public static void raw(BinanceExchange exchange) throws IOException {

    CurrencyPair pair = CurrencyPair.EOS_ETH;
    BinanceTradeService tradeService = (BinanceTradeService) exchange.getTradeService();
    // Get open orders
    OpenOrders orders = tradeService.getOpenOrders(pair);
    LimitOrder order = orders.getOpenOrders().stream().collect(StreamUtils.singletonCollector());
    if (order != null) {
      System.out.println(order);
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy