Custom Messaging and QuickFIX

Imported from previous forum

I’m trying to build a Custom message (35=CX) in FIX 4.2 using QuickFIX. This message represents a cleared execution from CME’s ClearPort that will be used by our internal systems. It is a very simple message that contains an OrderID, a ClearPortExecID, a status and a repeating group for each leg of the cleared strategy. Within that repeating group, I have a custom tag that represents the cleared quantity for that leg (thus, if I buy 100 1x2s, this quantity would contain 100 for the first leg and -200 for the second). The problem is that no matter what I do, QuickFIX rejects with an Incorrect NumInGroup (even though tag 555 is correct). Here’s the relevant FIX42.xml data dictionary entries:

<message name="ClearPortExecution" msgtype="CX" msgcat="app">
  <field name="ClearPortExecID" required="Y"/>
  <field name="OrderID" required="Y"/>
  <field name="ClearPortStatus" required="Y"/>
  <field name="Text" required="N"/>
  <group name="NoLegs" required="Y">
<field name="LegPrice" required="N"/>
    <field name="LegSecurityDesc" required="N"/>
<field name="LegQty" required="N"/>
  </group>

<field number="9803" name="ClearPortStatus" type="CHAR">
  <value enum="0" description="PENDING"/>
  <value enum="1" description="ACCEPTED"/>
  <value enum="2" description="REJECTED"/>  
</field>
<field number="9804" name="LegQty" type="QTY"/>

and some sample messages and rejects:

8=FIX.4.2 9=139 35=CX 37=20103004100537397 49=OTCTECH 50=EBROKERFIX 56=OTCMKTDATA 57=EBROKERFIX 555=1 620=LOM0 C7500 566=100.0 9804=-10 9802=283657 9803=1 10=031

8=FIX.4.2 9=131 35=3 34=9 49=OTCTECH 52=20100504-15:30:43.814 56=EBROKERFIX 45=41 58=Incorrect NumInGroup count for repeating group 371=555 372=CX 10=059

Any thoughts?

Thanks,
Chris

In a repeating group, tag 600 MUST follow 555.
Repeating group strucutres are a little more particular than other elements of FIX messages.

I’m trying to build a Custom message (35=CX) in FIX 4.2 using QuickFIX.
This message represents a cleared execution from CME’s ClearPort that
will be used by our internal systems. It is a very simple message that
contains an OrderID, a ClearPortExecID, a status and a repeating group
for each leg of the cleared strategy. Within that repeating group, I
have a custom tag that represents the cleared quantity for that leg
(thus, if I buy 100 1x2s, this quantity would contain 100 for the first
leg and -200 for the second). The problem is that no matter what I do,
QuickFIX rejects with an Incorrect NumInGroup (even though tag 555 is
correct). Here’s the relevant FIX42.xml data dictionary entries:

<message name="ClearPortExecution" msgtype="CX" msgcat="app"> <field
name="ClearPortExecID" required="Y"/> <field name="OrderID"
required="Y"/> <field name="ClearPortStatus" required="Y"/> <field
name="Text" required="N"/> <group name="NoLegs" required="Y"> <field
name="LegPrice" required="N"/> <field name="LegSecurityDesc"
required="N"/> <field name="LegQty" required="N"/> </group>

<field number="9803" name="ClearPortStatus" type="CHAR"> <value
enum="0" description="PENDING"/> <value enum="1"
description="ACCEPTED"/> <value enum="2" description="REJECTED"/>
</field> <field number="9804" name="LegQty" type="QTY"/>

and some sample messages and rejects:

8=FIX.4.2 9=139 35=CX 37=20103004100537397 49=OTCTECH 50=EBROKERFIX
56=OTCMKTDATA 57=EBROKERFIX 555=1 620=LOM0 C7500 566=100.0 9804=-
10 9802=283657 9803=1 10=031

8=FIX.4.2 9=131 35=3 34=9 49=OTCTECH 52=20100504-15:30:43.814
56=EBROKERFIX 45=41 58=Incorrect NumInGroup count for repeating
group 371=555 372=CX 10=059

Any thoughts?

Thanks, Chris

Hey Jay,

I added 600 (along with a bunch of others), but still get the Incorrect NumInGroup reject.

8=FIX.4.2 9=199 35=CX 37=20101204120500005 49=OTCTECH 50=EBROKERFIX 56=OTCMKTDATA 57=EBROKERFIX 555=1 600=LO 602=600464 603=CME 608=OCAFCS 610=201006 612=75.0 620=LOM0 C7500 624=1 566=100.0 9804=10 9802=283673 9803=1 10=173

8=FIX.4.2 9=131 35=3 34=9 49=OTCTECH 52=20100504-17:12:10.375 56=EBROKERFIX 45=41 58=Incorrect NumInGroup count for repeating group 371=555 372=CX 10=057

I’m sure there’s yet another tag I’m missing that will tie everything together…

Hope all is well at the CME!

Thanks again!
Chris

Hi Chris,

As far as I know, User defined / Custom message types have 35=U* (start with capital U) where * is some string of numbers / letters. I do not know why a user defined message is having 35=CX. I do not know QuickFIX well enough, try 35=UCX and it should work.

Regards,
K. Mahesh

I’m trying to build a Custom message (35=CX) in FIX 4.2 using QuickFIX.
This message represents a cleared execution from CME’s ClearPort that
will be used by our internal systems. It is a very simple message that
contains an OrderID, a ClearPortExecID, a status and a repeating group
for each leg of the cleared strategy. Within that repeating group, I
have a custom tag that represents the cleared quantity for that leg
(thus, if I buy 100 1x2s, this quantity would contain 100 for the first
leg and -200 for the second). The problem is that no matter what I do,
QuickFIX rejects with an Incorrect NumInGroup (even though tag 555 is
correct). Here’s the relevant FIX42.xml data dictionary entries:

<message name="ClearPortExecution" msgtype="CX" msgcat="app"> <field
name="ClearPortExecID" required="Y"/> <field name="OrderID"
required="Y"/> <field name="ClearPortStatus" required="Y"/> <field
name="Text" required="N"/> <group name="NoLegs" required="Y"> <field
name="LegPrice" required="N"/> <field name="LegSecurityDesc"
required="N"/> <field name="LegQty" required="N"/> </group>

<field number="9803" name="ClearPortStatus" type="CHAR"> <value
enum="0" description="PENDING"/> <value enum="1"
description="ACCEPTED"/> <value enum="2" description="REJECTED"/>
</field> <field number="9804" name="LegQty" type="QTY"/>

and some sample messages and rejects:

8=FIX.4.2 9=139 35=CX 37=20103004100537397 49=OTCTECH 50=EBROKERFIX
56=OTCMKTDATA 57=EBROKERFIX 555=1 620=LOM0 C7500 566=100.0 9804=-
10 9802=283657 9803=1 10=031

8=FIX.4.2 9=131 35=3 34=9 49=OTCTECH 52=20100504-15:30:43.814
56=EBROKERFIX 45=41 58=Incorrect NumInGroup count for repeating
group 371=555 372=CX 10=059

Any thoughts?

Thanks, Chris

Hi Chris,

Not that this is the issue, but I thought I’d point out that there is a new release of QuickFIX available now. You might want to download that and see if you get the same behavior.

Regards,

Russ

I’m trying to build a Custom message (35=CX) in FIX 4.2 using QuickFIX. This message represents a cleared execution from CME’s ClearPort that will be used by our internal systems. It is a very simple message that contains an OrderID, a ClearPortExecID, a status and a repeating group for each leg of the cleared strategy. Within that repeating group, I have a custom tag that represents the cleared quantity for that leg (thus, if I buy 100 1x2s, this quantity would contain 100 for the first leg and -200 for the second). The problem is that no matter what I do, QuickFIX rejects with an Incorrect NumInGroup (even though tag 555 is correct). Here’s the relevant FIX42.xml data dictionary entries:

<message name="ClearPortExecution" msgtype="CX" msgcat="app">
  <field name="ClearPortExecID" required="Y"/>
  <field name="OrderID" required="Y"/>
  <field name="ClearPortStatus" required="Y"/>
  <field name="Text" required="N"/>
  <group name="NoLegs" required="Y">
<field number="9803" name="ClearPortStatus" type="CHAR">
  <value enum="0" description="PENDING"/>
  <value enum="1" description="ACCEPTED"/>
  <value enum="2" description="REJECTED"/>  
</field>
<field number="9804" name="LegQty" type="QTY"/>

and some sample messages and rejects:

8=FIX.4.2 9=139 35=CX 37=20103004100537397 49=OTCTECH 50=EBROKERFIX 56=OTCMKTDATA 57=EBROKERFIX 555=1 620=LOM0 C7500 566=100.0 9804=-10 9802=283657 9803=1 10=031

8=FIX.4.2 9=131 35=3 34=9 49=OTCTECH 52=20100504-15:30:43.814 56=EBROKERFIX 45=41 58=Incorrect NumInGroup count for repeating group 371=555 372=CX 10=059

Any thoughts?

Thanks,
Chris