After testing bunch of API's I decided to list here pros and cons of each.
Interactive Brokers:
Pros:
- Wide range on instruments available
- Very good support for different operating systems, API uses sockets technology
- Cheap
Cons:
- Data quality horrible and not suitable for any short term trading
Extra Notes:
- I tested only IB API with TWS on the background. I didn't test the FIX API due to it being a bit more expensive. As far as I understand the data quality is exactly same on it (horrible).
- Possible to combine external data feed with IB execution. IB transaction fees are not that cheap though and
their servers are located in sub-optimal locations if you are trading futures.
CQG API:
Pros:
- Data seems accurate
- Cheap if you don't need historical data
- Shows full order book on exchanges that emit it
- Servers located in the important financial hubs (No server in Frankfurt, unfortunately)
- Built-in algorithmic orders like Dom-triggered-stop, Iceberg and Trailing Limit are very nice
- Access to many futures/options exchanges around the world
Cons:
- Virtual API uses old C++ COM technology which makes it hard to use IMHO
- CQG API emits order book updates in a very inefficient way. It shows order book levels as an array and old values in different array. If you want to get the latest update you have to iterate through these tables which computationally very intensive. Some kind of applications require way too much resources due to this reason. I tried to hack around this reading TCP packets directly from network adapter but this didn't provide a reliable solution for me.
- Virtual API is buggy, really hard to work with and works only on .NET 3.5 for some reason
Extra Notes:
- High-level API that is used to connect "CQGCEL" (created with Virtual API or by running CQGTrader/CQG IC) uses .NET 4.0
- CQG is working on per-update-based order book reporting and is going to release it as one of the first updates this year according to their API support.
Rithmic API:
Pros:
- Very good data quality
- Shows full order book just like CQG API
- Also shows how many limit orders is in order book level
- API works nicely even without Rithmic Trader running
- Relatively easy to use, IMHO
Cons:
- Expensive if you don't use Vision (they have special deal with Rithmic)
- Little bit slow to start which is not really a big problem
- No access to European markets?
Extra Notes:
- Uses .NET 3.5 and for some reason provides only support for Windows 7 x64 and .NET 3.5. I was running it with .NET 4.0 without problems
CTS API:
Pros:
- Data quality seems to be good
- Full order books are showed (if I remember it correctly)
- API works nicely even without CTS Trader
- Cheap but transaction costs are somewhat increased
Cons:
- Dom data is shown in tables so same problems exist as in CQG API regarding to the computational inefficiency
Extra Notes:
- I cannot remember all the details because it has been long time since I tested this API and I didn't work with this one too much.
TT FIX:
TT FIX has very prohibitive terms and conditions. You cannot for example run blackbox strategies or HFT systems so I'm left wondering what is the target audience for this API? If you want to work with TT FIX you need to fill in many forms and explain your program very carefully to them. Otherwise this is the cheapest FIX API that I know of. IB FIX is cheap as well but bad data quality renders it useless to me.