A few weeks ago I started to trade American stocks. I have an IB account. Yesterday, I encountered a strange situation. I'm using the IB API.

  • 9:30:56 I sent a limit buy order to IB (Buy MSI at 54.06).
  • 9:31:18 I saw that MSI was trading below this level (using IQFeed to watch prices).
  • 9:33:15 My order was executed, but at 53.67.

Why is this?

  • 4
    What was the type of the order?
    – Waldfee
    Commented Apr 25, 2013 at 9:25
  • What exchange did you use? SMART by any chance?
    – hroptatyr
    Commented Apr 26, 2013 at 7:31
  • 1
    SMART limit buy order. When I sent order, price was above 54.06. And only 2 min later price dropped below this level. Commented Apr 26, 2013 at 12:52
  • 1
    Well, there you go. Orders routed through SMART can be crossed internally, i.e. all IB customers and the IB error account take precedence over the NBBO.
    – hroptatyr
    Commented Apr 27, 2013 at 12:30

4 Answers 4


If you placed a market buy order, the order is filled at the current lowest ask price. Even if you entered the order when the ask price was $54.06, it's very possible that some event caused the price to drop to $53.67 between when you submitted the order and when it was filled/executed.

If you placed a limit buy order, you've specified not to buy the security at any more than the given price ($54.06). Once again, an event could have pushed the price down after you submitted the order, and because the limit order states to buy the shares at the given price or less, your order would be filled/executed immediately at that price.


IB specific information: Orders routed through SMART can be crossed internally, i.e. all IB customers and the IB error account take precedence over the NBBO.

Other than that the effects described by others (slippage) or a slow feed at IQ's may also be possible.

It's just hard to say in hindsight.


I believe the most likely explanation is that your order was routed to NYSE to participate in the opening auction. The NYSE open price on April 24 (the day you sent the order) was 53.67, and the time of your order was very close to 9:30. NYSE is not fully automated; their opening auctions do not happen precisely at 9:30:00. The time that the NYSE open printed to the tape is within about 10 seconds of your execution time.

Once IB had routed your order as a limit-on-open, they couldn't cancel that and reroute you, even when the offer on a different venue dropped below your bid price.


You have put your limit buy order at $54.06, and whilst your order was going through the price has dropped below your bid price, so you have been filled at the lowest ask prices below your order price.

The other possibility is if prices suddenly gapped down below your bid price, so you have been filled at the lowest ask price.

This is because your limit buy price is the maximum price you will buy the stock for but you can get executed at a lower price if it becomes available.

  • 1
    Yes. But order executed 2 minutes later! Why? If share price drop below my price and my order already registered at the market, execution price must be 54.06. Commented Apr 25, 2013 at 12:10
  • 1
    @IlyaVishnyakov What kind of order did you place? You should add that to your question. Commented Apr 25, 2013 at 13:00
  • 1
    @JohnBensin - by putting the order "Buy MSI at 54.06" it is obvious the OP put a limit buy order.
    – Victor
    Commented Apr 25, 2013 at 22:08
  • 3
    @V I've taught people before who spoke in a similar fashion of market orders, e.g. "I put the order in when the price was 54.06" so it isn't necessarily obvious to someone who doesn't know much about trading like the OP. Also, it clearly isn't obvious to everyone because if it was, the OP wouldn't have asked this question, since the answer is essentially the definition of the limit order and it's similar to asking "what could cause a stock to decline in price?" Plus it's better for searching if the question includes the type of order. Commented Apr 26, 2013 at 2:28
  • 2
    Obvious, I placed a limit order. Sorry for my English. I have much experience in trading on non-US markets and now I try US Stock trading. I think one of the reasons for such a situation that I used IB SmartRouting type of order and this algorithm initially sent my order to the wrong ECN. Commented Apr 26, 2013 at 9:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .