Introducing QWFIX Order Manager

QWFIX_J Order Manager is a FIX order management component that works with QWFIX engine.

 

The Goal

The goal is to build an order handling framework with a set of API (application programming interface). Application developers can use the API to perform order handling in their buy side or sell side applications. The resulting application will automatically work on all versions of FIX protocols. The QWFIX Order Manager will free programmers from the tedious version specific order handling so that the application developers can concentrate on the higher level business logics.

QWFIX also provides a GUI tool to manage the settings of the order manager. It will further simplify the development and management.

 

How Does It Work

QWFIX Order Manager registers itself as a FIXEngineMessageHandler for selected FIX sessions in a FIX engine. QWFIX Order Manager implements order handling logics on incoming and outgoing FIX messages with spefic message types (such as "New Order Single" or "Execution Report").

 

Event Model

QWFIX Order Manager uses event model to help application developers implement their own order handling business logics.

For example, for a buy side FIX session, events will be triggered when a new execution report is processed, or a "Cancel Reject" is processed. For a sell side application, events will be triggered when a new order is received, or a "Cancel Request"  or "Cancel/Replace Request" is received.

By using the event model, programmers no logner have to deal with the tedious work to re-construct the order information by themselves. The QWFIX Order Manager run time will help programmer maintain all information about an order, from the initial "New Order" message, to all subquent executions and order modifications (cancel or replace requests), in an object called "FIXOrder".

Once a new order is accepted, any further update to the status of the order (new messages sent/received related to the order, such as executions or order modifications) will trigger appropriate events.

 

Pluggable Handlers

The FIX messages and order handling logics are all different from FIX 4.0 to FIX 5.0. For example, FIX 4.0 "Execution Report" message contains field "ExecTransType". FIX 4.1 "Execution Report" contains field "ExecType". In FIX 4.2, both "ExecTransType" and "ExecType" are contained in "Execution Report" message. However, starting from FIX 4.3, "ExecTransType" is removed from execution message and "ExecType" is expanded.

QWFIX Order Manager implements handlers to correctly handler different FIX versions. As a result, the order handling is pretty much transparent to application developers. The developers can just use the Ordr Manager API to implement their order handling logic and the code will work with all versions of FIX protocol.

Handlers can be assigned to specific FIXSession using QWFIX Enterprise Manager.

Different organizations have their own implementation of FIX order handling logics. Some of them are not full comply with FIX specification. Teraspaces will work closely with our clients to write customized handler for their specific FIX versions.

 

Business Rules - Visual Lambda Integration

Visual Lambda is tightly integrated with Order Manager. Visual Lambda rules can be permanently added to the order manager, or dynamically "injected" into a running process.

Visual Lambda rules are applied on spefic FIX session. The rules can affect both order handling and message generation. For example, custom Visual Lambda rules can reject a new order based on some criteria. Users can also build a Visual Lambda rule to add a new field to a new order message, or modify the value of an existing field.

Visual Lambda adds additional flexibility to the order handling. Users can use Visual Lambda rules to adapt to new rules without modifying existing application code.

 

Message Generation Helper and Tag Copy Maps

QWFIX Order Manager provides helper functions to help application developers generate appropriate FIX messages.

For example, application can generate a "Cancel Request" FIX message against an order with one line of code. QWFIX Order Manager does that by using the message generation logics code in the "handler" associated with the FIX session, along with the field tags defined in "Tag Copy Map".

The "Tag Copy Map" defines a collection of field that should be copied from one FIX message to another FIX message.

For example, is the application needs to generate a "Order Cancel Request" message for a specific order. Once the FIXRegularOrder.createOrderCancelRequest() method is called, the run-time will perform the following operations.

 

GUI Based Editor

QWFIX Eneterprise Manager tool provides a GUI based editor to edit the settings of QWFIX Order Manager sessions. Visual Lambda rules and tag copy maps can be visually managed by the GUI tool.

In the GUI tool, the tag copy maps are automatically generated based on the actual FIX schema used in the FIX sessions. Users usually don't need to modify the tag copy maps at all.

The GUI tool greatly simplifies the development and management of the QWFIX trading system.

 

Limitations

Single, Multileg and List orders are implemented (including GT orders).

 Cross order support is disabled. We provide consulting service for Cross orders.