@Override public UserTrade build() { return new UserTrade( type, originalAmount, currencyPair, price, timestamp, id, orderId, feeAmount, feeCurrency); } }
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 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); } }
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 UserTrades adaptTradeHistory(CoingiOrdersList ordersList) { List<UserTrade> trades = new ArrayList<>(); for (CoingiOrder o : ordersList.getList()) { final OrderType orderType = o.getType() == 0 ? OrderType.BID : OrderType.ASK; final CurrencyPair pair = new CurrencyPair( o.getCurrencyPair().get("base").toUpperCase(), o.getCurrencyPair().get("counter").toUpperCase()); UserTrade trade = new UserTrade( orderType, o.getOriginalBaseAmount(), pair, o.getPrice(), new Date(o.getTimestamp()), o.getId(), o.getId(), BigDecimal.valueOf(0), null); trades.add(trade); } return new UserTrades(trades, TradeSortType.SortByID); }
public static UserTrade adaptTrade(BityOrder order) { BityInputTransaction inputT = order.getBityInputTransactions().get(0); BityOutputTransaction outputT = order.getBityOutputTransactions().get(0); BigDecimal fee = inputT.getPaymentProcessorFee(); BigDecimal price = inputT.getAmount().divide(outputT.getAmount(), 6, RoundingMode.HALF_UP); CurrencyPair currencyPair = new CurrencyPair(outputT.getCurrency(), inputT.getCurrency()); Order.OrderType orderType = order.getCategory().contains("BUY") ? Order.OrderType.BID : Order.OrderType.ASK; BigDecimal amount = outputT.getAmount(); Date date = order.getTimestampCreated(); String orderId = order.getResourceUri(); return new UserTrade( orderType, amount, currencyPair, price, date, orderId, orderId, fee, currencyPair.counter); }
public static UserTrades adaptTradeHistory(CoinbaseProFill[] coinbaseExFills) { List<UserTrade> trades = new ArrayList<>(coinbaseExFills.length); for (int i = 0; i < coinbaseExFills.length; i++) { CoinbaseProFill fill = coinbaseExFills[i]; OrderType type = fill.getSide().equals("buy") ? OrderType.BID : OrderType.ASK; CurrencyPair currencyPair = new CurrencyPair(fill.getProductId().replace('-', '/')); UserTrade t = new UserTrade( type, fill.getSize(), currencyPair, fill.getPrice(), parseDate(fill.getCreatedAt()), String.valueOf(fill.getTradeId()), fill.getOrderId(), fill.getFee(), currencyPair.counter); trades.add(t); } return new UserTrades(trades, TradeSortType.SortByID); }
public static UserTrade adaptTrade(BTCMarketsUserTrade trade, CurrencyPair currencyPair) { final Order.OrderType type = adaptOrderType(trade.getSide()); final String tradeId = Long.toString(trade.getId()); final Long orderId = trade.getOrderId(); final String feeCurrency = currencyPair.base.getCurrencyCode(); return new UserTrade( type, trade.getVolume(), currencyPair, trade.getPrice().abs(), trade.getCreationTime(), tradeId, String.valueOf(orderId), trade.getFee(), Currency.getInstance(feeCurrency)); }
private static UserTrade adaptTradeFutures(OkCoinFuturesOrder order) { return new UserTrade( adaptOrderType(order.getType()), order.getDealAmount(), adaptSymbol(order.getSymbol()), order.getPrice(), order.getCreatedDate(), null, String.valueOf(order.getOrderId()), null, (Currency) null); }
public static UserTrades adaptTradeHistory(BitfinexTradeResponse[] trades, String symbol) { List<UserTrade> pastTrades = new ArrayList<>(trades.length); CurrencyPair currencyPair = adaptCurrencyPair(symbol); for (BitfinexTradeResponse trade : trades) { OrderType orderType = trade.getType().equalsIgnoreCase("buy") ? OrderType.BID : OrderType.ASK; Date timestamp = convertBigDecimalTimestampToDate(trade.getTimestamp()); final BigDecimal fee = trade.getFeeAmount() == null ? null : trade.getFeeAmount().negate(); pastTrades.add( new UserTrade( orderType, trade.getAmount(), currencyPair, trade.getPrice(), timestamp, trade.getTradeId(), trade.getOrderId(), fee, Currency.getInstance(trade.getFeeCurrency()))); } return new UserTrades(pastTrades, TradeSortType.SortByTimestamp); }
private static UserTrade adaptTrade(OkCoinOrder order) { // Order fill status is being adapted to a trade, there is no dedicated tradeId, so user orderId // instead. String tradeId, orderId; tradeId = orderId = String.valueOf(order.getOrderId()); return new UserTrade( adaptOrderType(order.getType()), order.getDealAmount(), adaptSymbol(order.getSymbol()), order.getAveragePrice(), order.getCreateDate(), tradeId, orderId, null, null); }
public static UserTrade adaptFill(CryptoFacilitiesFill fill) { return new UserTrade( adaptOrderType(fill.getSide()), fill.getSize(), new CurrencyPair(fill.getSymbol(), fill.getSymbol().substring(6, 9)), fill.getPrice(), fill.getFillTime(), fill.getFillId(), fill.getOrderId(), null, (Currency) null); }
public static UserTrades adaptTradeHistory(GeminiTradeResponse[] trades, String symbol) { List<UserTrade> pastTrades = new ArrayList<>(trades.length); CurrencyPair currencyPair = adaptCurrencyPair(symbol); for (GeminiTradeResponse trade : trades) { OrderType orderType = trade.getType().equalsIgnoreCase("buy") ? OrderType.BID : OrderType.ASK; Date timestamp = convertBigDecimalTimestampToDate(trade.getTimestamp()); final BigDecimal fee = trade.getFeeAmount() == null ? null : trade.getFeeAmount(); pastTrades.add( new UserTrade( orderType, trade.getAmount(), currencyPair, trade.getPrice(), timestamp, trade.getTradeId(), trade.getOrderId(), fee, Currency.getInstance(trade.getFeeCurrency()))); } return new UserTrades(pastTrades, TradeSortType.SortByTimestamp); }
private static UserTrade adaptUserTrade(ANXTradeResult aNXTradeResult, ANXMetaData meta) { BigDecimal tradedCurrencyFillAmount = aNXTradeResult.getTradedCurrencyFillAmount(); CurrencyPair currencyPair = adaptCurrencyPair(aNXTradeResult.getCurrencyPair()); int priceScale = meta.getCurrencyPairs().get(currencyPair).getPriceScale(); BigDecimal price = aNXTradeResult .getSettlementCurrencyFillAmount() .divide(tradedCurrencyFillAmount, priceScale, BigDecimal.ROUND_HALF_EVEN); OrderType type = adaptSide(aNXTradeResult.getSide()); // for fees, getWalletHistory should be used. return new UserTrade( type, tradedCurrencyFillAmount, currencyPair, price, aNXTradeResult.getTimestamp(), aNXTradeResult.getTradeId(), aNXTradeResult.getOrderId(), null, null); }
private static UserTrade adaptTrade( BTCTradeOrder order, org.knowm.xchange.btctrade.dto.trade.BTCTradeTrade trade, CurrencyPair currencyPair) { return new UserTrade( adaptOrderType(order.getType()), trade.getAmount(), currencyPair, trade.getPrice(), adaptDatetime(trade.getDatetime()), trade.getTradeId(), order.getId(), null, (Currency) null); } }
public static UserTrade adaptUserTrade(GateioTrade gateioTrade) { OrderType orderType = adaptOrderType(gateioTrade.getType()); Date timestamp = DateUtils.fromMillisUtc(gateioTrade.getTimeUnix() * 1000); CurrencyPair currencyPair = adaptCurrencyPair(gateioTrade.getPair()); return new UserTrade( orderType, gateioTrade.getAmount(), currencyPair, gateioTrade.getRate(), timestamp, gateioTrade.getTradeID(), gateioTrade.getOrderNumber(), null, (Currency) null); }