I placed a limit order to buy SAIL at 104.1, even when the last traded price of SAIL reached 104.1, my order didn’t get executed and remained pending, why is this?
Why is my limit order not executed, even when the last traded price has reached my limit order price?
Chances are, the LTP reached 104.1 but there were no more sellers at 104.1. However, if Sail has to trade lower than 104.1, then your order will have to go through.
Check out the screenshot below. Observe the circled prices on the Order Book and the LTP column. You'll see that the price is the same (87.25), so why didn't the order execute?
Most exchanges follow a "price-time priority" principle for both orders and quotes. Whenever an order is placed at any exchange, it's given a timestamp which is then used to prioritize your orders. This method of trading is called Central Limit Order Book or "CLOB" and is used by most exchanges globally. Such a system is necessary to maintain transparency in matching customer orders (bids and offers) on a "price-time priority" basis. The highest bid will be matched against the lowest offer. The global standard also demands that the best 5 bids/offers be visible to all market participants by way of Snap Quote.
In this particular case, the price did arrive to 87.25 briefly but there would have been other market participants who would have placed orders at that price and they would be given priority for execution because they placed the order earlier or had a better price. If you want your order to be executed on priority, it's best to trade at Market price or you can put a higher/lower Limit price. For example, you can place an order for 87.50 if you would like to be among the first few who get to buy the stock. Conversely, if you would like to sell you can place the order at 87.00 so you get priority over other traders.
Your Limit Order Buy price is 104.10
If price shows as 104.10 and your order is not yet filled (open), then it means you are in the queue and someone who placed order before you has got a deal at 104.10
Say 1500 shares has been ordered as buy quantity @ 104.10 by 3 people including you in ascending order of time, you being the last (Buyer01+Buyer02+You=750+400+350).
For you to buy at 104.1 someone should be willing to sell at 104.1 or less. They should place corresponding sell orders (for you to buy).
Say a seller has placed order for 600 shares at 104.1, remaining all sellers are asking to sell at 104.2 or above.
Then among the buyers, Buyer1 will get preference. Out of 750 shares he wanted to buy 600 will execute and 150 will be put as pending, until some other seller reduces his price to 104.1
Last Traded Price is 104.1 and this will be shown in your screen and situation now becomes.
If some new buyer, Say Buyer00 places order at 104.2, then his order will be matched with sellers @104.2 and he will get preference over you, and the market price will change into 104.2
Sometimes situation happens that no seller will be ready at 104.1 and no buyer is willing to go above 104.1, in this situation the price in your screen becomes static for sometime.
Anyways, if the price has to move down say to 104.00, it has to go through your order only and cannot bypass it. So if screen shows 104.00 then your order already been executed.
You would have missed it because of the spread. Keep your entry at maybe 5-10 paisa above ur actual price for a guaranteed fill.