QuickFIX/J FIX Engine

Discussion in 'Automated Trading' started by chaffcombe, Jan 16, 2009.

  1. Hi Guys,

    Hope I'm not breaking all etiquette here.

    A few know me from the OANDA forums, and from my futurestech.com.au website. I've been a fully automated trader (F/X) for about 5 years now.

    I currently writing a FIX API using the QuickFIX/J engine. I would very much like to get in contact with anyone with QuickFIX/J experience.

    Cheers
    ~chaffcombe
    chaffcombe@bigpond.c**
     
  2. x_diver

    x_diver

  3. byteme

    byteme

    I have some basic experience with QuickFix/J but the easiest thing for you to do is examine the source code for the Marketcetera ORS (Order Routing System).

    The Subversion source code repository is accessible anonymously. Navigate to the ORS subproject and most of the code will be in the FixApplication class (off the top of my head).

    The website is www.marketcetera.com - you may have to register to access the wiki which has details of the repository location. Again, off the top of my head, the repository was at code.marketcetera.com

    BMe.

    PS. Marketcetera is a Java-based open source platform that's been in development for a few years now. It has commercial backing and a team of developers. By the end of the year it will be a very feature rich solid platform.
     
  4. I have a question regarding quickfix engine that Id like answered. Does anybody know specifically what message type I need to use in order to synchronise my programs internal time clock with the brokers server internal time clock? I cant seem too find a message that I can use to loop a request for server time so that my programs clock stays in absolute synch with the trading servers own internal clock. I know what message IB uses but nt what the corresponding fix message is to communicate with it. Anyone who knows Id be eternally grateful.
     
  5. Personally, I’m not aware of any FIX message that enables server synchronisation; certainly I do not believe the implementation I’m working on supports it. However, I’d recommend that you had a look at this site http://www.onixs.biz/fixdictionary/ as it has an excellent online FIX Dictionary, and you should be able to ascertain fairly quickly if what you are looking for exists (have a look through http://www.onixs.biz/fixdictionary/4.2/msgs_by_msg_type.html)


    x-diver – thanks for the nabble link, which I have bookmarked – I’m sure that will be very helpful

    byteme – I seem to recall being referred to marketcetera before but never managed to find the advertised source code. I don’t know if they have changed their policy, or if they just like making life difficult! I’ll take another look – thank you.


    BTW if anyone else knows of an even better FIX dictionary, or knows any other invaluable resources, please post them.

    ~chaffcombe
     
  6. byteme

    byteme

    Not necessarily better, but an alternative FIX dictionary that uses a Java applet is at www.fixionary.com

    To access the Marketcetera repository for the 1.0.0 tag:

    http://code.marketcetera.org/root/tags/1.0.0/source/

    The "Order Routing System" is in the ors folder.

    RE: Time Synchronization

    I'm not aware of any FIX tags for this purpose. It isn't a QuickFix specific issue in any case.

    Suggest synchronizing your black box server with an atomic source. You'd hope/expect your broker is similarly synchronized.
     
  7. Thanks for the suggestions. Ill take a look. My concern is that if you synchronise your clock with an outside source like NTP network time instead of with the trading server itself then your basically allowing latency to creep into your system if theres even a small difference between trading server time and NTP time. Thats the problem im trying to overcome.
     
  8. From what I can see though according to the link you posted the transaction on both sides are governed by UTC (universal time coordinated). so intheory they should match perfectly. The time issue is one whch really drives me nuts because I know how prone to phase shifting IB's clock is and would like to keep looping to it in order to stay on top of it. Doesnt seem to be possible though.
     
  9. I mean Ive been over this one before. I dont see why when your implementing a standard for communicating between 2 computers ( a server and a host) that you dont provide a way of synching the 2 clocks together. It just doesnt make sense any other way. I mean even slight differences in the way that each computer interprets the current time can have unforseen negative effects.
     
  10. BGH

    I would agree that when you develop a standard for server to server communications, one would expect a time synchronisation function. Nonetheless, I'm curious as to why this is so critical to you.

    In a typical FIX trading scenario we receive a constant stream of ticks with no artifical time horizons, to which we react, one way or another.

    To me, time is no more than a convenient measure used for organisation and sequencing. I cannot think why it would be essential to be in perfect agreement.

    I'm happy to be enlightened, however! ;-)
     
    #10     Jan 21, 2009