How to test my FIX client? Is there a fake FIX exchange out there that I can use?

19,502

Solution 1

Have you tried FIXimulator? http://code.google.com/p/fiximulator/ It doesn't exactly work as an exchange, but you can establish sessions, receive orders and execute (auto execution as well possible) them. Check it out.

Solution 2

Mini-FIX can be used for GUI based

QuickFix example application programs "executor" and "ordermatch" should be helpful. Code is simple, you can even enhance it to suit your needs for the exchange functionality. Good thing about these solutions is that different versions of FIX are supported thought FIX 4.2 is the most widely accepted.

Solution 3

CoralFIX comes with a ready-to-use server implementation that you can fire and start accepting connections from your FIX clients. It will handle all the FIX session level details like logon, heartbeats, sequence reset, resend request, etc. To implement a simple server for your tests all you have to do is:

import com.coralblocks.coralfix.FixMessage;
import com.coralblocks.coralreactor.client.Client;
import com.coralblocks.coralreactor.nio.NioReactor;
import com.coralblocks.coralreactor.util.Configuration;
import com.coralblocks.coralreactor.util.MapConfiguration;

public class SimpleFixApplicationServer extends FixApplicationServer {

    public SimpleFixApplicationServer(NioReactor nio, int port, Configuration config) {
        super(nio, port, config);
    }

    @Override
    protected void handleFixApplicationMessage(Client client, FixMessage fixMsg, boolean possDupe) {
        // do whatever you want to do with the application message received from this client...
    }

    public static void main(String[] args) {

        NioReactor nio = NioReactor.create();

        MapConfiguration config = new MapConfiguration();

        // print all messages received and sent to STDOUT for debugging purposes
        // (default is false)
        config.add("debugMessages", "true");

        // accept as the client inbound sequence whatever 
        // sequence I receive in the first message coming from the client
        // (default is false)
        config.add("acceptInboundSeqFromClient", "false");

        Server server = new SimpleFixApplicationServer(nio, 45451, config);

        server.open();
        nio.start();
    }
}

A full explanation of the code above can be found here.

Disclaimer: I am one of the developers of CoralFIX.

Solution 4

check the quickFIX distribution. here: http://www.quickfixengine.org/quickfix/doc/html/examples.html you can find the "executor".

Is a sample server that simply fills every limit order that it receives.

Also you can find "ordermatch", which is a c++ server that will match and execute limit orders.

Solution 5

A few years ago I couldn't find a testing platform that I didn't have to sign a contract with large license fees, so I created one. Sorry for the shameless plug here, but I ended up turning it into a product/service offering hosted at www.fixsim.com with a free trial. Banzai that comes with QuickFIX is a good free start, but if you need different asset classes, cancel/correct, allocations, or other message types you either have to build or buy.

Share:
19,502

Related videos on Youtube

chrisapotek
Author by

chrisapotek

I enjoy playing with technology and programming. Hope I can help you.

Updated on June 27, 2022

Comments

  • chrisapotek
    chrisapotek about 2 years

    I have implemented my own FIX client, something like QuickFIX. Now I need to test it. Is there a fake FIX exchange somewhere that I can use? Has anyone ever implemented a FIX server that I can use to validate my client? Is there a real exchange from which I can use their test connection to test and validate my fix client?

    Any help here will be greatly appreciated!

  • chrisapotek
    chrisapotek almost 12 years
    How about order canceling support?
  • stexcec
    stexcec almost 12 years
    Nope. You can use these "Server" just to test connections and execution of limit orders.
  • chrisapotek
    chrisapotek almost 12 years
    I think this FIXimulator allows you to do whatever you want to the order through a GUI. If this is true, that's pretty cool.
  • stexcec
    stexcec almost 12 years
    @chrisapotek hi, did you try FIXimulator?
  • Badmanchild
    Badmanchild about 9 years
    Try QuickFIX messenger
  • Abhishek Chandel
    Abhishek Chandel about 5 years
    Link not working
  • Anil
    Anil over 4 years
    Link not working
  • Gavy
    Gavy about 4 years
    I believe this is the original project site - fiximulator.org
  • Kaptein Babbalas
    Kaptein Babbalas about 2 years
    link is working again. But the file is marked as malware by my anti virus. I did some investifgation on what exaclty causes the malware classification...seems like a few minor concerns about the code reading your registry (probably for autoupdaing). I decided to trust it and install. Seems OK. Probaly just old coding practices causing this. (i Hope) '-)