Stirling is an open source electronic trading library for the JVM. It currently comprises of a FIX Engine and an ITCH implementation.
Open a FIX console:
sbt one-jar java -jar stirling.jar
Run all unit tests:
Run the performance test:
sbt make-perftest script/perftest
The FIX Engine requires MongoDB 1.4.3 or newer. It uses a database called
FIX Protocol Profiles
In order to support messages of various FIX protocol profiles, Stirling allows definition of message classes that are profile specific. In most cases, a profile specific FIX message comprises of fields, which can be categorized by their value as follows: (a) the values of a field is fully specified by the standard, (b) the values of a field is a subset of the standard, or (c) the values of a field is not defined in the standard and may assign another meaning for a value that is specified in the standard.
If the field is defined as it is defined in the standard, then the standard
field type is used. The fields following the standard are placed under the
A profile specific enumeration is introduced when the standard defines a string field and the profile specifies an enumeration of possible values. A profile specific enumeration is also introduced when the profile uses non-standard values in the enumeration. However, if the profile uses a subset of an enumeration, Stirling uses the standard field type.
In cases where a field is a combination of multiple characters, a field is based on the string field type and the validation of such fields is left for the user.
The ITCH implementation supports the following profiles:
It currently comprises of a message parser. SoupTCP, the transport protocol used by ITCH, is yet to be implemented.