in gemini/src/main/java/deltix/connector/crypto/gemini/GeminiTradeConnector.java [184:222]
private NewOrderRequest makeNewOrderRequest(OrderNewRequest orderRequest, Contract contract) {
final NewOrderRequest request = new NewOrderRequest();
request.setSymbol(contract.getBrokerSymbol());
request.setClientOrderId(getClientOrderId(orderRequest));
request.setSide(GeminiUtil.toGeminiSide(orderRequest.getSide()));
request.setType(EXCHANGE_LIMIT_ORDER_TYPE);
EnumSet<OrderOptions> orderOptions = EnumSet.noneOf(OrderOptions.class);
if (ConnectorUtil.isPostOnly(orderRequest.getAttributes()))
orderOptions.add(OrderOptions.MAKER_OR_CANCEL);
switch (orderRequest.getTimeInForce()) {
case IMMEDIATE_OR_CANCEL:
orderOptions.add(OrderOptions.IMMEDIATE_OR_CANCEL);
break;
case FILL_OR_KILL:
request.setOptions(EnumSet.of(OrderOptions.FILL_OR_KILL));
break;
case AT_THE_OPENING:
request.setOptions(EnumSet.of(OrderOptions.AUCTION_ONLY));
break;
}
if (!orderOptions.isEmpty())
request.setOptions(orderOptions);
if (orderRequest.hasMinQuantity()) {
request.setMinAmount(toBrokerQuantity(orderRequest.getMinQuantity(), contract));
}
request.setAmount(toBrokerQuantity(orderRequest.getQuantity(), contract));
if (orderRequest.getOrderType() == OrderType.LIMIT) {
request.setPrice(toBrokerPrice(orderRequest.getLimitPrice(), contract));
}
return request;
}