The price on the screen is a quote, and it doesn't guarantee a fill. For an order to fill at a specific price, the broker needs opposing volume at exactly that price.
If there's no volume, the order fills at the next available price.
A stop loss is trickier than it looks: until price reaches it, it sleeps, and once price gets there, it turns into an ordinary market order. That's where the gap between the level you set and the price you get closed at comes from: a stop guarantees the position gets closed, and the closing price is not guaranteed.
📊 Liquidity thins out on news and around rollover, and also beyond levels where other traders' stops have piled up. When price reaches a zone like that, hundreds of orders turn into market orders at once, and there may not be enough opposing volume for all of them.
The best-known example of liquidity disappearing completely happened on January 15, 2015. Without any warning, the Swiss National Bank scrapped the 1.20 floor on the franc against the euro that it had defended for several years. EUR/CHF collapsed to around 0.85 within minutes.
Liquidity providers stopped quoting, stop losses were filled well beyond the set level, sometimes several times further away, and many traders ended up with negative account balances.
Track the data flow and real-time liquidity reaction through our app: