@Override public UserTrade build() { return new UserTrade( type, originalAmount, currencyPair, price, timestamp, id, orderId, feeAmount, feeCurrency); } }
public static Builder from(UserTrade trade) { return new Builder() .type(trade.getType()) .originalAmount(trade.getOriginalAmount()) .currencyPair(trade.getCurrencyPair()) .price(trade.getPrice()) .timestamp(trade.getTimestamp()) .id(trade.getId()) .orderId(trade.getOrderId()) .feeAmount(trade.getFeeAmount()) .feeCurrency(trade.getFeeCurrency()); }
type = userTrade.getType(); currencyPair = userTrade.getCurrencyPair(); id = userTrade.getOrderId(); if (timestamp == null) timestamp = userTrade.getTimestamp(); .getTimestamp() timestamp = userTrade.getTimestamp(); BigDecimal amountForFill = userTrade.getOriginalAmount(); BigDecimal priceForFill = userTrade.getPrice(); BigDecimal value = amountForFill.multiply(priceForFill);
public void demoGetTradeHistory() throws IOException { OKCoinTradeHistoryParams params = (OKCoinTradeHistoryParams) tradeService.createTradeHistoryParams(); params.setCurrencyPair(CurrencyPair.BTC_CNY); params.setPageNumber(1); params.setPageLength(10); UserTrades userTrades = tradeService.getTradeHistory(params); userTrades.getUserTrades().forEach( userTrade -> log.info("ID: {}, OrderID: {}, {} {} {}@{}", userTrade.getId(), userTrade.getOrderId(), userTrade.getTimestamp(), userTrade.getType(), userTrade.getTradableAmount(), userTrade.getPrice())); }
protected Fill createFill(org.knowm.xchange.dto.trade.UserTrade exchangeTrade, SpecificOrder order) { Fill fill = null; if (exchangeTrade.getOriginalAmount().compareTo(BigDecimal.ZERO) != 0) { long volume = exchangeTrade.getType().equals(OrderType.ASK) ? DiscreteAmount.roundedCountForBasis(exchangeTrade.getOriginalAmount(), order.getMarket().getVolumeBasis()) * -1 : DiscreteAmount.roundedCountForBasis(exchangeTrade.getOriginalAmount(), order.getMarket().getVolumeBasis()); fill = fillFactory.create(order, context.getTime(), context.getTime(), order.getMarket(), DiscreteAmount.roundedCountForBasis(exchangeTrade.getPrice(), order.getMarket().getPriceBasis()), volume, exchangeTrade.getId()); // this.priceCount = DiscreteAmount.roundedCountForBasis(fillPrice, market.getPriceBasis()); } return fill; }
@Override public int compare(UserTrade event, UserTrade event2) { int sComp = event.getTimestamp().compareTo(event2.getTimestamp()); if (sComp != 0) { return sComp; } else { return (event.getId().compareTo(event2.getId())); } } };
HashMap<String, List<UserTrade>> userOrdersMap = new HashMap<String, List<UserTrade>>(); for (UserTrade trade : xchangeFills) { if (!userOrdersMap.containsKey(trade.getOrderId())) { List<UserTrade> fills = new ArrayList<UserTrade>(); fills.add(trade); userOrdersMap.put(trade.getOrderId(), fills); userOrdersMap.get(trade.getOrderId()).add(trade); addTrade = true; for (Fill fill : specificOpenOrder.getFills()) { if (fill.getRemoteKey().equals(trade.getId())) { addTrade = false; break;
public List<UserTrade> trades( Integer limit, Long offset, Collection<CurrencyPair> currencyPairs) { List<String> markets = new ArrayList<>(); for (CurrencyPair currencyPair : currencyPairs) { markets.add(ExmoAdapters.format(currencyPair)); } Map<String, List<Map<String, String>>> map = exmo.userTrades( signatureCreator, apiKey, exchange.getNonceFactory(), join(markets, ","), offset, limit); List<UserTrade> trades = new ArrayList<>(); for (String market : map.keySet()) { for (Map<String, String> tradeDatum : map.get(market)) { trades.add(ExmoAdapters.adaptTrade(tradeDatum, adaptMarket(market))); } } Collections.sort(trades, (o1, o2) -> o2.getTimestamp().compareTo(o1.getTimestamp())); return trades; } }
public static UserTrade adaptTrade(Map<String, String> tradeDatum, CurrencyPair currencyPair) { Order.OrderType type = adaptOrderType(tradeDatum); BigDecimal amount = new BigDecimal(tradeDatum.get("quantity")); BigDecimal price = new BigDecimal(tradeDatum.get("price")); Date date = DateUtils.fromUnixTime(Long.valueOf(tradeDatum.get("date"))); String tradeId = tradeDatum.get("trade_id"); String orderId = tradeDatum.get("order_id"); return new UserTrade(type, amount, currencyPair, price, date, tradeId, orderId, null, null); }
public static Builder from(UserTrade trade) { return new Builder() .type(trade.getType()) .originalAmount(trade.getOriginalAmount()) .currencyPair(trade.getCurrencyPair()) .price(trade.getPrice()) .timestamp(trade.getTimestamp()) .id(trade.getId()) .orderId(trade.getOrderId()) .feeAmount(trade.getFeeAmount()) .feeCurrency(trade.getFeeCurrency()); }
public static List<UserTrade> adapt(List<QuoineExecution> executions, CurrencyPair currencyPair) { List<UserTrade> res = new ArrayList<>(); for (QuoineExecution execution : executions) { res.add( new UserTrade( execution.mySide.equals("sell") ? OrderType.ASK : OrderType.BID, execution.quantity, currencyPair, execution.price, DateUtils.fromUnixTime(execution.createdAt), execution.id, execution.orderId, null, null)); } return res; }
public static UserTrade adaptUserTrade(Object key, Map tradeData) { String id = key.toString(); String type = tradeData.get("type").toString(); String amount = tradeData.get("amount").toString(); String rate = tradeData.get("rate").toString(); String orderId = tradeData.get("order_id").toString(); String pair = tradeData.get("pair").toString(); String timestamp = tradeData.get("timestamp").toString(); Date time = DateUtils.fromUnixTime(Long.valueOf(timestamp)); return new UserTrade( adaptType(type), new BigDecimal(amount), adaptCurrencyPair(pair), new BigDecimal(rate), time, id, orderId, null, null); } }
public static UserTrade adaptUserTrade(Map map) { OrderType type = OrderType.BID; if (map.get("type").toString().equals("SELL")) type = OrderType.ASK; Currency ccyA = Currency.getInstance(map.get("fixedCurrency").toString()); Currency ccyB = Currency.getInstance(map.get("variableCurrency").toString()); BigDecimal amountA = new BigDecimal(map.get("amount").toString()); BigDecimal amountB = new BigDecimal(map.get("variableAmount").toString()); int scale = Math.max(amountA.scale(), amountB.scale()); BigDecimal price = amountB.divide(amountA, scale, RoundingMode.HALF_UP); String id = map.get("id").toString(); return new UserTrade( type, amountA, new CurrencyPair(ccyA, ccyB), price, DateUtils.fromMillisUtc(Long.valueOf(map.get("date").toString())), id, Optional.ofNullable(map.get("externalKey")).map(Object::toString).orElse(null), new BigDecimal(map.get("fee").toString()), getInstance(map.get("taxCurrency").toString())); }
public static UserTrade adaptUserTrade(BluetradeExecutedTrade trade) { OrderType orderType = trade.type.equalsIgnoreCase("sell") ? OrderType.ASK : OrderType.BID; CurrencyPair currencyPair = BleutradeUtils.toCurrencyPair(trade.exchange); return new UserTrade( orderType, trade.quantity, currencyPair, trade.price, BleutradeUtils.toDate(trade.created), trade.orderId, trade.orderId, null, null); } }
trades.add(new UserTrade(orderType, amount, pair, price, timestamp, id, null, null, null)); } catch (ParseException e) { throw new IllegalStateException("Cannot parse " + map);
public List<UserTrade> tradeHistory(CurrencyPair currencyPair, Integer count) throws IOException { CryptopiaBaseResponse<List<Map>> response = cryptopia.getTradeHistory( signatureCreator, new Cryptopia.GetTradeHistoryRequest( currencyPair == null ? null : currencyPair.toString(), count == null ? 100 : count)); List<UserTrade> results = new ArrayList<>(); for (Map map : response.getData()) { Order.OrderType type = type(map); BigDecimal amount = new BigDecimal(map.get("Amount").toString()); BigDecimal price = new BigDecimal(map.get("Rate").toString()); Date timestamp = CryptopiaAdapters.convertTimestamp(map.get("TimeStamp").toString()); String id = map.get("TradeId").toString(); BigDecimal fee = new BigDecimal(map.get("Fee").toString()); String orderId = id; CurrencyPair pair = new CurrencyPair(map.get("Market").toString()); Currency feeCcy = pair.counter; results.add(new UserTrade(type, amount, pair, price, timestamp, id, orderId, fee, feeCcy)); } return results; } }
public static UserTrade adaptArchivedOrder(CexIOArchivedOrder cexIOArchivedOrder) { try { Date timestamp = fromISODateString(cexIOArchivedOrder.time); OrderType orderType = cexIOArchivedOrder.type.equals("sell") ? OrderType.ASK : OrderType.BID; BigDecimal originalAmount = cexIOArchivedOrder.amount; CurrencyPair currencyPair = new CurrencyPair(cexIOArchivedOrder.symbol1, cexIOArchivedOrder.symbol2); BigDecimal price = cexIOArchivedOrder.averageExecutionPrice; String id = cexIOArchivedOrder.id; String orderId = cexIOArchivedOrder.orderId; Currency feeCcy = cexIOArchivedOrder.feeCcy == null ? null : Currency.getInstance(cexIOArchivedOrder.feeCcy); BigDecimal fee = cexIOArchivedOrder.feeValue; return new UserTrade( orderType, originalAmount, currencyPair, price, timestamp, id, orderId, fee, feeCcy); } catch (InvalidFormatException e) { throw new IllegalStateException("Cannot format date " + cexIOArchivedOrder.time, e); } }
public static UserTrade adaptTrade(final LiquiUserTrade liquiTrade, final Long tradeId) { final OrderType orderType = adaptOrderType(liquiTrade.getType()); final BigDecimal originalAmount = liquiTrade.getAmount(); final CurrencyPair pair = liquiTrade.getPair(); final Date timestamp = new Date(liquiTrade.getTimestamp() * 1000L); final BigDecimal price = liquiTrade.getRate(); return new UserTrade( orderType, originalAmount, pair, price, timestamp, String.valueOf(tradeId), String.valueOf(tradeId), new BigDecimal("0"), null); }
public static List<UserTrade> adaptUserTrades(BankeraUserTrades userTrades) { List<UserTrade> tradeList = new ArrayList<>(); userTrades .getTrades() .forEach( trade -> { String[] currencies = trade.getMarket().split("-"); CurrencyPair pair = new CurrencyPair(currencies[0], currencies[1]); Currency feeCurrency = new Currency(currencies[1]); tradeList.add( new UserTrade( trade.getSide().equalsIgnoreCase("buy") ? OrderType.BID : OrderType.ASK, new BigDecimal(trade.getAmount()), pair, new BigDecimal(trade.getPrice()), new Date(Long.valueOf(trade.getCompletedAt())), String.valueOf(trade.getId()), String.valueOf(trade.getOrderId()), new BigDecimal(trade.getFeeAmount()), feeCurrency)); }); return tradeList; }
return null; return new UserTrade( CoindirectAdapters.convert(t.side), t.executedAmount,