Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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.

like image 772
Qsiris Avatar asked Nov 15 '12 16:11

Qsiris


People also ask

What is FIX tag 48?

SecurityID (Tag = 48, Type: String) CUSIP or other alternate security identifier. Used in: Indication of Interest (6)

What is FIX tag 38?

OrderQty (Tag = 38, Type: Qty) This represents the number of shares for equities or based on normal convention the number of contracts for options, futures, convertible bonds, etc.

What is FIX tag 76?

ExecBroker (Tag = 76, Type: String)Identifies executing / give-up broker. Standard NASD market-maker mnemonic is preferred. Used in: Execution Report (8)

What is exec ID?

ExecID (Tag = 17, Type: String)Unique identifier of Execution Report (8) message as assigned by sell-side (broker, exchange, ECN) (will be 0 (zero) for ExecType (150) =I (Order Status)). Uniqueness must be guaranteed within a single trading day or the life of a multi-day order.


1 Answers

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.

like image 124
Qsiris Avatar answered Sep 19 '22 05:09

Qsiris