The reason an order fills at a different price depends on the order type. Market orders do not guarantee a specific fill price and are subject to slippage. Stop market orders can fill at a different price than the stop price if the order book moves between trigger and execution.
Why Did My Market Order Fill at a Different Price?
Market orders do not guarantee a specific fill price. They execute immediately at the best available price in the order book, which may differ from the price displayed when you placed the order.
This difference is called slippage. Slippage increases with larger order sizes and in thin order books. If you need tighter control over your fill price, use limit orders instead. Limit orders let you set a maximum purchase price or minimum sale price.
Why Did My Stop Market Order Fill at a Different Price?
A stop market order becomes a market order when the trigger price is reached. The fill price may differ from the stop price if the order book moves significantly between the moment the order triggers and the moment it fills.
This is especially likely during periods of high volatility when prices change rapidly. To avoid slippage on stop orders, use stop limit orders instead. A stop limit order places a limit order when triggered, executing only at the limit price or better. The trade-off is that the order may not fill if the price moves sharply away from the limit.
Can a Limit Order Fill at a Better Price Than Expected?
Limit orders execute at the limit price or better. This means a buy limit order can fill at a price lower than your specified limit, and a sell limit order can fill at a price higher than your specified limit.
This is not a problem – it is the intended behaviour. You receive a more favourable execution than requested. Limit orders never fill at a worse price than specified.