I recently implemented a standalone FIX message parser in C++ as I wanted to answer a few questions I had myself about the design on the protocol.
To define the protocol [what messages, fields, values are allowed] I use the same XML format that QuickFix and QuickFix/J use. This is a more compactly rendered subset of the information provided in the fixprotocol.org XML repository.
The spec itself is most easily browsed via the foxprotocol.org’s ‘Fiximate’ site, or download the full PDF specification.
I did notice that QuickFix and QuickFix/J seem to come only with FIX 4.0 through FIX 4.4 definitions… After some pain wrangling XML with perl I created FIX50SP2 which should match the most recent FIX specification.
You can find the full source, and the FIX 5 XML definition on the google code project page.
Note : BSD licence, uses gnu C++ on Linux, makefile build, depends on libXML2 for SAX2 parsing of XML
enjoy, and happy gnu year!
gord.

3 comments
Comments feed for this article
January 28, 2010 at 1:01 am
Steve Bate
Just FYI, QuickFIX/J comes with FIXT1.1 and FIX 5.0 XML data dictionaries.
January 28, 2010 at 1:36 am
quantblog
Steve,
Sure, QuickFix/J pure Java implementation does have FIX50.xml and FIXT11.xml, as you mention [nice work, by the way].
The QuickFix C++ project I refer to seems to be less frequently maintained – the most recent branch on github has some changes but no support for FIX 5, from what I can tell.
With FIX 5 ‘Transport Independence’ fixprotocol.org factored out the header/trailer and session messages into FIXTR11.xml. As the header and trailer section of FIX50.xml are empty the XML format is incompatible. The code would need to change to handle that, or the sections could be merged in despite their logical distinction [ as I did with my own wrangled FIX50SP2.xml ]
Hopefully, Ill have some time to test QF C++ with the FIX v5, it seems a popular request on the mailing list.
[ps. I also noticed the required=Y for component field Instrument.Symbol is unset, which might be a difference between FIX 5 and 5.0 SP3. Id need to check, unless you know offhand? ]
gord.
April 19, 2011 at 11:32 am
Ben
Handy, thanks..