public static Order adaptLiquiOrderInfo(final LiquiOrderInfo orderInfo) { final OrderType type = adaptOrderType(orderInfo.getType()); final Optional<BigDecimal> originalAmount = Optional.ofNullable(orderInfo.getStartAmount()); final Optional<BigDecimal> cumulativeAmount = originalAmount.map(startAmount -> startAmount.subtract(orderInfo.getAmount())); final Date timestamp = new Date(orderInfo.getTimestampCreated() * 1000L); final Order.OrderStatus status = adaptOrderStatus(orderInfo.getStatus()); return new LimitOrder.Builder(type, orderInfo.getPair()) .originalAmount(originalAmount.orElse(orderInfo.getAmount())) .timestamp(timestamp) .limitPrice(orderInfo.getRate()) .cumulativeAmount(cumulativeAmount.orElse(null)) .orderStatus(status) .build(); }
public static OrderBook adaptBleutradeOrderBook( BleutradeOrderBook bleutradeOrderBook, CurrencyPair currencyPair) { List<BleutradeLevel> bleutradeAsks = bleutradeOrderBook.getSell(); List<BleutradeLevel> bleutradeBids = bleutradeOrderBook.getBuy(); List<LimitOrder> asks = new ArrayList<>(); List<LimitOrder> bids = new ArrayList<>(); for (BleutradeLevel ask : bleutradeAsks) { LimitOrder.Builder builder = new LimitOrder.Builder(OrderType.ASK, currencyPair); builder.limitPrice(ask.getRate()); builder.originalAmount(ask.getQuantity()); builder.cumulativeAmount(BigDecimal.ZERO); asks.add(builder.build()); } for (BleutradeLevel bid : bleutradeBids) { LimitOrder.Builder builder = new LimitOrder.Builder(OrderType.BID, currencyPair); builder.limitPrice(bid.getRate()); builder.originalAmount(bid.getQuantity()); builder.cumulativeAmount(BigDecimal.ZERO); bids.add(builder.build()); } return new OrderBook(null, asks, bids); }
public static OpenOrders adaptOpenOrders( CurrencyPair currencyPair, Bl3pOpenOrders.Bl3pOpenOrder[] bl3pOrders) { List<LimitOrder> result = new ArrayList<>(bl3pOrders.length); for (Bl3pOpenOrders.Bl3pOpenOrder bl3pOrder : bl3pOrders) { Order.OrderType orderType = Bl3pUtils.fromBl3pOrderType(bl3pOrder.getStatus()); BigDecimal limitPrice = bl3pOrder.getPrice().value; BigDecimal originalAmount = bl3pOrder.getAmountFunds().value; BigDecimal executedAmount = bl3pOrder.getAmountExecuted().value; BigDecimal remainingAmount = originalAmount.subtract(executedAmount); result.add( new LimitOrder.Builder(orderType, currencyPair) .cumulativeAmount(executedAmount) .id("" + bl3pOrder.getOrderId()) .limitPrice(limitPrice) .originalAmount(originalAmount) .remainingAmount(remainingAmount) .timestamp(bl3pOrder.getTimestamp()) .build()); } return new OpenOrders(result); }
public static OpenOrders adaptOpenOrdersFromChildOrderResults( List<BitflyerQueryChildOrderResult> queryResults) { return new OpenOrders( queryResults.stream() .map( result -> new LimitOrder.Builder( adaptSide(result.getSide()), new CurrencyPair(result.getProductCode().replace("_", "/"))) .id(result.getChildOrderId()) .orderStatus(adaptOrderStatus(result.getChildOrderState())) .timestamp(BitflyerUtils.parseShortDate(result.getChildOrderDate())) .limitPrice(result.getPrice()) .averagePrice(result.getAveragePrice()) .originalAmount(result.getSize()) .remainingAmount(result.getOutstandingSize()) .cumulativeAmount(result.getExecutedSize()) .fee(result.getTotalCommission()) .build()) .collect(Collectors.toList())); }
public static Builder from(Order order) { Builder builder = (Builder) new Builder(order.getType(), order.getCurrencyPair()) .originalAmount(order.getOriginalAmount()) .cumulativeAmount(order.getCumulativeAmount()) .timestamp(order.getTimestamp()) .id(order.getId()) .flags(order.getOrderFlags()) .orderStatus(order.getStatus()) .averagePrice(order.getAveragePrice()); if (order instanceof LimitOrder) { LimitOrder limitOrder = (LimitOrder) order; builder.limitPrice(limitOrder.getLimitPrice()); } return builder; }
public static LimitOrder adaptPoloniexOpenOrder( PoloniexOpenOrder openOrder, CurrencyPair currencyPair) { OrderType type = openOrder.getType().equals("buy") ? OrderType.BID : OrderType.ASK; Date timestamp = PoloniexUtils.stringToDate(openOrder.getDate()); return new LimitOrder.Builder(type, currencyPair) .limitPrice(openOrder.getRate()) .originalAmount(openOrder.getStartingAmount()) .cumulativeAmount(openOrder.getStartingAmount().subtract(openOrder.getAmount())) .id(openOrder.getOrderNumber()) .timestamp(timestamp) .build(); }
public static OpenOrders adaptOpenOrdersFromChildOrderResults( List<BitflyerQueryChildOrderResult> queryResults) { return new OpenOrders( queryResults .stream() .map( result -> new LimitOrder.Builder( adaptSide(result.getSide()), new CurrencyPair(result.getProductCode().replace("_", "/"))) .id(result.getChildOrderId()) .orderStatus(adaptOrderStatus(result.getChildOrderState())) .timestamp(BitflyerUtils.parseShortDate(result.getChildOrderDate())) .limitPrice(result.getPrice()) .averagePrice(result.getAveragePrice()) .originalAmount(result.getSize()) .remainingAmount(result.getOutstandingSize()) .cumulativeAmount(result.getExecutedSize()) .fee(result.getTotalCommission()) .build()) .collect(Collectors.toList())); }
protected LimitOrder mapKunaOrder2LimitOrder(KunaOrder kunaOrder, CurrencyPair currencyPair) { Order.OrderType orderType = kunaOrder.getOrderType() == KunaOrderType.LIMIT ? Order.OrderType.ASK : Order.OrderType.BID; LimitOrder.Builder builder = new LimitOrder.Builder(orderType, currencyPair); builder .id(String.valueOf(kunaOrder.getId())) .currencyPair(currencyPair) .timestamp(kunaOrder.getCreatedAt()) .orderStatus(Order.OrderStatus.NEW) .orderType(orderType) .averagePrice(kunaOrder.getAveragePrice()) .limitPrice(kunaOrder.getPrice()) .originalAmount(kunaOrder.getVolume()) .remainingAmount(kunaOrder.getRemainingVolume()) .cumulativeAmount(kunaOrder.getExecutedVolume()); return builder.build(); }
public static Order adaptGetOrder( CurrencyPair currencyPair, Bl3pGetOrder.Bl3pGetOrderData bl3pOrder) { Order.OrderType orderType = Bl3pUtils.fromBl3pOrderType(bl3pOrder.getStatus()); BigDecimal limitPrice = bl3pOrder.getPrice().value; BigDecimal originalAmount = bl3pOrder.getTotalAmount().value; BigDecimal executedAmount = bl3pOrder.getTotalSpent().value; BigDecimal remainingAmount = originalAmount.subtract(executedAmount); return new LimitOrder.Builder(orderType, currencyPair) .cumulativeAmount(executedAmount) .id("" + bl3pOrder.getOrderId()) .limitPrice(limitPrice) .originalAmount(originalAmount) .remainingAmount(remainingAmount) .timestamp(bl3pOrder.getTimestamp()) .build(); }
public static Builder from(Order order) { Builder builder = (Builder) new Builder(order.getType(), order.getCurrencyPair()) .originalAmount(order.getOriginalAmount()) .cumulativeAmount(order.getCumulativeAmount()) .timestamp(order.getTimestamp()) .id(order.getId()) .flags(order.getOrderFlags()) .orderStatus(order.getStatus()) .averagePrice(order.getAveragePrice()); if (order instanceof LimitOrder) { LimitOrder limitOrder = (LimitOrder) order; builder.limitPrice(limitOrder.getLimitPrice()); } return builder; }
private static LimitOrder adaptOrder(CobinhoodOrder order) { return new LimitOrder.Builder( order.getSide().getOrderType(), adaptSymbol(order.getTradingPair())) .id(order.getId()) .timestamp(new Date(order.getTimestamp())) .orderType(order.getSide().getOrderType()) .orderStatus(order.getState().getStatus()) .limitPrice(order.getPrice()) .cumulativeAmount(order.getFilled()) .originalAmount(order.getSize()) .build(); } }
private static LimitOrder adaptLimitOpenOrder(BiboxOrder biboxOrder) { CurrencyPair currencyPair = new CurrencyPair(biboxOrder.getCoinSymbol(), biboxOrder.getCurrencySymbol()); return new LimitOrder.Builder(biboxOrder.getOrderSide().getOrderType(), currencyPair) .id(String.valueOf(biboxOrder.getId())) .timestamp(new Date(biboxOrder.getCreatedAt())) .limitPrice(biboxOrder.getPrice()) .originalAmount(biboxOrder.getAmount()) .cumulativeAmount(biboxOrder.getDealAmount()) .remainingAmount(biboxOrder.getUnexecuted()) .orderStatus(biboxOrder.getStatus().getOrderStatus()) .build(); }
private static LimitOrder adaptActiveOrder(CurrencyPair currencyPair, KucoinActiveOrder order) { return new LimitOrder.Builder(order.getOrderType().getOrderType(), currencyPair) .timestamp(order.getTimestamp()) .id(order.getOrderOid()) .limitPrice(order.getPrice()) .originalAmount(order.getAmount()) // this might be the remaining amount, not sure .cumulativeAmount(order.getDealAmount()) .orderStatus( order.getDealAmount().compareTo(BigDecimal.ZERO) == 0 ? OrderStatus.NEW : OrderStatus.PARTIALLY_FILLED) .build(); }
private LimitOrder mapOrder(CurrencyPair currencyPair, AcxOrder order) { OrderType type = mapOrderType(order); return new LimitOrder.Builder(type, currencyPair) .id(order.id) .limitPrice(order.price) .averagePrice(order.avgPrice) .timestamp(order.createdAt) .originalAmount(order.volume) .remainingAmount(order.remainingVolume) .cumulativeAmount(order.executedVolume) .orderStatus(mapOrderStatus(order.state)) .build(); }
public static LimitOrder adaptLimitOrder(AbucoinsOrder order) { return new LimitOrder.Builder( adaptOrderType(order.getSide()), adaptCurrencyPair(order.getProductID())) .averagePrice(order.getPrice()) .cumulativeAmount(order.getFilledSize()) .id(order.getId()) .limitPrice(order.getPrice()) .orderStatus(adaptOrderStatus(order.getStatus())) .originalAmount(order.getSize()) .remainingAmount(order.getSize().subtract(order.getFilledSize())) .timestamp(parseDate(order.getCreatedAt())) .build(); }
public static LimitOrder adaptPoloniexOpenOrder( PoloniexOpenOrder openOrder, CurrencyPair currencyPair) { OrderType type = openOrder.getType().equals("buy") ? OrderType.BID : OrderType.ASK; Date timestamp = PoloniexUtils.stringToDate(openOrder.getDate()); return new LimitOrder.Builder(type, currencyPair) .limitPrice(openOrder.getRate()) .originalAmount(openOrder.getStartingAmount()) .cumulativeAmount(openOrder.getStartingAmount().subtract(openOrder.getAmount())) .id(openOrder.getOrderNumber()) .timestamp(timestamp) .build(); }
public static LimitOrder adaptLimitOrder(CoinbeneLimitOrder order) { return new LimitOrder.Builder(null, adaptSymbol(order.getSymbol())) .id(order.getOrderId()) .timestamp(new Date(order.getCreateTime())) .orderStatus(order.getOrderStatus().getStatus()) .limitPrice(order.getPrice()) .cumulativeAmount(order.getFilledQuantity()) .originalAmount(order.getOrderQuantity()) .build(); }