Search code examples
quickfixfix-protocol

Add user defined fields in the FIX dictionary


I need to add/modify fields in the FIX4.4 dictionary. I haven't found any helpful documentation or tutorials on this.

I'm guessing I have to modify the FIX44.xml file, but I'm not sure how exactly to do that. In the <message></message> tags I don't see any attributes that define the number or the type(format) of that field. I see just the name and required attributes.

I think I found attributes I', looking for in the <fields></fields> tags.

I'm not sure if I'm looking in the right place or if I'm doing the right thing, but according to this I should modify the dictionary if it is necessary.

Please help. A link to a tutorial for beginners that can help me would also be greatly appreciated.


Solution

  • The FIX Data Dictionary in QuickFIX contains Messages and Fields (among other things).

    To add Messages you must add the message between the <messages></messages> tags like this:

    <message name="CoolMessage" msgcat="app" msgtype="xCM">
        <field name="Currency" required="N"/>
        <field name="Text" required="N"/>
        <field name="Account" required="Y"/>
    </message>
    

    And then add the new msgtype to the MsgType field in the <fields></fields> section like this:

    <field number='35' name='MsgType' type='STRING'>
        ...
        <value enum='xCM' description='COOLMESSAGE'/>
    </field>
    

    If you want to add new fields, just add them between the <fields></fields> tags like this:

    <fields>
        <field number="1" name="Account" type="STRING"/>
        <field number="2" name="AdvId" type="STRING"/>
        <field number="3" name="AdvRefID" type="STRING"/>
        ...
        <field number="9006" name="AwesomeField" type="STRING"/>
    </fields>
    

    This and more information can be found in this tutorial.