QuickFix anyone possible OMS?

Discussion in 'Automated Trading' started by WallstYouth, Apr 7, 2007.

  1. I've recently compiled and install quickfix/libxml2 on Solaris anyone using quick-fix for anything interesting? I plan to start reading through the sample apps provided and get up to speed on the API and FIX 4.4 in general possibly 5 if/when its supported, I want to build an OMS for fun and see how it goes.

    Here is my problem I really dont know where to start I do have a few ideas but some pointers would be really helpful.

    A little background about myself I have a few solid years of programming in Java/C some C++ on UNIX enviornments. I work in industry as an SA/quasi developer mostly Perl/Sybase. I plan to use this opportunity to kill two birds with one stone; learn more about order routing, execution and further enhance my programming skills.

    I plan to use Java as the base as its simple, tons of classes and API's already available and I can quickly prototype my code and test features with the least amount of time hunting down bugs.

    So now here is the biggest problem I'm facing.

    I've been trying document exactly what needs to be done but I'm not so sure I don’t want to end up over designing something which I'm unable to complete.

    I plan to modify and use the sample Quick-Fix Apps provide to test my engine against another brokers fix engine.

    Let me reinforce my statement I'm here to learn FIX not another vendors proprietary API's.

    1) How exactly do I get pricing info and market data? I've been looking at FAST which is (Fix adapted for Streaming) is there any brokers that will allow me to get pricing info using FAST? is there an easier way?

    2) Once I have pricing info should I store it? and if so is mysql/postgresql good enough? How does one determine how much data is needed? I need to use the cheapest solution available for now as I don’t have much hardware.

    3) Are there any brokers that would allow me to connect via the internet using fix? I don’t want to spend any money on a dedicated line or expensive dedicated connections.

    I will have tons of other questions but for now I think this will at least get me to think in the right direction :)
  2. basis


  3. a lot of brokers have FIX connectivity, such as Lime Brokerage, but is there really any advantage over an API? I'm not so sure... If speed is the concern (and money is no object), you would bypass the broker entirely and write directly to the exchange. Obviously that's far out of reach to retail/hobbyist traders like you and I. One idea, and I think the SmartQuant framework does this... is to implement a FIX object layer and message schema. e.g., http://www.smartquant.com/doc/Instrument_Properties_(IDE).htm
  4. 1. Read the FIX specification papers from www.fixprotocol.org .

    2. You're asking questions, that I can't answer. How will you be using FIX? For trade execution? How much historical data does your system require to hold?

    3. Pick a broker first. There's plenty.

    Now... every broker has their own set of specifications, depending on the product they let you trade and their technology skill. So what I would do is to pick a broker that you like, first. The basics are the same.

    Once you pick a broker, they'll put you in a demo(Test) FIX server where you'll be able to play around with. Some brokers require you to use SSL over it, so watch out for those too (easy once you get the hang of it... I've also done it with QuickFIX). But most brokers have non-SSL servers for testing.

    Start with connecting to the other server. That's the most important, obviously. Once you get that done... start recieving data. Then start with sending orders and receiving confirmation.

    FAST and FIX 5.0 isn't implemented by most of brokers yet. If the brokers offer it, that's fine. Though, my advice is to start simple and get the hang of the FIX specs. Once you get the hang of it, everything else becomes very simple.

    The benefit of using FIX is to be able to connect with multiple brokers easier with one interface. Once you learn FIX, there's no need to tangle/play with each broker's API.