Interactive brokers limit orders

Hi everyone!
Can anyone explain me following?
How to send limit buy order so that there were no lower trades before my order fill?
Let me explain what I mean.
Nasdaq (and NYSE?) has several trading sections like ARCA, ISLAND, MEMX, DRCTEDGE, FINRA - see the time and sales list for one of stocks.
IB has many order setting and SmartRoute is most recommended so that they send my order to most suitable section.
I asked IB support and still dont get any decent explanation about how the orders are sent and filled. If the order is not in the market will it be filled if a single huge sell order comes as a counter order?
Also IB support says FINRA section is not available for individual traders, while I see more than 50% of all volume comes from there.
Can anyone suggest from own practice intraday trading through IB please?

It's more a question about IB than AFL/IBController so a little off-topic but I'm going to answer it anyway - holiday here...By the way, this question should be in IBController section

I don't trade US stocks personally (although I used to a long time ago) so I can't share my experience there. However I know enough on US stock trading to answer. US brokers (as IB) must comply with a larget set of regulations notably what is called NBBO (national best bids & offers) to ensure the individual (non-pro) trader gets the best price nationally at the time he trades. Best bids & offers are computed using all displayed sizes from all US exchanges/ats/routes. So you can be sure your order will be executed, if enough size is available, at the best displayed price.

However all orders are not displayed, some are hiddens, and in that case your order may be executed at an even better price than nbbo. It's called price improvement. How it's done & what you get exactly is unknown & almost unregulated. Many factors can play out. In particular, all large brokers can either match your order against an internal order (that is either another client or IB orders - as a market maker), a process called internalization, or against an external order on a dark pool or private ats. Whatever IB does is probably complex but they are supposed to act in your best interest so your order is guaranteed to be executed at least at what nbbos offer. One of the problem with this hidden liquidity is that it artificially widens spreads on public exchanges. High-frequency traders/hedge funds try to take advantage from this.

If a big order is sent to a specific exchange or through several, and your order is standing in front, it can be matched according to exchange rules (generally price first, time second) up to offered/bid size. If it's a market order, it can be executed to worst & worst price. As a consequence your position will be instantaneously marked as red/losing. If a very large order is sent, it'll probably be executed in a dark pool/ats and shoudn't move the market per se. However, knowing a large order has been executed can move prices significantly - not the order but this information (at least it's the case for most derivatives).

So the lesson is that nbbo is a great guarantee, but price improvement is a true far-west. On top of that, IB has a special kind of order (actually its simplest algo) called midprice, which can be helpful in casual cases to get good prices. Read MidPrice in IBKR doc. If you use MIDPRICE orders, you must specify SMART as route. That's all you need. Other order types which can be of interest for you, such as pegged-to-market and passive relative orders, but they are specfic to a few exchanges (read IB doc). And finally you can combine a limit order with best bid/ask (see AFL Function Reference - GETRTDATA) to create your own order type.

To answer your initial question, another consequence of nbbo regulation is that once you place a limit (visible) order on a US exchange, all opposed orders (think market or limit at a far price) placed after yours is either executed at a better price (improved, for him) or at the same price against a prior order or matched against yours. It can't be executed at a worst price (for him) than what you propose (at least not entirely)

So what's to take here for you/us small traders ?

  1. we shouldn't worry too much about it (although transaction costs are definitively a big problem), even if we can't figure out where our orders will be executed,

  2. there's no realistic way to avoid it,

  3. we can't take advantage of it,

  4. some brokers are better than others at improving execution,

  5. some brokers offer special order types and algos to reduce costs & risks, using limit, midprice, relative orders... may help.



Thank you for detailed reply alligator!
I still dont understand - lets say a low liquidity stock where I have Buy limit with price lets say -1% from latest price my order is 100 stocks with IB SmartRoute On (so market doesnt see it) and someone has position of 100000 stoks and he makes Market order Sell suddenky filling only those orders Buy currently in the market at many different sections. After that IB fellows wake up and send my order to the market when those huge Market order sell already filled below my price? Or how IB behave? As reply to this question IB guys send me lots of general officilad docs.
Will they be so fast to send my order in a matter of microseconds just when they somehow see that this big order is Market? Do you now?

SMART routing is a constantly changing opaque algo aiming at optimizing execution price, which depends on price and liquidity, speed of execution and total cost (transaction fees included). It's not open source as it's considered a competitive advantage for IBKR. Even if it was, it would be hard to predict how it would behave in real life as it depends on what's happening on all scanned exchanges.

Note that a smart-routed order may be routed to any exchange and re-routed any time. One of the (theorical) reason for re-routing a limit order is when an order is heavily front-runned on this exchange while it could have a better rank in another. I doubt IB would hold your order (except if it's far from last price but idk) it's more probable it's pending somewhere, possibly in an ATS. This way fast execution is enforced. However as I wrote above, you never know.

As mentioned in my previous answer wrt nbbo/rule 611, OP order would be executed at best prices including the exchange on which your order is (possibly) pending, and your order would compete with other limit (like) orders. If one order is held by IB while a big order sweeps the book,I would expect it to be quickly marketed. IB could send it at a lower limit price to improve your price but don't expect too much there. Again you never know it depends on their algo & context. If your order is in the book at the time a large size hits it, it could be processed all at once (messages sent to dealers after) or piecewise (messages sent at each order filled until completion) depending on technology used at exchange (check their matching engine if details are public). In first case, nobody can react before completion. As it depends on exchange technology you never know.

By the way do not worry too much about such an event, a large order would probably be sold as a block in a specialized desk/ats/dark pool that wouldn't influence prices enough to reach your limit price. And think about SMART routing as a small edge over the long haul, not trade-by-trade. Relax.


Thank you!
I still have a question.
When I look at financial instrument description of Nasdaq stocks it says that Nasdaq is the primary exchange. While I dont see it in the exchange list. How to find the primary section? I need it to download correct charts at least. Thanks

As mentioned there (different question, same answer) META , FB, Facebook , Interactive Brokers - #2 by alligator you can use the syntax mentioned in knowledge base AmiBroker Knowledge Base » “Invalid symbol” message for stocks traded on multiple exchanges (IB) to specify the primary exchange in ticker if SMART doesn't work. Generally speaking if you can't find the right exchange use IBKR online list of exchanges (eg you can see Island is part of Nasdaq group).

PS: this thread about IB symbology can also help you How to find correct IB symbol using TWS


Does anyone knows how to exclude FINRA section from stock charts? In most cases it gives Highest HIGH and Lowest LOW on charts especially outside RTH. Since Finra section is inaccessible for individual traders - you will not buy at these Low and not sell at those Highs - there is no need to see theese peaks.
For example everyone can see it in SPY at 8.00 today 28/06/2022