diff --git a/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java b/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java index 2861b28fc..ed2f0a062 100644 --- a/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java +++ b/quickfixj-examples/executor/src/main/java/quickfix/examples/executor/Application.java @@ -149,9 +149,10 @@ public void onMessage(quickfix.fix40.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix40.ExecutionReport fill = new quickfix.fix40.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new OrdStatus(OrdStatus.FILLED), order.getSymbol(), order - .getSide(), orderQty, new LastShares(orderQty.getValue()), new LastPx(price.getValue()), + .getSide(), orderQty, new LastShares(lastShares), new LastPx(price.getValue()), new CumQty(orderQty.getValue()), new AvgPx(price.getValue())); fill.set(order.getClOrdID()); @@ -246,10 +247,11 @@ public void onMessage(quickfix.fix41.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix41.ExecutionReport executionReport = new quickfix.fix41.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new ExecType(ExecType.FILL), new OrdStatus( - OrdStatus.FILLED), order.getSymbol(), order.getSide(), orderQty, new LastShares(orderQty - .getValue()), new LastPx(price.getValue()), new LeavesQty(0), new CumQty(orderQty + OrdStatus.FILLED), order.getSymbol(), order.getSide(), orderQty, new LastShares(lastShares), + new LastPx(price.getValue()), new LeavesQty(0), new CumQty(orderQty .getValue()), new AvgPx(price.getValue())); executionReport.set(order.getClOrdID()); @@ -277,6 +279,7 @@ public void onMessage(quickfix.fix42.NewOrderSingle order, SessionID sessionID) sendMessage(sessionID, accept); if (isOrderExecutable(order, price)) { + int lastShares = (int) orderQty.getValue(); quickfix.fix42.ExecutionReport executionReport = new quickfix.fix42.ExecutionReport(genOrderID(), genExecID(), new ExecTransType(ExecTransType.NEW), new ExecType(ExecType.FILL), new OrdStatus( OrdStatus.FILLED), order.getSymbol(), order.getSide(), new LeavesQty(0), new CumQty( @@ -284,7 +287,7 @@ public void onMessage(quickfix.fix42.NewOrderSingle order, SessionID sessionID) executionReport.set(order.getClOrdID()); executionReport.set(orderQty); - executionReport.set(new LastShares(orderQty.getValue())); + executionReport.set(new LastShares(lastShares)); executionReport.set(new LastPx(price.getValue())); sendMessage(sessionID, executionReport);