@Override public String placeStopOrder(StopOrder stopOrder) throws IOException { return super.placeStopLimitOrder( stopOrder.getOriginalAmount(), stopOrder.getLimitPrice(), stopOrder.getStopPrice(), stopOrder.getCurrencyPair(), BTCTurkAdapters.adaptOrderType(stopOrder.getType())) .getId(); }
} else { order = new StopOrder( orderType, originalAmount, status); order.setOrderFlags(flags); return order;
@Override public String placeStopOrder(StopOrder stopOrder) throws IOException { if (stopOrder.getLimitPrice() != null) { throw new NotYetImplementedForExchangeException( "Limit stops are not supported by the Bitfinex v1 API."); } LimitOrder limitOrder = new LimitOrder( stopOrder.getType(), stopOrder.getOriginalAmount(), stopOrder.getCurrencyPair(), stopOrder.getId(), stopOrder.getTimestamp(), stopOrder.getStopPrice()); limitOrder.setOrderFlags(stopOrder.getOrderFlags()); limitOrder.setLeverage(stopOrder.getLeverage()); limitOrder.addOrderFlag(BitfinexOrderFlags.STOP); return placeLimitOrder(limitOrder); }
@Override public int compareTo(StopOrder stopOrder) { final int ret; if (this.getType() == stopOrder.getType()) { // Same side ret = this.getStopPrice().compareTo(stopOrder.getStopPrice()) * (getType() == OrderType.BID ? -1 : 1); } else { // Keep bid side be less than ask side ret = this.getType() == OrderType.BID ? -1 : 1; } return ret; }
@Override public String placeStopOrder(StopOrder stopOrder) throws ExchangeException { String symbol = BitmexAdapters.adaptCurrencyPairToSymbol(stopOrder.getCurrencyPair()); return placeOrder( new BitmexPlaceOrderParameters.Builder(symbol) .setSide(fromOrderType(stopOrder.getType())) .setOrderQuantity(stopOrder.getOriginalAmount()) .setStopPrice(stopOrder.getStopPrice()) .setClOrdId(stopOrder.getId()) .build()) .getId(); }
@Override public String placeStopOrder(StopOrder so) throws IOException { TimeInForce tif = null; Set<IOrderFlags> orderFlags = so.getOrderFlags(); Iterator<IOrderFlags> orderFlagsIterator = orderFlags.iterator(); while (orderFlagsIterator.hasNext()) { IOrderFlags orderFlag = orderFlagsIterator.next(); if (orderFlag instanceof TimeInForce) { tif = (TimeInForce) orderFlag; } } // Time-in-force should not be provided for market orders but is required for // limit orders, so we only default it for limit orders. If the caller // specifies one for a market order, we don't remove it, since Binance might allow // it at some point. if (so.getLimitPrice() != null && tif == null) { tif = TimeInForce.GTC; } OrderType orderType; if (so.getType().equals(Order.OrderType.BID)) { orderType = so.getLimitPrice() == null ? OrderType.TAKE_PROFIT : OrderType.TAKE_PROFIT_LIMIT; } else { orderType = so.getLimitPrice() == null ? OrderType.STOP_LOSS : OrderType.STOP_LOSS_LIMIT; } return placeOrder(orderType, so, so.getLimitPrice(), so.getStopPrice(), tif); }
public static Builder from(Order order) { Builder builder = (Builder) new Builder(order.getType(), order.getCurrencyPair()) .originalAmount(order.getOriginalAmount()) .timestamp(order.getTimestamp()) .id(order.getId()) .flags(order.getOrderFlags()) .orderStatus(order.getStatus()) .averagePrice(order.getAveragePrice()); if (order instanceof StopOrder) { StopOrder stopOrder = (StopOrder) order; builder.stopPrice(stopOrder.getStopPrice()); builder.limitPrice(stopOrder.getLimitPrice()); } return builder; }
} else { result = new StopOrder( type, order.origQty,
new StopOrder( orderType, order.getOriginalAmount(), case MARGIN_STOP: stopOrder = stopOrderCreator.get(); stopOrder.addOrderFlag(BitfinexOrderFlags.STOP); stopOrder.addOrderFlag(BitfinexOrderFlags.MARGIN); break; case MARGIN_TRAILING_STOP: case STOP: stopOrder = stopOrderCreator.get(); stopOrder.addOrderFlag(BitfinexOrderFlags.STOP); break; case TRAILING_STOP:
@Override public String placeStopOrder(StopOrder stopOrder) throws ExchangeException { String symbol = BitmexAdapters.adaptCurrencyPairToSymbol(stopOrder.getCurrencyPair()); return placeOrder( new BitmexPlaceOrderParameters.Builder(symbol) .setSide(fromOrderType(stopOrder.getType())) .setOrderQuantity(stopOrder.getOriginalAmount()) .setStopPrice(stopOrder.getStopPrice()) .setClOrdId(stopOrder.getId()) .build()) .getId(); }
@Override public String placeStopOrder(StopOrder so) throws IOException { TimeInForce tif = null; Set<IOrderFlags> orderFlags = so.getOrderFlags(); Iterator<IOrderFlags> orderFlagsIterator = orderFlags.iterator(); while (orderFlagsIterator.hasNext()) { IOrderFlags orderFlag = orderFlagsIterator.next(); if (orderFlag instanceof TimeInForce) { tif = (TimeInForce) orderFlag; } } // Time-in-force should not be provided for market orders but is required for // limit orders, so we only default it for limit orders. If the caller // specifies one for a market order, we don't remove it, since Binance might allow // it at some point. if (so.getLimitPrice() != null && tif == null) { tif = TimeInForce.GTC; } OrderType orderType; if (so.getType().equals(Order.OrderType.BID)) { orderType = so.getLimitPrice() == null ? OrderType.TAKE_PROFIT : OrderType.TAKE_PROFIT_LIMIT; } else { orderType = so.getLimitPrice() == null ? OrderType.STOP_LOSS : OrderType.STOP_LOSS_LIMIT; } return placeOrder(orderType, so, so.getLimitPrice(), so.getStopPrice(), tif); }
@Override public int compareTo(StopOrder stopOrder) { final int ret; if (this.getType() == stopOrder.getType()) { // Same side ret = this.getStopPrice().compareTo(stopOrder.getStopPrice()) * (getType() == OrderType.BID ? -1 : 1); } else { // Keep bid side be less than ask side ret = this.getType() == OrderType.BID ? -1 : 1; } return ret; }
public static Builder from(Order order) { Builder builder = (Builder) new Builder(order.getType(), order.getCurrencyPair()) .originalAmount(order.getOriginalAmount()) .timestamp(order.getTimestamp()) .id(order.getId()) .flags(order.getOrderFlags()) .orderStatus(order.getStatus()) .averagePrice(order.getAveragePrice()); if (order instanceof StopOrder) { StopOrder stopOrder = (StopOrder) order; builder.stopPrice(stopOrder.getStopPrice()); builder.limitPrice(stopOrder.getLimitPrice()); } return builder; }
orderStatus); } else { return new StopOrder( type, order.getSize(),
new StopOrder( orderType, order.getOriginalAmount(), case MARGIN_STOP: stopOrder = stopOrderCreator.get(); stopOrder.addOrderFlag(BitfinexOrderFlags.STOP); stopOrder.addOrderFlag(BitfinexOrderFlags.MARGIN); break; case MARGIN_TRAILING_STOP: case STOP: stopOrder = stopOrderCreator.get(); stopOrder.addOrderFlag(BitfinexOrderFlags.STOP); break; case TRAILING_STOP:
if (stopOrder.getLimitPrice() == null) { return new CoinbaseProPlaceMarketOrder.Builder() .productId(adaptProductID(stopOrder.getCurrencyPair())) .type(CoinbaseProPlaceOrder.Type.market) .side(adaptSide(stopOrder.getType())) .size(stopOrder.getOriginalAmount()) .stop(adaptStop(stopOrder.getType())) .stopPrice(stopOrder.getStopPrice()) .build(); .productId(adaptProductID(stopOrder.getCurrencyPair())) .type(CoinbaseProPlaceOrder.Type.limit) .side(adaptSide(stopOrder.getType())) .size(stopOrder.getOriginalAmount()) .stop(adaptStop(stopOrder.getType())) .stopPrice(stopOrder.getStopPrice()) .price(stopOrder.getLimitPrice()) .build();
@Override public String placeStopOrder(StopOrder stopOrder) throws IOException { if (stopOrder.getLimitPrice() != null) { throw new NotYetImplementedForExchangeException( "Limit stops are not supported by the Bitfinex v1 API."); } LimitOrder limitOrder = new LimitOrder( stopOrder.getType(), stopOrder.getOriginalAmount(), stopOrder.getCurrencyPair(), stopOrder.getId(), stopOrder.getTimestamp(), stopOrder.getStopPrice()); limitOrder.setOrderFlags(stopOrder.getOrderFlags()); limitOrder.setLeverage(stopOrder.getLeverage()); limitOrder.addOrderFlag(BitfinexOrderFlags.STOP); return placeLimitOrder(limitOrder); }
} else { result = new StopOrder( type, order.origQty,
} else { order = new StopOrder( orderType, originalAmount, status); order.setOrderFlags(flags); return order;
if (stopOrder.getLimitPrice() == null) { return new GDAXPlaceMarketOrder.Builder() .productId(adaptProductID(stopOrder.getCurrencyPair())) .type(GDAXPlaceOrder.Type.market) .side(adaptSide(stopOrder.getType())) .size(stopOrder.getOriginalAmount()) .stop(adaptStop(stopOrder.getType())) .stopPrice(stopOrder.getStopPrice()) .build(); .productId(adaptProductID(stopOrder.getCurrencyPair())) .type(GDAXPlaceOrder.Type.limit) .side(adaptSide(stopOrder.getType())) .size(stopOrder.getOriginalAmount()) .stop(adaptStop(stopOrder.getType())) .stopPrice(stopOrder.getStopPrice()) .price(stopOrder.getLimitPrice()) .build();