Product overview

FIX Client Simulator is an administrative application that allows initiating and accepting FIX sessions, exchanging and editing FIX messages. The tool is based on .NET technologies and can be used to Simulate FIX buy and/or sell side end points. FIX Client Simulator built on top of the FIX Antenna™ engine and shares all its common features and benefits. FIX Client Simulator uses B2BITS' FIXopaedia as FIX reference source and provides complete support of all standard and custom FIX dictionaries.

FIX Client Simulator features

Prerequisites and System Requirements

FIX Client Simulator is based on FIX Antenna C++/.NET FIX Engine (for more details refer to FIX Antenna C/C++/.NET FIX Engine documents). It can be installed separately or as a part of FIX Antenna .NET package.  

    1. Hardware:
      Any modern Intel-based server or workstation with 64 bit CPU
    2. Supported operating systems:
      • Windows 7
      • Windows 8
      • Windows Server 2008 R2
      • Windows Server 2012
    3. The list of packages that should be installed before FIX Client Simulator's installation:

Session Creation

In order to create session please  choose:  Session => Create new:

Specify session type (Initiator or Acceptor) and parameters (SenderCompID, TargetCompID, remote host and port) within Create Session window:

The left column of the Create Session window includes all required parameters. If at least one of them is specified incorrectly, the session will not be created.

The right column includes extended parameters that are optional.

Custom Logon messages can be used after ticking the corresponding line on the bottom of the window.

After the session is established you will see it in “Session List” section. All received messages will be displayed in the Event section below.

Manual sequence numbers definition and reset

To define sequence numbers manually open Create Session window and specify values in InSeqNum/OutSeqNum:

To reset sequence numbers manually open Create Session window and tick Reset Sequence number.

Display administrative messages in console

To see or hide administrative messages in console open Create Session window and tick a checkbox Show session messages, by default the checkbox is empty.

CreateSession.png

You can select a session and click on Show session messages in Session menu or in context menu of session window.


This setting stored as other session settings and restored after session restart.

Sending Messages

In order to send a message, please specify it in Send Message tab, choose session and press Send button.  Please note that Sequence number and sending time will be set automatically:

To override Sender and Target CompIDs tick Override SenderCompIDs or Override TargetCompID in in the main menu of the application in the Options section

To specify message sending rate enter the value in Rate(msg/sec) input field in Send Message tab.

Autoincrement tag values

When sending messages, the values of the specified numeric tags can be automatically increased with each sendingTag numbers that must be changed are set in the Autoincrement tags field. If you want to change the values of several tags, their numbers must be separated by a space. If the tag is included in the Repeating group, the root tag must go first then slash symbol and then tag as shown on the figure below:

Replay Log

To send messages from log file to session (replay log file), please specify log file in Replay tab, choose session and press Play button.  

Also provides ability:

To send a certain range of messages it is possible to specify a filter by Sequence numbers or/and types of messages (Filter). 

The log can be replayed several times. The number of replays is set by the Send count parameter.

The Send count parameter is ignored if messages are sent one by one

To specify message sending rate for message sending enter the value in Rate(msg/sec) field in Replay tab. Also the interval can be calculated based on the timestamp in the log file (Use timestamps tick). 

In addition, the interval for sending messages is changed by setting a multiplier other than one (Speed parameter).

Events Monitoring

The upper part of the Simple Client window displays the message to be sent.

The middle part shows the list of active sessions.

And the lower part is an event log, each record corresponding to one event and consisting of the event time, name and description:

Tag Order

FIX Client Simulator changes the tags' order in Event Viewer according to the dictionaries' structure. 

It happens when the dictionary used by the Simple Client, has not the same tag order as it is in counterparty's specification. In the Event Viewer, the messages are represented according to the dictionary's structure. The original tag order may be seen in incoming log files.

If you want to keep the order the same as in the received message, the dictionary should be updated according to counterparty's specification.

How to change the order of tags in a FIX message?

FIX Antenna C++/.NET dictionaries format

FIX and FIXML Dictionaries Customization Guide

Example showing how to re-order tags for screenshot above

 TimeInForce (tag 59) is located after block parties (tag 453)

<msgdef msgtype="D" name="New Order - Single">
...
	<block idref="Parties"/>
...  
	<field tag="59" name="TimeInForce">
		<comment>Absence of this field indicates Day order</comment>
	</field>
...
</msgdef>

TimeInForce (tag 59) is located before block parties (tag 453)

<msgdef msgtype="D" name="New Order - Single">
...            
    <field tag="59" name="TimeInForce">
        <comment>Absence of this field indicates Day order</comment>
    </field>
	<block idref="Parties"/>
... 	
</msgdef>

Searching in a raw message

You can search for a particular character or the sequence of them in a raw message using the search line below the Send Message field:

Writing messages

You can write a message in the Send Message field and edit it:


To enter a field delimiter click right button in Send Message field and choose Insert <SOH>:

Loading predefined message or message batch

You can load a preset message and edit it before sending.

Go to Message -> Load to load a preset message and click the Send button to send it to the counterparty. Or select Message -> Send batch to load and immediately (without editing) send a number of preset messages from one file:

Create messages from template

You can create a template message from a dictionary with required tags and edit it before sending.

Go to Message -> Create to load a list of messages from a dictionary, which is corresponding with the selected session. Click the Create button to open it in editable table for further filling of tag values and sending the message to the counterparty:

Message re-sending

To enable message re-sending open Options from context menu and tick Allow message re-sending:

Table View

You can open a message in the table view and edit its tags, although adding and removing tags is possible only in the raw view. Right-click the Send Message field and select Edit from the context menu or press F4:

Save session configuration

When creating new session, you have an option to save session parameters and use them to restore the session after disconnect:

There is no limit on the number of sessions that can be stored in the list, you can save as many sessions as you need or delete unnecessary sessions.

Closing session

In order to close session correctly, please select session and click right mouse button selecting Close session option:

or select Session from context menu and choose Close  or Close All:

Troubleshooting

Make sure that Microsoft Visual C++ 2010 Redistributable is installed. You can find it in the package: ./redist/vc10_vcredist_x64.exe