Uploaded image for project: 'QuickFIX/J'
  1. QuickFIX/J
  2. QFJ-685

Extend QuicFIX for custom FIX messages

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Default
    • Resolution: Not a bug
    • Affects Version/s: Future Releases
    • Fix Version/s: None
    • Component/s: Message Generation
    • Labels:
    • Environment:
      All environment

      Description

      I have a need where QuickFIX can generate the code for custom FIX messages say Goldman-Sachs or Barclayes or citi, etc. I went through the code. I found that we can extend QuickFIX to support this with very minimal change. I am briefly listing them here. Let me know if it is a meaningfull change then I can upload a patch for you to incorporate.

      All changes are localized to code gen module
      1. Currently versions are hardcoded in a single array within MessageCodeGenerator. These versions are used for most of the tasks in code generation like accessing Data dictionary (XML files containing FIX messages, fields and components), generating FIX packages, etc. We need to move these versions to program arguments (say comma separated)
      2. All fields are generated within single package (fields package). Though it is fine for standard FIX messages, it might not be sufficient for custom FIX as GS and BCX can use the same tag (user defined field) for different purpose. So, there should be a rule based on which we can decide if the fields should be generated in single package or separate ones (as simple as the version if it stars with FIX then standard else custom)
      3. XSL files assume that fields are in same package and hardcodes the "import quickfix.fields.*". It has to be changed to a dynamic one based on parameter.

      Above are most of the major changes. Once we do that, we can create a custom version by changing on top of the base version. If GS' FIX message is an extension of FIX 4.2, then we can create a copy of FIX 4,2 .xml (data dictionary) and name it as "GSFIX 4.2" and do changes within it. Once we include GSFIX 4.2 as part of version, we will get all messages generated.

      I understand that the core engine is specifically built for FIX standard spec. As FIX standards allows firms to customize the FIX messages, my thought is on the same lines with QuickFIX as perspective. Let me know if this approach is right. I am open for other better approaches too to achieve this.

        Attachments

          Activity

            People

            • Assignee:
              Unassigned
              Reporter:
              arunramkrish Arunkumar Krishnamoorthy
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: