Execution Report - functions returns empty values

32 views
Skip to first unread message

Daniele Basaldella

unread,
Sep 15, 2016, 5:02:13 AM9/15/16
to fix8 developer
Dear Support,
please look at this case. With one specific FIX broker I have the following issue on Execution Report messsages.
My application reads the message and the processing class do its job fine but the two functions to get CumQty and AvgPrx.

Here is the relevant portion of code and below the details of FIX messages and yours library log where the same data are correctly exposed:
bool Myfix_router_client::operator() (const FIX8::FIX4400::ExecutionReport *msg) const
{
.....
        std::ostringstream oistr;
        FIX8::FIX4400::ClOrdID ordID;
        FIX8::FIX4400::Side side;
        FIX8::FIX4400::SendingTime timesend;
        FIX8::FIX4400::TransactTime transactTime;
        FIX8::FIX4400::CumQty cumQty;
        FIX8::FIX4400::AvgPx avePrx;
        msg->get(ordID);
        msg->get(side);
        msg->Header()->get(timesend);
        msg->get(transactTime);
        msg->get(cumQty);
        msg->get(avePrx);
        oistr << "[" << QTime::currentTime().toString("HH:mm:ss.zzz").toStdString().c_str() << "] "
              << transactTime()
<< " : " // ok
              << ordID()
<< " FILLED  ";   // ok
        msg->print_field(side.get_tag(), oistr);  // side  // ok
        oistr << "\n  cumQty=" << cumQty()  // NO
        // msg->print_field(14, oistr);  // Cum Qty  // NO
              << "  AvePrx=" << avePrx();   // NO
.....
}

FIX MESSAGES:
1- REQUEST
2- RECEIVED BROKER SIDE
3- FILLED (see in this message the fields are filled)

No.     Time                          Source                Destination           Protocol Length Info
      1 2016-09-14 14:31:02.808860    127.0.0.1             127.0.0.1             FIX      230    NewOrderSingle

Frame 1: 230 bytes on wire (1840 bits), 230 bytes captured (1840 bits)
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.1, Dst: 127.0.0.1
Transmission Control Protocol, Src Port: 39814, Dst Port: 41289, Seq: 1, Ack: 1, Len: 164
Financial Information eXchange Protocol
    BeginString (8): FIX.4.4
    BodyLength (9): 141
    MsgType (35): D (ORDER SINGLE)
    SenderCompID (49): XXXXXX-TRADE
    TargetCompID (56): XXXXXX
    MsgSeqNum (34): 18378
    SendingTime (52): 20160914-12:31:02.808
    ClOrdID (11): ORD167
    Symbol (55): XXXX
    Side (54): 1 (BUY)
    TransactTime (60): 20160914-12:31:02.808
    OrderQty (38): 1.0
    OrdType (40): C (FOREX MARKET)
    Currency (15): XXX
    TimeInForce (59): 4 (FILL OR KILL)
    CheckSum (10): 070 [correct]

No.     Time                          Source                Destination           Protocol Length Info
      2 2016-09-14 14:31:02.812406    127.0.0.1             127.0.0.1             FIX      324    ExecutionReport

Frame 2: 324 bytes on wire (2592 bits), 324 bytes captured (2592 bits)
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.1, Dst: 127.0.0.1
Transmission Control Protocol, Src Port: 41289, Dst Port: 39814, Seq: 1, Ack: 165, Len: 258
Financial Information eXchange Protocol
    BeginString (8): FIX.4.4
    BodyLength (9): 235
    MsgType (35): 8 (EXECUTION REPORT)
    SenderCompID (49): XXXXXX
    TargetCompID (56): XXXXXX-TRADE
    MsgSeqNum (34): 18992
    SendingTime (52): 20160914-12:31:02.810
    OrderID (37): 1601000000587990
    ClOrdID (11): ORD167
    ExecID (17): 0
    LastQty (32): 0
    LastPx (31): 0.0
    ExecType (150): 0 (NEW)
    OrdStatus (39): 0 (NEW)
    Symbol (55): XXXX
    Product (460): 4 (CURRENCY)
    Side (54): 1 (BUY)
    7534: 1
    OrderQty (38): 1
    OrdType (40): C (FOREX MARKET)
    Currency (15): XXX
    LeavesQty (151): 1
    Price (44): 0.0
    AvgPx (6): 0.0000
    StopPx (99): 0.0
    CumQty (14): 0
    MinQty (110): 1
    TransactTime (60): 20160914-12:31:02.810
    CheckSum (10): 105 [correct]

No.     Time                          Source                Destination           Protocol Length Info
      3 2016-09-14 14:31:02.838450    127.0.0.1             127.0.0.1             FIX      374    ExecutionReport

Frame 3: 374 bytes on wire (2992 bits), 374 bytes captured (2992 bits)
Ethernet II, Src: 00:00:00_00:00:00 (00:00:00:00:00:00), Dst: 00:00:00_00:00:00 (00:00:00:00:00:00)
Internet Protocol Version 4, Src: 127.0.0.1, Dst: 127.0.0.1
Transmission Control Protocol, Src Port: 41289, Dst Port: 39814, Seq: 259, Ack: 165, Len: 308
Financial Information eXchange Protocol
    BeginString (8): FIX.4.4
    BodyLength (9): 285
    MsgType (35): 8 (EXECUTION REPORT)
    SenderCompID (49): XXXXXX
    TargetCompID (56): XXXXXX-TRADE
    MsgSeqNum (34): 18993
    SendingTime (52): 20160914-12:31:02.836
    OrderID (37): 1601000000587990
    ClOrdID (11): ORD167
    NoPartyIDs (453): 1
    PartyID (448): XXXXXX
    PartyRole (452): 1 (EXECUTING FIRM)
    ExecID (17): 1601000001241948
    LastQty (32): 1
    LastPx (31): 10429.1
    ExecType (150): F (TRADE)
    OrdStatus (39): 2 (FILLED)
    Symbol (55): XXXX
    Product (460): 4 (CURRENCY)
    Side (54): 1 (BUY)
    7534: 1
    OrderQty (38): 1
    OrdType (40): C (FOREX MARKET)
    Currency (15): XXXX
    LeavesQty (151): 0
    Price (44): 0.0
    AvgPx (6): 10429.1000
    StopPx (99): 0.0
    CumQty (14): 1
    MinQty (110): 1
    TransactTime (60): 20160914-12:31:02.835
    CheckSum (10): 184 [correct]


LOGS:

8=FIX.4.4;9=141;35=D;49=XXXXX-TRADE;56=TS;34=18138;52=20160914-12:27:04.616;11=ORD165;55=XXX;54=1;60=20160914-12:27:04.616;38=1.0;40=C;15=XXX;59=4;10=070;
8=FIX.4.4;9=235;35=8;49=TS;56=XXXXX-TRADE;34=18742;52=20160914-12:27:04.620;37=1601000000587980;11=ORD165;17=0;32=0;31=0.0;150=0;39=0;55=XXX;460=4;54=1;7534=1;38=1;40=C;15=XXX;151=1;44=0.0;6=0.0000;99=0.0;14=0;110=1;60=20160914-12:27:04.618;10=114;
8=FIX.4.4;9=285;35=8;49=TS;56=XXXXX-TRADE;34=18743;52=20160914-12:27:04.702;37=1601000000587980;11=ORD165;453=1;448=XXXXX;452=1;17=1601000001241930;32=1;31=10430.1;150=F;39=2;55=XXXX;460=4;54=1;7534=1;38=1;40=C;15=XXX;151=0;44=0.0;6=10430.1000;99=0.0;14=1;110=1;60=20160914-12:27:04.700;10=146;

8=FIX.4.4;9=141;35=D;49=XXXXX-TRADE;56=TS;34=18162;52=20160914-12:27:28.256;11=ORD166;55=XXX;54=2;60=20160914-12:27:28.256;38=1.0;40=C;15=XXX;59=4;10=081;
8=FIX.4.4;9=235;35=8;49=TS;56=XXXXX-TRADE;34=18768;52=20160914-12:27:28.261;37=1601000000587982;11=ORD166;17=0;32=0;31=0.0;150=0;39=0;55=XXX;460=4;54=2;7534=2;38=1;40=C;15=XXX;151=1;44=0.0;6=0.0000;99=0.0;14=0;110=1;60=20160914-12:27:28.259;10=141;
8=FIX.4.4;9=285;35=8;49=TS;56=XXXXX-TRADE;34=18769;52=20160914-12:27:28.287;37=1601000000587982;11=ORD166;453=1;448=XXXXX;452=1;17=1601000001241933;32=1;31=10430.4;150=F;39=2;55=XXX;460=4;54=2;7534=2;38=1;40=C;15=XXX;151=0;44=0.0;6=10430.4000;99=0.0;14=1;110=1;60=20160914-12:27:28.286;10=197;

8=FIX.4.4;9=141;35=D;49=XXXXX-TRADE;56=TS;34=18378;52=20160914-12:31:02.808;11=ORD167;55=XXXX;54=1;60=20160914-12:31:02.808;38=1.0;40=C;15=XXX;59=4;10=070;
8=FIX.4.4;9=235;35=8;49=TS;56=XXXXX-TRADE;34=18992;52=20160914-12:31:02.810;37=1601000000587990;11=ORD167;17=0;32=0;31=0.0;150=0;39=0;55=XXXX;460=4;54=1;7534=1;38=1;40=C;15=XXX;151=1;44=0.0;6=0.0000;99=0.0;14=0;110=1;60=20160914-12:31:02.810;10=105;
8=FIX.4.4;9=285;35=8;49=TS;56=XXXXX-TRADE;34=18993;52=20160914-12:31:02.836;37=1601000000587990;11=ORD167;453=1;448=XXXXX;452=1;17=1601000001241948;32=1;31=10429.1;150=F;39=2;55=XXXX;460=4;54=1;7534=1;38=1;40=C;15=XXX;151=0;44=0.0;6=10429.1000;99=0.0;14=1;110=1;60=20160914-12:31:02.835;10=184;

8=FIX.4.4;9=141;35=D;49=XXXXX-TRADE;56=TS;34=18381;52=20160914-12:31:04.559;11=ORD168;55=XXXXX;54=2;60=20160914-12:31:04.559;38=1.0;40=C;15=XXX;59=4;10=076;
8=FIX.4.4;9=235;35=8;49=TS;56=XXXXX-TRADE;34=18996;52=20160914-12:31:04.562;37=1601000000587991;11=ORD168;17=0;32=0;31=0.0;150=0;39=0;55=XXXX;460=4;54=2;7534=2;38=1;40=C;15=XXX;151=1;44=0.0;6=0.0000;99=0.0;14=0;110=1;60=20160914-12:31:04.560;10=123;
8=FIX.4.4;9=285;35=8;49=TS;56=XXXXX-TRADE;34=18997;52=20160914-12:31:04.586;37=1601000000587991;11=ORD168;453=1;448=XXXXX;452=1;17=1601000001241949;32=1;31=10427.7;150=F;39=2;55=XXXX;460=4;54=2;7534=2;38=1;40=C;15=XXXX;151=0;44=0.0;6=10427.7000;99=0.0;14=1;110=1;60=20160914-12:31:04.585;10=209;

This is the user view


Feel free to ask me for any further detail

Best Regards
Daniele Basaldella


Auto Generated Inline Image 1

Mazz Barker

unread,
Sep 15, 2016, 8:43:42 PM9/15/16
to fix8 developer
The logs show two execution reports, the first an order confirmation, the second the trade. The first has cumqty and avprx with values of zero. The second shows values. I can't see a problem. 
Mazz

Daniele Basaldella

unread,
Sep 16, 2016, 3:41:31 AM9/16/16
to fix8 developer
The problem is the FILLED message, the second one, have the prices and quantites but the functions don't return that values

Daniele

Daniele Basaldella

unread,
Sep 16, 2016, 4:11:45 AM9/16/16
to fix8 developer
To give you more details, the part of code in my previous mail is executed only when field 150 ExecType = 'F'. This condition is matched only for filled trades, so, the second message.

I gave you a complete scenario so you can simulate the case.

BR
Daniele

Mazz Barker

unread,
Sep 16, 2016, 5:01:56 AM9/16/16
to fix8 developer
Sorry I don't have time to run your simulation but it is likely you are doing something wrong. Sounds like you need help from Fix8 guys.
Mazz
Reply all
Reply to author
Forward
0 new messages