Why doesn't my limit order get executed sometimes, even if the price shows on the screen?

Sometimes, a limit order doesn't get executed even if the stock reaches the specified limit price because orders are executed on a 'first-come, first-serve basis.

The stock exchanges follow the 'price-time priority' principle for order processing. This means that when you send an order to exchange, a timestamp is assigned to it so as to execute them on a first-come, first-serve basis. So if other buyers have placed orders before you, your order is executed only after the ones places before you are fulfilled. 

Hence, if there are multiple bids at the same price and only one counter offer at this price, the person who placed their bid first will get their order executed. For example:

InvestorBuy/SellOrder TimeQuantityOffer Price
RajBuy10:00 a.m. 100Rs. 150
HamishBuy10:01 a.m.
100Rs. 150
AbirajBuy10:02 a.m.
200Rs. 150


Assume that a sell order is placed for 200 shares at Rs. 150.

Even though all 3 investors have placed buy orders at the same price, Raj and Hamish will get preference over Abiraj as they placed their orders before him.

Hence, Raj and Hamish's buy orders will be executed and Abiraj's order will remain pending till another counter offer is placed at his specified price i.e., Rs. 150.

Still need help? Create Ticket