Quote from alanm:
...
2. I'm confused as to how a problem at DB could cause a delayed execution report. Isn't it IDEALPRO that matches the trades and issues reports? Are the MM orders resting on IDEALPRO somehow different than retail orders that are submitted to it? Is there some sort of handshake required from the MM even after the orders have been matched by IDEALPRO, and if so, why?
IDEALPRO is a consolidation of several "exchanges" (read counterparties or banks). We take the real time quotes each provides, blend them with client orders to create a virtual order book that presumes the ability to execute on the posted price. When a marketable order comes in, IB looks at the IDEALPRO virtual book and pairs off the inbound order against the best priced order on the other side, regardless of who is making the price. If the best price is from another IB client, we match the trade internally. Otherwise, we route the inbound order, or residual part, to the best "exchange", i.e. bank. It works just like SMART routing for other asset classes in this respect and is what allows clients to trade with each other as well as with liquidity providers.
Non-marketable orders are added to the IDEALPRO internal book; they are not routed to the banks until they become marketable because all the liquidity providers work on a fill-or-kill basis. Even if they didn't, why expose the trade earlier than necessary? If IB routed non-marketable orders to bankA and bankB actually had a better quote sooner, the order would be executed more slowly than it should.
To date, we have not noticed any pattern of latency from any single provider so we have not needed to consider the pattern of response times in our routing decisions. This may change given the recent problem with delayed reporting.