There are two types of connections that IB supports: A standard FIX and their API. The API (especially the activeX based one) has a lot of problems and will never provide you with reliable info about your open orders and positions. There are many flaws in it. However the FIX protocol based connection has a direct channel to their back office providing you with all the necessary fields according to the FIX specs. If you are not familiar with FIX you should GOOGLE it.
Well, it's .NET, so technically anything that .NET supports. (Which is just about anything, really.) In practice, the out of the box samples are C#... and that's what I use.
Thanks Maestro... I know about FIX...never used it thou... but it's still not clear to me why it is superior... a simple comparison from the one with experience would be great help... thanks
is it faster? more reliable? on the higher/lower level than native API? easier to work with? any other experiences?
FIX is just a protocol. How can it be stable or unstable? The implementation defines that. I would also appreciate it if you could explain to me why you think it is synchronous. Thanks
As ScoobyStoo already mentioned FIX is âonlyâ a protocol definition â nothing less, but also nothing more. It is not dedicated to a programming-language, not to a threading model and also not to synchronous or a synchronous. It is just a protocol. To get more information on FIX have a look at this page: http://www.fixprotocol.org/
In looking at the FIX implementation, it appears that trading was never it's primary consideration. In other words, it was made to be so abstract as to be able to handle trading, but I think a much better protocol that was trading-specific could have been developed. IOW: TIP = Trading Information Protocol. Less abstract, more specific for orders, fills, cancellations, PnL, etc., etc. Am I wrong on this line of thinking ?