protected void sendNewOrderRequest()

in grpc/syneroex/src/main/java/deltix/ember/connector/grpc/syneroex/SyneroexTradeConnector.java [72:100]


    protected void sendNewOrderRequest(OrderNewRequest request, Contract contract) {
        final CreateOrdersRequest.Builder newOrder = CreateOrdersRequest.newBuilder();

        newOrder.setSymbol(contract.getBrokerSymbol());
        newOrder.setClientOrderId(getClientOrderId(request));

        newOrder.setSide(SyneroexUtil.toSyneroexSide(request.getSide()));
        newOrder.setOrderType(SyneroexUtil.toSyneroexOrderType(request.getOrderType()));
        newOrder.setTimeInForce(SyneroexUtil.toSyneroexTIF(request.getTimeInForce()));

        newOrder.setQuantity(SyneroexUtil.toDecimalValue(request.getQuantity()));
        if (request.getOrderType() == OrderType.LIMIT) {
            newOrder.setPrice(SyneroexUtil.toDecimalValue(request.getLimitPrice()));
        }

        // set order post only flag - assuming that is passed in 6018 attribute/tag
        final ObjectList<CustomAttribute> attributes = request.getAttributes();
        if (attributes != null && !attributes.isEmpty()) {
            for (int i = 0; i < attributes.size(); i++) {
                final CustomAttribute attribute = attributes.get(i);
                if (attribute.getKey() == POST_ONLY_TAG) {
                    newOrder.setPostOnly(CharSequenceParser.parseBoolean(attribute.getValue()));
                    break; // stop iterating
                }
            }
        }

        session.createOrder(newOrder.build());
    }