System Components

QWFIX contains the following components

  1. Repository Server
    Repository Server is the central location to store all QWFIX configuration information, which includes, but not limit to, FIX schema information (currently version 4.0 through 5.0SP1 are supported), FAST templates, scheduler information, Visual Lambda modules, FIX engine and process configuration information.

    The QWFIX repository is similar to a simplified network based file system. A .Net based programming interface is provided to create, modify and delete files in certain locations. The locations can be viewed as directories.

    For every file created and every file modified in a QWFIX repository, a backup copy is automatically created in the repository. Methods of querying all backups against a given file (list and read) is provided in the library. The system is designed in a way that a backup should never be modified or deleted so that the history of the changes of the configuration is kept forever.

    A Repository Server is a Windows Service written in .Net that runs under both 32 bit and 64 bit Windows systems natively.

    For a single trader who wants to build a trading system for him/her self, it's OK to run the trading system and repository server on the same machine. Nevertheless, it's recommended that, a big institution should centralize the system configurations by running a single centralized repository server on a dedicated machine and mandate all other QWFIX based application to use that server.
  2. Visual Lambda
    Visual Lambda is a graphical programming language. Unlike traditional programming languages, Visual Lambda provides a GUI tool to help user build complicated business rules.

    For simple tasks, Visual Lambda is extremely easy to grasp. Most of the administrative tasks of a trading system are just simple, for example, adding a custom field to an existing FIX message before it's sent out; rejecting an order based on the value of a few field in the order message, etc. Visual Lambda is best suited for that kind of applications. The graphic based Visual Lambda module builder can not only guide the users step by step to build a complete statement, but also do a lot of checks to prevent a lot of potential errors. Besides, it's easier to review modules built by other person.

    For programmers, it's very easy to integrate Visual Lambda runtime into application processes. Visual Lambda can take a module dynamically during run-time, compile it on-the-fly into.Net IL code, which will be further compiled into machine code by .Net run-time eventually and executed at full speed.

    In theory, as a programming language, Visual Lambda can be proved to be computational complete, i.e. it could offer the programmer features to express any algorithm. In practice, to end users, Visual Lambda is a tool that perfectly limited the scope of the problem to a specific domain while providing enough flexibility for customization.

    Visual Lambda is currently supported in .Net, Java and C++ on all major OS platforms.
  3. QWFIX Software Development Kit (SDK)
    The QWFIX SDK contains several components that can be used by application developers to develop trading applications using FIX and FAST protocol.

    Apart from the components that manages FIX engine and FIX sessions, the QWFIX SDK also provides a comprehensive order management components that combines the management of FIX orders from FIX 4.0 to 5.0+ into one single uniform interface with event driven model.

    The SDK also contains helper classes for system integration, Visual Lambda integration and some common GUI components. Those components can also be licensed to third party developers.

    For more information, please refer to QWFIX Programming Manual.
  4. QWFIX Enterprise Manager
    QWFIX Enterprise Manager is is an integrated environment for accessing, managing, administering, and developing configuration for QWFIX system.

    QWFIX Enterprise Manager combines a broad group of graphical tools to access configuration files such as FIX schemas, FAST schemas, schedulers, business rules as Visual Lambda modules and FIX engine configurations stored in the Repository Server.

    QWFIX Enterprise Manager is a single comprehensive utility that combines easy-to-use graphical tools and can be used by application developers, trading system administrations and order room staffs.
  5. Common Utilities
    QWFIX also provides some standard utilities.

    QWFIX Gateway
    QWFIX Gateway is an almost-ready-to-use off the shelf utility that handles FIX order routing with FIX message normalization and FIX protocol conversion.

    QWFIX Gateway already has complete logic for order management with FIX protocol 4.0 to 5.0+. Users only need to configure routing rules and FIX message transformation rules. Both types of rules can be customized with Visual lambda GUI builder tool or with custom .Net codes.

    With QWFIX Gateway it's possible to build a full functional FIX gateway completely with GUI tool without writing a single line to code.

    QWFIX Order Monitor
    QWFIX Order Monitor is a GUI utility that can be used to browse, query and manage the FIX order flow of any trading application built with QWFIX SDK.

    QWFIX Order Monitor can be used natively on both 32 bit and 64 bit Windows platform. On 64 bit system, it's possible to use QWFIX Order Monitor to manage tens of millions intraday orders in real time on a single machine.

    QWFIX Order Monitor automatically works with any trading application built with QWFIX SDK.