That's great, thanks for adding more details. Surprisingly, it sounds like there could really be something to this Are you trading a wide variety of symbols or could there be symbol bias or price bias (e.g. only trading low priced or penny stocks)? Are you able to break down your data further into fills where liquidity was taken vs added? If you AUM is measured in millions then there should be lots of brokers out there who can provide direct access without the limitations of IB. You can develop your own routing strategies if you have the programming ability.
Roughly 1500 different tickers over the year. Micro, small and mid caps ranging from 1m - 50m daily liquidity. 89% of the pearl fills were non-marketable while virtually all (95%+) of dark, nyse, nasdaq, ibkrats, were marketable. This is interesting because in both order routing types I never click "attempt to never take liquidity", I allow them to take liquidity as they need. Does that suggest that HFT isn't screwing up my resting orders on Pearl but is somehow messing with them when they are placed on other exchanges? I have the programming ability but I don't know how to come up with the routing strategy... as you can see I have the data but am unsure of what conclusions to draw.
Do I understand you correctly or something close: Smart(Default) had 95+% marketable SmartMaxRebate had 60*(1-.89)+40*.95 = 45% marketable This makes Smart(Default) seem completely broken
Yes. Almost all of the Smart default was marketable. While almost all of the Pearl fills from M axRebate were non-marketable. DOesn't that make sense? Pearl rarely has competitive bid / ask, their spreads are always way wider than NYSE / Nasdaq, so all the marketable orders should go to NYSE / Nasdaq?
Right, it makes sense that the marketable orders don't go to pearl because of the spreads. It doesn't make sense that Smart Default is almost never adding liquidity though... of course I suppose it's possible that it's simply a piss poor algorithm, but I thought IB prided themselves on their smart router execution quality. There is likely something going on that I don't understand.
Thanks for your help on this. Just speculation, but maybe the liquidity adding orders on NYSE / NASDAQ get front-run (or whatever the appropriate term is, skipping the line, etc) by the HFTs but on PEARL they don't allow the HFTs to do that? In which case PEARL will have better but much slower fills as you must wait to add liquidity.
I'm not an expert on this by any means but my understanding is the blatant skipping the line hidden order type stuff was all removed years ago after a SEC crackdown. BATS got a big fine for the secret hide not slide variants for example. If it's still going on you'd think someone would be talking about it at least. Vanilla HFT with regular order types is still very powerful, their speed allows them to optimize their queue position as well as cancel before getting adverse selected. They pretty much own the NBBO. However everyone else should still be able to add liquidity inside the spread, or at the spread (eventually) after HFT cancels or fills their whole size. I suppose if the spread is only 1c wide then there's no choice but to take almost all the time since there's no space to quote inside the HFT quotes. It didn't sound like you were only trading 1c spread stocks though, so I'm still at a loss to how IB ends up adding <5% of the time. Unfortunately don't think we can ever know exactly what the IB algorithm is doing, but I think this data you collected is an interesting starting point for creating custom routing algorithms. It is at least clear that adding liquidity is a cheaper way to trade than always taking.
I really appreciate information like this as it's regularly not shared. Can I ask why you route smart instead of something like IEX DPEG? Is it due to execution speed over price?