Dev Time for a FIX based OMS

As a user of those libs you don't need to worry about threading.
It depends on the existing system you have in place. Most real time systems have multiple components which need to communicate with each other without introducing delays ... You can't just pend on a single queue waiting for events(or poll multiple queues). I believe some people reverse engeneer IB interface so they can bypass the threads/queue and work directly on socket level. For FIX, I chose to implement my own engine (very basic, not fully compliant) to avoid having too many threads.
That's one of the problems giving estimates, you need to know the existing system to get an idea of what the amount of effort required. And it will take more than an hour just to come up with a proper solution/proposal.
If you are, or ever dealt with, programmers you know you can never get a straight answer ... It's always - "it depends" :)
 
Yes, its for portability....



@2rosy, yes I am a developer. TWS api seems to be fairly straight forward, even a novice can come up something in an hour or two but FIX seems to be a little more involved (I have not yet tried to study it). I would like to compare TWS and IB FIX before I start coding. I just wanted some basic feedback about FIX vs TWS before I dig deeper into this topic.

How hard is it to get through the learning curve and learn FIX; and perhaps the involved technical quirks (if any)? How does the latency profile look like when I place orders... seems to be FIX library dependent? Any specific pointers on what I should look at when I research this.
I got locked into IB by writing a bunch of code for the TWS API and then stuck with them far longer than I should have and otherwise would have because of it. Using FIX makes that a lot less likely to happen, although keep in mind that you most probably will still have to do some work on your code if and when you switch brokers, just not nearly as much.
 
fix is a protocol; you can use any language. you dont need a server or anything more than what tws requires other than a fix library (quickfix is free). whatever you write with tws will be similar for a fix connection.

i usually create helper functions to build orders. no matter the protocol or api used i would still create these...
Code:
  public static OrderRequest createOrderRequest(double qty, double price, String sym, int sd, String source, String exchange, String isin) {
        return OrderRequestBuilder.create()
                .withOrderQty(qty)
                .withPrice(price)
                .withSymbol(sym)
                .withMsgType(MsgType.NEW)
                .withExchange(exchange)
                .withSide(sd)
                .withUserInfo(source)
                .withISIN(isin)
                .build();
    }
This is helpful. I have structured my current OMS this way and so based on what you are saying we can abstract out the broker specific apis from our general OMS functionality... if we can do so with TWS and FIX, one can have an OMS one for each with common reusable oms functionality. this is a clean approach. thanks
 
I can't tell you how long your process will take. I can tell you I have worked with a few experienced programmers that tried to create their own fix server and certify with either Sterling FIX or Realtick FIX. They both ended up taking a lot of development time (Months) and in the end went another way-back to C++. I'm not a programmer or expert, but it looks like in addition to your server, you need another server with your FIX engine. So your trading decisions occur on your base server, you send instructions to the FIX server, which then sends the order down the pipe/broker of your choice. This is generally more complicated and slower that trading from your base server. So why do any traders choose this path? The typical reason is that they use a number of prime brokers. Let's say they have an account at IB, Lightspeed, GS, ML, MS, etc. Maybe they are running a number of SMAs or only get a locate at one broker and not at another or have a hedge fund at one Prime and SMA at another etc. This allows them to quickly direct orders to any of those brokers from one trading server and one FIX server with a FIX licence. It often also requires paying for a private VPN to each broker.

I do not find any advantage for a retail account with one clearing broker to use FIX.

Just curious; how long/complex is the certification process.
 
Back
Top