Odd behavior this morning that I want to better understand b/c suggests some sort of shenanigans: There was a standing offer of 45 contracts ("K's") @ $0.15, (which I believed to likely be a stale GTC order since the underlying had spiked up overnight) ~9:20am (premarket) I put in a Bid of 50 x $0.15 hoping to snap them up at open. Mine was the only Bid at the time and spread showed as: Bid: 50 x 0.15 : Offer: 45 x 0.15 Some time around 9:27am, I noticed the Bid now showed as 94 x $0.15 -- i.e. someone had apparently put in a Bid for 44 K's (also at $0.15), but I wasn't concerned since they'd be 'queued' behind mine (right?) At market open 9:30:00am, I saw that only ONE of my had been fulfilled. IB's trade log looked like this: In short, it appears as though that 44 x $0.15 Bid somehow jumped mine in the queue, leaving only one of those K's to be sold to me at $0.15. That's what I need to understand. Why weren't mine first in line? As I wrote, there were no other Bids when I placed mine at 9:20am, and it wasn't until 9:27am that the Bid size changed from 50 to 94. (FYI these were Canadian options, and unlike in the US there's only ONE exchange - in Montreal - so this wasn't a case of exchange-specific routing or the like...)
one possibility is that the 45 offered was at another broker. they did the transaction in-house and reported it.
I suspect that the 44K order was a Market-at-Open order and that IB showed it as a limit order at the TOP (theoretical opening price). At the opening, Market order has priority over limit order (at the MX).
Look at the flags to determine if it was an opening auction, sounds like yours just executed at the continuous market.
How I understand it is that there was no queue pre-market. At the open, MM's will have preference at their price levels.
It's Price-Time priority during the opening matching algo at the MX (for the scenario described by the OP). There is no such thing as MM priority.
Probably not, since I did get 1 of the 45 K's offered...so something was being dangled externally (though I suppose it's possible if you think 44 were cleared in-house, with the remaining 1 filled on the open market.) There were no flags associated with the execution (if what you're talking about are the lettered 'codes' that IB reports that indicate if something is part of a spread, or some other non-standard routing). Interesting; I find it odd to learn that Market orders have priority of Limit...esp if the two are at the same price, it seems somewhat counterintuitive and suggests that a hack to jump the queue would be to submit the order as Market-at-Open...of course you take risk that it is indeed a stale order (at 0.15 in my example), otherwise if it gets yanked just before the bell you could get a terrible fill at the best remaining offer...(unless, I guess, there's an order type that lets you submit a Market-at-Open but attach some "but not above $x" criterion.)
Like @rb7 says... looks like a market buy order which has priority... since it's basically at any level. If the market order had been for 45, it's likely all would trade at the next offer price... that's how auctions work. Since the market buy order didn't want to pay a price higher than 15, he limits the qty so the auction price stays at 15.