I suspect this is a beginner question and I tried searching for the answer, but I suspect I didn't know the right terms to use, so apologies if this has been asked before or is trivial. On Interactive Brokers, I sent a limit order and got a partial fill. I saw the order was still open and expected that when the stock traded again at my limit price I'd be first in line to get filled since I was obviously first in line when I got the partial. However, after some time, the price went back to my limit price and although there were trades at my limit price, I didn't fill any more of my remaining position. Is this normal? If it is, why is the system setup this way? It seems like the person who got a partial fill at one limit price should stay at the head of the queue for that price. Although IB shows my order as still open (I can update it), is it effectively inactive until I update it? If I want to fill the remaining shares what's the right course of action? Update the order and set the limit price as the same as it already was?
Oh, I bet that's it. I sent it to IEX instead of IB's "SMART" routing. So my order's probably only first in line on IEX and none of the other exchanges? If I'd done "SMART" then would it probably be first in line on all the exchanges?
Every Exchange has different rules and many allow crosses matching your price without you matching. Your expectations if priority from time and price are unfortunately not an expectation you can depend on, especially with any SMART route.
Can't say I've ever had that problem with IEX myself. But you can read how they execute orders here https://www.iextrading.com/docs/Investors Exchange Rule Book.pdf P.S. If you have not already, please make IB aware of your support for people wanting them to implement the IEX D-PEG feature https://www.interactivebrokers.com/en/index.php?f=2493&sid=11633