Hey Shreddog, Have you considered coding a little server for each brokerage's API that creates a common interface for all your brokerages? That's what I've done, as I can't imagine coding VB for this brokerage, Java for that, C++ for the other, etc., etc.... The lack of a modify or explicit cancel/replace in Sterling's API is one thing I hadn't noticed before -- thanks for pointing this out. That's a hassle if one needs to modify an order, as it seems impossible to guarantee that one order is canceled before the next is sent without explicitly waiting for the cancel (there's no guarantee that a cancel and then a new order are going to be executed in the sequence in which they were sent), right?
It's actually pretty easy to do -- once you can decide on a universal interface. Then you can write all the "strategy code" in whatever language you prefer. What would be REALLY nice, from my point of view, would be if trading platforms provided a FIX-like interface on all of their apps (using TCP/IP sockets rather than the current, OS/language-specific API calls).
Why are you posting here instead of being on the phone with them asking wtf is going on? I have some pretty big account sizes, and a smallish one (low 100k ish) at IB , and, at the places I have big accounts, a few barks can usally turn the representives on the phone into stammering yes men.
"Until One hour later, my order started to take effective. " Did anyone actually read what he wrote????? This was not an issue with exceeding the 50 messages per second, or the above orders never would have completed.
Having a bunch of orders on hold for an hour is a bad scenario. Did anybody ever figure out what happened? I always uncheck the default "reuse orders" thing, I read of the situation where connection was lost and when it returned a bunch of orders were fired off that weren't expected...
The question is, did YOU read what he wrote? Perhaps that's the penalty for excessive order submission which exceeds the message limit? It's not as if IB blocks the offending excess messages per second to their system. Just like on GLOBEX, you can change your orders all day long over the 5 changes per order limit, but you will eventually pay a penalty for doing it.
IB also offer a FIX API that has a higher message rate limit. The FIX implementation is a bit quirky but it works O.K. For doing anything sophisticated with execution algos, the IB system is very slow and you will get much lower latency from brokers like Lime.
IB and all retail brokers are for traders for whom latency is not a big issue. Competing with well capitalized Pro Firms on latency... is not a half-measure thing. You either go all the way with sub 1 ms infrastructure for big $$$$$$$$... Or you will not be competitive on latency. It's like if you wanna race on the Indy car circuit... You can't do it on a low budget.
My answer was aimed at someone capitalised well enough to be trading $4M baskets. You are quite right that latency is not a big issue for small retail traders but trading broad stock baskets is not something small retail traders do. You are also right that the very low latency space is a very expensive place to operate. However, it is possible to get competitively fast execution without breaking the bank. It is certainly within reach of people trading privately with modest capitalisation. This is not going to be an issue for most but if you are looking to move orders around fast in the market to capture spread and find liquidity then you need something a bit faster than IB or you will spend all your time waiting for order acks.