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
- Allows establishing multiple acceptor/initiator sessions to local and/or remote hosts
- Supports unregistered acceptor sessions
- Supports standard FIX versions 4.0 - 5.0 SP2 and dialects
- Supports all FIX message types (pre-trade, trade, post-trade, market data, etc.)
- Supports wide range of FIX session settings including Custom Logon message
- Allows overriding Sender and Target CompIDs for established session
- Allows manual sequence numbers definition or reset
- Allows restarting working session Allows enabling/disabling message re-sending
- Allows events monitoring:
- sent and received messages
- active sessions
- sessions statuses in real-time
- Allows writing raw FIX messages, opening and editing them in the table view
- Provides ability to search for a particular character or the sequence of them in a raw FIX message
- Provides ability to load, modify and send a file containing preset message or batch of messages
- Provides ability to send messages in a defined interval
- Provides optional ability for message validation for both incoming and outgoing messages
- Provides ability to autoincrement tag values of FIX messages sent to session
- Provides ability to replay log files - send FIX messages from log file to session
- Provides ability to save application state (the application remember parameters and state of FIX Sessions that were on the moment of last application closing and use them on next startup)
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.
Any modern Intel-based server or workstation with 64 bit CPU
- Supported operating systems:
- Windows 7
- Windows 8
- Windows 10
- Windows Server 2008 R2
- Windows Server 2012
- The list of packages that should be installed before FIX Client Simulator's installation:
- VS 2010 C++ Redistributable Package (x64) https://www.microsoft.com/en-US/download/details.aspx?id=14632. It can be found in FIX Antenna's or Simple Client's (2.21 or higher) package \Redist directory
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.
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.
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 sending. Tag 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:
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 suspend sending messages from the log (Pause button)
- to stop sending messages from the log (Stop button)
- to send messages one by one (just after Loading file, after Pause, after Stop. Next button)
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).
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:
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.
Example showing how to re-order tags for screenshot above
TimeInForce (tag 59) is located after block parties (tag 453)
TimeInForce (tag 59) is located before block parties (tag 453)
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:
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:
To enable message re-sending open Options from context menu and tick Allow message re-sending:
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.
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:
Make sure that Microsoft Visual C++ 2010 Redistributable is installed. You can find it in the package: ./redist/vc10_vcredist_x64.exe