A buy limit order is only executed when the asking price is at or below the limit price specified in the order. Novice traders frequently forget that it is not the bid price that must be at their buy limit level but the ask price. Suppose a trader expects a stock price to fall to $50 and wishes to buy the stock in the event that it does retrace downward to that level. If he places a buy limit order at $50 and the stock falls only to exactly the $50 level, his order is not filled, since $50 is the bid price, not the ask price. The current market price showing for a stock is always the bid price.
A trader must always be aware of what the current bid-ask spread is when considering placing a buy limit order. Even if the bid price falls below the specified buy limit price, the trader's order is not filled if the ask price remains above his specified buy limit price. A buy limit order is only guaranteed to be filled if the ask price drops below the specified buy limit price. If the ask price only trades exactly at the buy limit level, but not below it, then the trader's order may or may not be filled. There may be more buy orders at that price level than there are sell offers, and therefore all buy limit orders at that price will not be filled.
Traders also have to keep in mind that the bid-ask spread can often widen considerably during volatile trading. A stock may be trading with a $1 spread between the bid and ask, but if there is a sudden, sharp price move, the bid-ask spread may temporarily widen to as much as $4 or $5.