FIX Testing

Discussion in 'Automated Trading' started by Craig66, Apr 14, 2008.

  1. Craig66

    Craig66

    So even QuickFix may be complete overkill for basic trading? It would seem that to develop something basic would not be too hard.

    Someone mentioned that you have to generate $100 of commissions, what time frame is this over?
     
    #11     Apr 16, 2008
  2. fatrat

    fatrat

    Unless you work for some hardcore operation managing millions, your broker APIs that are non-FIX are your best bet.
     
    #12     Apr 16, 2008
  3. Craig66

    Craig66

    I don't see what load has to do with it, all the broker API's I have looked at (IB, MB, Genesis) all have gotchas or are just flat out awful (not to mention unstable).

    The major benefit of FIX as I see it (apart from the somewhat enhanced broker transparency) is the well defined order model.

    I place an order though the IB API, I get 3 identical filled messages, why? Nobody knows, which one do I take as being gospel? Nobody knows, is this always going to be the case? Nobody knows... this rubbish simply isn't good enough when my money is on the line.
     
    #13     Apr 16, 2008
  4. squeeze

    squeeze

    FIX is really pretty easy to use.
    The basic Fix42 messages are all you need for most trading.

    Although it is meant to be a standard brokers vary significantly in how they implement it. The IB implementation is pretty non-standard and has a lot of custom tags. It's also even slower than the IB API so you might as well stick with the API unless you already have a FIX enabled app.
     
    #14     Apr 16, 2008
  5. Craig66

    Craig66

    Really?! that's pretty much par for the course with IB I suppose, I'm looking at it in a longer term focus, going from FIX implementation to FIX implementation is surly quicker than recoding for a new API.

    But I appreciate it won't be all roses & kittens.
     
    #15     Apr 16, 2008
  6. fatrat

    fatrat

    You get three filled messages, so you maintain a data structure that persists and then gets "matched".

    I posted what I did because I've used both broker APIs and done certification testing for various ECNs. You don't gain that much of an edge because you've already "lost"[1] if you're using a retail broker.

    [1] The FIX advantage gains you very little on top of most retail platforms with poor API performance.
     
    #16     Apr 17, 2008
  7. Craig66

    Craig66

    Point taken, I'm aware it does not give me a trading edge. I'm just more concerned with not re-inventing the wheel if and when I have to shift.

    As for the 3-filled messages, err...I'd worked that out, you can develop a finite state machine around the order id, the problem being that nobody seems to be able to define all possible transitions and the error handling is abysmal.

    I write telecoms software for a living, so I maybe I'm a little over sensitive to these issues, anything that can go wrong, will.
     
    #17     Apr 17, 2008
  8. RedRat

    RedRat

    I have a map from order id into my own order info struct. It saves BUY/SELL flag along with number of executed lots in that order. Then when I receive execution signal from IB TWS I compare the incoming filled number (or remaining number) with my saved. If there is a change I call my function on the difference, else I simply ignore the execution signal.
     
    #18     Apr 17, 2008