private BitfinexTick jsonToBitfinexTick(final JSONArray jsonArray) { final BigDecimal bid = jsonArray.getBigDecimal(0); // 0 = BID final BigDecimal bidSize = jsonArray.getBigDecimal(1);// 1 = BID SIZE final BigDecimal ask = jsonArray.getBigDecimal(2); // 2 = ASK final BigDecimal askSize = jsonArray.getBigDecimal(3);// 3 = ASK SIZE final BigDecimal dailyChange = jsonArray.getBigDecimal(4);// 4 = Daily Change final BigDecimal dailyChangePerc = jsonArray.getBigDecimal(5);// 5 = Daily Change % final BigDecimal price = jsonArray.getBigDecimal(6);// 6 = Last Price final BigDecimal volume = jsonArray.getBigDecimal(7); // 7 = Volume final BigDecimal high = jsonArray.getBigDecimal(8); // 8 = High final BigDecimal low = jsonArray.getBigDecimal(9); // 9 = Low return new BitfinexTick(bid, bidSize, ask, askSize, dailyChange, dailyChangePerc, price, volume, high, low); }
/** * Get the optional BigDecimal value associated with an index. The * defaultValue is returned if there is no value for the index, or if the * value is not a number and cannot be converted to a number. * * @param index * The index must be between 0 and length() - 1. * @param defaultValue * The default value. * @return The value. */ public BigDecimal optBigDecimal(int index, BigDecimal defaultValue) { try { return this.getBigDecimal(index); } catch (Exception e) { return defaultValue; } }
private BitfinexCandle jsonToCandlestick(final JSONArray parts) { // 0 = Timestamp, 1 = Open, 2 = Close, 3 = High, 4 = Low, 5 = Volume final long timestamp = parts.getLong(0); final BigDecimal open = parts.getBigDecimal(1); final BigDecimal close = parts.getBigDecimal(2); final BigDecimal high = parts.getBigDecimal(3); final BigDecimal low = parts.getBigDecimal(4); final BigDecimal volume = parts.getBigDecimal(5); return new BitfinexCandle(timestamp, open, close, high, low, Optional.of(volume)); }
private BitfinexOrderBookEntry jsonToOrderBookEntry(final JSONArray jsonArray) { final BigDecimal price = jsonArray.getBigDecimal(0); final Integer count = jsonArray.getInt(1); final BigDecimal amount = jsonArray.getBigDecimal(2); return new BitfinexOrderBookEntry(null, price, amount, count); }
private BitfinexWallet jsonArrayToWallet(final JSONArray json) { final String walletType = json.getString(0); final String currency = json.getString(1); final BigDecimal balance = json.getBigDecimal(2); final BigDecimal unsettledInterest = json.getBigDecimal(3); final BigDecimal balanceAvailable = json.optBigDecimal(4, null); return new BitfinexWallet(walletType, currency, balance, unsettledInterest, balanceAvailable); }
private BitfinexOrderBookEntry jsonToRawOrderbookEntry(final JSONArray jsonArray) { final long orderId = jsonArray.getNumber(0).longValue(); final BigDecimal price = jsonArray.getBigDecimal(1); final BigDecimal amount = jsonArray.getBigDecimal(2); return new BitfinexOrderBookEntry(orderId, price, amount, null); }
private BitfinexExecutedTrade jsonToExecutedTrade(final JSONArray jsonArray) { final BitfinexExecutedTrade executedTrade = new BitfinexExecutedTrade(); final long id = jsonArray.getNumber(0).longValue(); executedTrade.setTradeId(id); final long timestamp = jsonArray.getNumber(1).longValue(); executedTrade.setTimestamp(timestamp); final BigDecimal amount = jsonArray.getBigDecimal(2); executedTrade.setAmount(amount); // Funding or Currency if (jsonArray.optNumber(4) != null) { final BigDecimal rate = jsonArray.getBigDecimal(3); executedTrade.setRate(rate); final Long period = jsonArray.getLong(4); executedTrade.setPeriod(period); } else { final BigDecimal price = jsonArray.getBigDecimal(3); executedTrade.setPrice(price); } return executedTrade; }
private BitfinexPosition jsonArrayToPosition(final JSONArray json) { final String currencyString = json.getString(0); final BitfinexCurrencyPair currency = BitfinexCurrencyPair.fromSymbolString(currencyString); final BitfinexPosition position = new BitfinexPosition(currency); position.setStatus(BitfinexPositionStatus.valueOf(json.getString(1))); position.setAmount(json.getBigDecimal(2)); position.setBasePrice(json.getBigDecimal(3)); position.setMarginFunding(json.getBigDecimal(4)); position.setMarginFundingType(BitfinexPositionFundingType.valueOf(json.optInt(5, -1))); position.setProfitLoss(json.optBigDecimal(6, null)); position.setProfitLossPercent(json.optBigDecimal(7, null)); position.setPriceLiquidation(json.optBigDecimal(8, null)); position.setLeverage(json.optBigDecimal(9, null)); return position; }
private BitfinexMyExecutedTrade jsonToTrade(final JSONArray json) { final BitfinexMyExecutedTrade trade = new BitfinexMyExecutedTrade(); trade.setTradeId(json.getLong(0)); trade.setCurrencyPair(BitfinexCurrencyPair.fromSymbolString(json.getString(1))); trade.setTimestamp(json.getLong(2)); trade.setOrderId(json.getLong(3)); trade.setAmount(json.getBigDecimal(4)); trade.setPrice(json.getBigDecimal(5)); final String orderTypeString = json.optString(6, null); if (orderTypeString != null) { trade.setOrderType(BitfinexOrderType.fromBifinexString(orderTypeString)); } trade.setOrderPrice(json.optBigDecimal(7, null)); trade.setMaker(json.getInt(8) == 1); trade.setFee(json.optBigDecimal(9, null)); trade.setFeeCurrency(json.optString(10, null)); return trade; }
order.setUpdatedTimestamp(Long.parseLong(updatedTimestamp)); order.setAmount(json.getBigDecimal(6)); order.setAmountAtCreation(json.getBigDecimal(7)); order.setOrderType(BitfinexOrderType.fromBifinexString(json.getString(8)));