public static void main(String[] args) throws IOException { Exchange krakenExchange = KrakenExampleUtils.createTestExchange(); // Interested in the private trading functionality (authentication) KrakenTradeServiceRaw tradeService = (KrakenTradeServiceRaw) krakenExchange.getTradeService(); KrakenStandardOrder order = // stop at -5% loss, take profit at +$10 price increase. KrakenStandardOrder.getLimitOrderBuilder( CurrencyPair.BTC_USD, KrakenType.BUY, "100.00", new BigDecimal("2.12345678")) .withCloseOrder(KrakenOrderType.STOP_LOSS_PROFIT, "#5%", "#10") .withValidateOnly(true) // validate only for demo purposes .buildOrder(); KrakenOrderResponse orderResponse = tradeService.placeKrakenOrder(order); System.out.println(orderResponse); Map<String, KrakenOrder> openOrders = tradeService.getKrakenOpenOrders(); System.out.println(openOrders); limitRate(); Map<String, KrakenOrder> closedOrders = tradeService.getKrakenClosedOrders(); System.out.println(closedOrders); Set<String> closedOrderIds = closedOrders.keySet(); System.out.println( tradeService.queryKrakenOrders(closedOrderIds.toArray(new String[closedOrderIds.size()]))); Map<String, KrakenTrade> trades = tradeService.getKrakenTradeHistory().getTrades(); System.out.println(trades); Set<String> tradeIds = trades.keySet(); System.out.println( tradeService.queryKrakenTrades(tradeIds.toArray(new String[tradeIds.size()]))); Map<String, KrakenOpenPosition> openPositions = tradeService.getOpenPositions(); System.out.println(openPositions); }
public KrakenOrderResponse placeKrakenLimitOrder(LimitOrder limitOrder) throws IOException { KrakenType type = KrakenType.fromOrderType(limitOrder.getType()); KrakenOrderBuilder krakenOrderBuilder = KrakenStandardOrder.getLimitOrderBuilder( limitOrder.getCurrencyPair(), type, limitOrder.getLimitPrice().toPlainString(), limitOrder.getOriginalAmount()) .withOrderFlags(limitOrder.getOrderFlags()) .withLeverage(limitOrder.getLeverage()); return placeKrakenOrder(krakenOrderBuilder.buildOrder()); }
public static KrakenOrderBuilder getMarketOrderBuilder( CurrencyPair currencyPair, KrakenType type, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.MARKET, volume); }
public static KrakenOrderBuilder getTakeProfitLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String takeProfitTriggerPrice, String triggeredLimitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TAKE_PROFIT_LIMIT, volume) .withPrice(takeProfitTriggerPrice) .withSecondaryPrice(triggeredLimitPrice); }
public KrakenOrderResponse placeKrakenLimitOrder(LimitOrder limitOrder) throws IOException { KrakenType type = KrakenType.fromOrderType(limitOrder.getType()); KrakenOrderBuilder krakenOrderBuilder = KrakenStandardOrder.getLimitOrderBuilder( limitOrder.getCurrencyPair(), type, limitOrder.getLimitPrice().toPlainString(), limitOrder.getOriginalAmount()) .withOrderFlags(limitOrder.getOrderFlags()) .withLeverage(limitOrder.getLeverage()); return placeKrakenOrder(krakenOrderBuilder.buildOrder()); }
public static KrakenOrderBuilder getTrailingStopOrderBuilder( CurrencyPair currencyPair, KrakenType type, String trailingStopOffset, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TRAILING_STOP, volume) .withPrice(trailingStopOffset); }
public static KrakenOrderBuilder getStopLossOrderBuilder( CurrencyPair currencyPair, KrakenType type, String stopLossPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.STOP_LOSS, volume) .withPrice(stopLossPrice); }
public static KrakenOrderBuilder getLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String limitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.LIMIT, volume) .withPrice(limitPrice); }
public static KrakenOrderBuilder getSettlePositionOrderBuilder( CurrencyPair currencyPair, KrakenType type, BigDecimal volume) { // Leverage parameter is required but its value is irrelevant for settling position return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.SETTLE_POSITION, volume) .withLeverage("2"); }
public static KrakenOrderBuilder getTrailingStopLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String trailingStopOffset, String triggeredLimitOffset, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TRAILING_STOP_LIMIT, volume) .withPrice(trailingStopOffset) .withSecondaryPrice(triggeredLimitOffset); }
public static KrakenOrderBuilder getStopLossProfitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String stopLossPrice, String takeProfitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.STOP_LOSS_PROFIT, volume) .withPrice(stopLossPrice) .withSecondaryPrice(takeProfitPrice); }
public KrakenOrderResponse placeKrakenMarketOrder(MarketOrder marketOrder) throws IOException { KrakenType type = KrakenType.fromOrderType(marketOrder.getType()); KrakenOrderBuilder orderBuilder = KrakenStandardOrder.getMarketOrderBuilder( marketOrder.getCurrencyPair(), type, marketOrder.getOriginalAmount()) .withOrderFlags(marketOrder.getOrderFlags()) .withLeverage(marketOrder.getLeverage()); return placeKrakenOrder(orderBuilder.buildOrder()); }
public static KrakenOrderBuilder getStopLossProfitLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String stopLossPrice, String takeProfitPrice, BigDecimal volume) { return new KrakenOrderBuilder( currencyPair, type, KrakenOrderType.STOP_LOSS_PROFIT_LIMIT, volume) .withPrice(stopLossPrice) .withSecondaryPrice(takeProfitPrice); }
public static KrakenOrderBuilder getTakeProfitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String takeProfitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TAKE_PROFIT, volume) .withPrice(takeProfitPrice); }
public static KrakenOrderBuilder getStopLossLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String stopLossTriggerPrice, String triggeredLimitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.STOP_LOSS_LIMIT, volume) .withPrice(stopLossTriggerPrice) .withSecondaryPrice(triggeredLimitPrice); }
public static KrakenOrderBuilder getStopLossAndLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String stopLossPrice, String limitPrice, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.STOP_LOSS_AND_LIMIT, volume) .withPrice(stopLossPrice) .withSecondaryPrice(limitPrice); }
public static KrakenOrderBuilder getMarketOrderBuilder( CurrencyPair currencyPair, KrakenType type, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.MARKET, volume); }
public static KrakenOrderBuilder getTrailingStopOrderBuilder( CurrencyPair currencyPair, KrakenType type, String trailingStopOffset, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TRAILING_STOP, volume) .withPrice(trailingStopOffset); }
public static KrakenOrderBuilder getSettlePositionOrderBuilder( CurrencyPair currencyPair, KrakenType type, BigDecimal volume) { // Leverage parameter is required but its value is irrelevant for settling position return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.SETTLE_POSITION, volume) .withLeverage("2"); }
public static KrakenOrderBuilder getTrailingStopLimitOrderBuilder( CurrencyPair currencyPair, KrakenType type, String trailingStopOffset, String triggeredLimitOffset, BigDecimal volume) { return new KrakenOrderBuilder(currencyPair, type, KrakenOrderType.TRAILING_STOP_LIMIT, volume) .withPrice(trailingStopOffset) .withSecondaryPrice(triggeredLimitOffset); }