@Benchmark public void setFloat() { floatValue.setFloat(12.30, 2); }
private void sendOrderExecuted(Order order, double lastQty, double lastPx, Instrument config) throws IOException { fix.prepare(txMessage, ExecutionReport); int priceFractionDigits = config.getPriceFractionDigits(); int sizeFractionDigits = config.getSizeFractionDigits(); txMessage.addField(OrderID).setInt(order.getOrderID()); txMessage.addField(ClOrdID).setString(order.getClOrdID()); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(ExecTypeValues.Trade); txMessage.addField(OrdStatus).setChar(order.getOrdStatus()); if (order.getAccount() != null) txMessage.addField(Account).setString(order.getAccount()); txMessage.addField(Symbol).setString(order.getSymbol()); txMessage.addField(Side).setChar(order.getSide()); txMessage.addField(OrderQty).setFloat(order.getOrderQty(), sizeFractionDigits); txMessage.addField(LastQty).setFloat(lastQty, sizeFractionDigits); txMessage.addField(LastPx).setFloat(lastPx, priceFractionDigits); txMessage.addField(LeavesQty).setFloat(order.getLeavesQty(), sizeFractionDigits); txMessage.addField(CumQty).setFloat(order.getCumQty(), sizeFractionDigits); txMessage.addField(AvgPx).setFloat(order.getAvgPx(), priceFractionDigits); fix.send(txMessage); }
private void sendOrderRejected(String clOrdId, int ordRejReason, String account, String symbol, char side, double orderQty) throws IOException { fix.prepare(txMessage, ExecutionReport); Instrument config = instruments.get(symbol); int priceFractionDigits = 0; int sizeFractionDigits = 0; if (config != null) { priceFractionDigits = config.getPriceFractionDigits(); sizeFractionDigits = config.getSizeFractionDigits(); } txMessage.addField(OrderID).setString(UNKNOWN_ORDER_ID); txMessage.addField(ClOrdID).setString(clOrdId); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(ExecTypeValues.Rejected); txMessage.addField(OrdStatus).setChar(OrdStatusValues.Rejected); txMessage.addField(OrdRejReason).setInt(ordRejReason); if (account != null) txMessage.addField(Account).setString(account); txMessage.addField(Symbol).setString(symbol); txMessage.addField(Side).setChar(side); txMessage.addField(OrderQty).setFloat(orderQty, sizeFractionDigits); txMessage.addField(LeavesQty).setFloat(0.0, sizeFractionDigits); txMessage.addField(CumQty).setFloat(0.0, sizeFractionDigits); txMessage.addField(AvgPx).setFloat(0.0, priceFractionDigits); fix.send(txMessage); }
private void sendOrderRejected(Order order, int ordRejReason) throws IOException { fix.prepare(txMessage, ExecutionReport); String symbol = order.getSymbol(); Instrument config = instruments.get(symbol); int priceFractionDigits = config.getPriceFractionDigits(); int sizeFractionDigits = config.getSizeFractionDigits(); txMessage.addField(OrderID).setInt(order.getOrderID()); txMessage.addField(ClOrdID).setString(order.getClOrdID()); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(ExecTypeValues.Rejected); txMessage.addField(OrdStatus).setChar(OrdStatusValues.Rejected); txMessage.addField(OrdRejReason).setInt(ordRejReason); if (order.getAccount() != null) txMessage.addField(Account).setString(order.getAccount()); txMessage.addField(Symbol).setString(symbol); txMessage.addField(Side).setChar(order.getSide()); txMessage.addField(OrderQty).setFloat(order.getOrderQty(), sizeFractionDigits); txMessage.addField(LeavesQty).setFloat(0.0, sizeFractionDigits); txMessage.addField(CumQty).setFloat(order.getCumQty(), sizeFractionDigits); txMessage.addField(AvgPx).setFloat(order.getAvgPx(), priceFractionDigits); fix.send(txMessage); }
private void sendOrderAccepted(Order order) throws IOException { fix.prepare(txMessage, ExecutionReport); String symbol = order.getSymbol(); Instrument config = instruments.get(symbol); int priceFractionDigits = config.getPriceFractionDigits(); int sizeFractionDigits = config.getSizeFractionDigits(); txMessage.addField(OrderID).setInt(order.getOrderID()); txMessage.addField(ClOrdID).setString(order.getClOrdID()); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(ExecTypeValues.New); txMessage.addField(OrdStatus).setChar(order.getOrdStatus()); if (order.getAccount() != null) txMessage.addField(Account).setString(order.getAccount()); txMessage.addField(Symbol).setString(symbol); txMessage.addField(Side).setChar(order.getSide()); txMessage.addField(OrderQty).setFloat(order.getOrderQty(), sizeFractionDigits); txMessage.addField(LeavesQty).setFloat(order.getLeavesQty(), sizeFractionDigits); txMessage.addField(CumQty).setFloat(order.getCumQty(), sizeFractionDigits); txMessage.addField(AvgPx).setFloat(order.getAvgPx(), priceFractionDigits); fix.send(txMessage); }
private void sendOrderCancelAcknowledgement(Order order, char execType, char ordStatus) throws IOException { fix.prepare(txMessage, ExecutionReport); String symbol = order.getSymbol(); Instrument config = instruments.get(symbol); int priceFractionDigits = config.getPriceFractionDigits(); int sizeFractionDigits = config.getSizeFractionDigits(); txMessage.addField(OrderID).setInt(order.getOrderID()); txMessage.addField(ClOrdID).setString(order.getNextClOrdID()); txMessage.addField(OrigClOrdID).setString(order.getClOrdID()); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(execType); txMessage.addField(OrdStatus).setChar(ordStatus); if (order.getAccount() != null) txMessage.addField(Account).setString(order.getAccount()); txMessage.addField(Symbol).setString(symbol); txMessage.addField(Side).setChar(order.getSide()); txMessage.addField(OrderQty).setFloat(order.getOrderQty(), sizeFractionDigits); txMessage.addField(LeavesQty).setFloat(order.getLeavesQty(), sizeFractionDigits); txMessage.addField(CumQty).setFloat(order.getCumQty(), sizeFractionDigits); txMessage.addField(AvgPx).setFloat(order.getAvgPx(), priceFractionDigits); fix.send(txMessage); }
private void sendOrderCanceled(Order order, Instrument config) throws IOException { fix.prepare(txMessage, ExecutionReport); int priceFractionDigits = config.getPriceFractionDigits(); int sizeFractionDigits = config.getSizeFractionDigits(); char execType = ExecTypeValues.Canceled; char ordStatus = OrdStatusValues.Canceled; if (order.getLeavesQty() > 0) { execType = ExecTypeValues.Replaced; ordStatus = order.getOrdStatus(); } txMessage.addField(OrderID).setInt(order.getOrderID()); txMessage.addField(ClOrdID).setString(order.getClOrdID()); txMessage.addField(OrigClOrdID).setString(order.getOrigClOrdID()); txMessage.addField(ExecID).setString(fix.getCurrentTimestamp()); txMessage.addField(ExecType).setChar(execType); txMessage.addField(OrdStatus).setChar(ordStatus); if (order.getAccount() != null) txMessage.addField(Account).setString(order.getAccount()); txMessage.addField(Symbol).setString(order.getSymbol()); txMessage.addField(Side).setChar(order.getSide()); txMessage.addField(OrderQty).setFloat(order.getOrderQty(), sizeFractionDigits); txMessage.addField(LeavesQty).setFloat(order.getLeavesQty(), sizeFractionDigits); txMessage.addField(CumQty).setFloat(order.getCumQty(), sizeFractionDigits); txMessage.addField(AvgPx).setFloat(order.getAvgPx(), priceFractionDigits); fix.send(txMessage); }
@Setup(Level.Iteration) public void prepare() { string = new StringBuilder(32); date = new MutableDateTime(2015, 9, 24, 0, 0, 0, 0); timeOnly = new MutableDateTime(2015, 9, 24, 9, 30, 5, 250); timestamp = new MutableDateTime(2015, 9, 24, 9, 30, 5, 250); booleanValue = new FIXValue(64); booleanValue.setBoolean(true); charValue = new FIXValue(64); charValue.setChar('Y'); intValue = new FIXValue(64); intValue.setInt(123); floatValue = new FIXValue(64); floatValue.setFloat(12.30, 2); stringValue = new FIXValue(64); stringValue.setString("FOO"); dateValue = new FIXValue(64); dateValue.setDate(date); timeOnlyValue = new FIXValue(64); timeOnlyValue.setTimeOnly(timeOnly, true); timestampValue = new FIXValue(64); timestampValue.setTimestamp(timestamp, true); copyValue = new FIXValue(64); }
private void format() { message.reset(); message.addField(MsgType).setChar(OrderSingle); message.addField(SenderCompID).setString("initiator"); message.addField(TargetCompID).setString("acceptor"); message.addField(MsgSeqNum).setInt(2); message.addField(SendingTime).setString("20150924-09:30:05.250"); message.addField(ClOrdID).setString("123"); message.addField(HandlInst).setChar(HandlInstValues.AutomatedExecutionNoIntervention); message.addField(Symbol).setString("FOO"); message.addField(Side).setChar(SideValues.Buy); message.addField(TransactTime).setString("20150924-09:30:05.250"); message.addField(OrdType).setChar(OrdTypeValues.Limit); message.addField(Price).setFloat(150.25, 2); }
leavesQty = report.addField(LeavesQty); report.addField(CumQty).setInt(0); report.addField(AvgPx).setFloat(0.00, 2);