How to Test FIX Protocol Integrations

Published 2018/05/24
Gregg Drumma
Overview:

There are two parts to FIX protocol testing, the session layer and the application layer.   The session layer focuses on the robust guaranteed delivery of the FIX protocol.  Each FIX message contains a sequence number and must be processed in order.   If a message is missing, FIX has a built in resend/re-sequencing protocol.   Each message also contains a checksum calculation, so the receiving party has confidence the message has not been corrupted.    These and other technical features of FIX creates a dependable and stable transmission of messages.   Most modern FIX engines (commercial and open source) have highly tested session layers.  Of course, those sequence numbers and checksums pose a challenge when trying to replay messages from one session on another for testing.  More on this later.

Application Layer

Outside of the messaging, the actual business logic is the focus of much of the process around FIX Testing.  For example, what is the proper message to accept a cancel request for an order than has been partially filled?  The FIX specification does a good job describing these requirements in the documentation, but human interpretations and implementations can vary.   Having a testing tool that can provide guidance is key when implementing and testing your FIX enabled application.

Custom Tags / Interfaces

FIX has been extended by many vendors to include custom tags and even custom message types.  For example, equity algorithmic trading interfaces often come with additional proprietary tags to direct a broker on how to execute an order sent to them.   These tags are specific only to a particular broker.  Another example are more complex security types in the fixed income and OTC derivatives space, which often require more details than a standard FIX message has defined.

Access to a reliable testing solution

In our own development of FIX software and solutions at Gamma Three Trading, we were always finding ourselves looking to connect and test our FIX products.   At the time there were some large commercial testing platforms on the market, but we needed something much simpler and something we configure on the fly.   This was the beginning of our FIXSIM testing platform.   By having a hosted solution, we quickly built up / tore down testing sessions and were able troubleshoot production issues with ease.  Apparently we were not alone, as we now have clients around the world who use our service.

Replaying Logs

As mentioned above, when a production issue occurs and we want to simulate the event in test, recreating the messages that transpired from scratch was extremely cumbersome.   FIXSIM offers a solution to this problem with it's "Raw Message" capability.  A user can take a valid FIX message from another session (e.g. production log), paste it into FIXSIM and the message will have it's header (Sender/Target CompIDs, sequence number, body length) and footer (checksum) recalculated for the target session automatically.  Immensely powerful when trying to recreate an issue.

FIXSIM Testing

With on-demand access and month to month billing, signing up for a FIXSIM account gives access to the most powerful FIX testing solution in an easy to use SaaS model.   Whether you need to test basic order flow, complex derivatives trading, or troubleshoot production issues, FIXSIM has a plan that's right for you!