Stop Loss Filled Worse After a Weekend Gap? How to Check What Happened in MT4 and MT5
You had a stop loss on an open position over the weekend. On Monday the position is closed, but at a price worse than the stop level you set. And when you look at the chart, the candles may not even seem to reach your stop. This article shows how to find out, in the MetaTrader 4 (MT4) and MetaTrader 5 (MT5) terminals, what actually happened to that trade: at what price it was closed, why, and why the chart can look as if your stop was never touched.
It covers the desktop versions of MT4 and MT5 and is based on the MetaQuotes documentation and the ESMA document listed at the end, checked on 2026-11-04. Menu names and column labels can differ between builds and languages, so confirm each step on your own terminal. It does not name any broker. Trading hours, execution rules and stop-loss options are set by each broker, so for those, check the documents your broker publishes.
Quick answer
- A stop loss is an instruction, not a price guarantee. It is stored and executed on your broker's server. When the price condition is met, the position is closed by a market operation, so the closing price can differ from your stop level. Section 2 explains why, and how much of that the documentation states directly.
- A short position's stop loss is checked against the Ask price, but the chart is drawn from Bid prices. So a sell position can be closed by its stop loss while the chart candles stay below the stop level.
- The history tells you what happened. Put the closing price next to the S/L value. In MT4, a position closed by its stop loss has a red S/L cell and "[s/l]" in the comment. In MT5, look at the exit deal: its Price is the execution price and its S/L is the stop loss the position had when it was closed.
- Don't count on the price coming back. None of the MetaTrader help pages or the ESMA document listed at the end describes a mechanism that brings the price back to where it was before a gap.
1. What a weekend gap is
Most forex trading stops over the weekend, while news and orders keep building up. When trading resumes, the first prices reflect everything that happened in between, and they can be some distance from Friday's last price. That jump is what traders call a weekend gap.
On the chart, this can show up as a first bar that opens some distance from the close of the last bar before the pause.
The exact hours when trading stops and restarts depend on the instrument and the broker. Your broker's published trading hours are the place to check them.
2. Why the fill can differ from your stop level
Two points from the MetaQuotes documentation explain how a stop loss is handled.
- It runs on the server. The MT5 help says stop loss and take profit orders are stored and executed on the broker's server, so they do not depend on your terminal, and the MT4 help describes the stop loss as working on the server too. A stop loss works even when your terminal is off. When it triggers, it is the server that closes the position.
- It does not give up on the first failure. If the market operation cannot be carried out when the stop loss triggers, for example because the exchange rejects it, the MT5 help says the order is not deleted and triggers again at the next tick that meets its condition.
The MT5 help also describes how pending stop orders (Buy Stop and Sell Stop) are filled: once triggered, a market order request is sent to the broker, and the order is executed at the specified price or worse. The same page says the execution of stop orders is guaranteed, unlike limit orders, which never slip but may not be filled at all.
That sentence about "the specified price or worse" is written about pending stop orders. The help does not say the same of the stop loss in those words. A worse fill on a stop loss follows from the other points. The stop loss is executed as a market operation. And under the Market Execution mode, both the MT4 and the MT5 help say the broker decides the execution price and that sending an order in that mode means advance consent to that price. Which execution mode applies is decided by the broker for each instrument. So when the first available price after a weekend is already beyond your stop level, the position can be closed at that later price rather than at the level you typed.
A regulator document points the same way. In its Q&A on CFDs and other speculative products (version of 31 March 2017; this passage is unchanged from the 2016 version), the European Securities and Markets Authority (ESMA) lists, among the risk information retail clients should receive where relevant, whether a stop loss is "guaranteed", and that a stop loss that is not guaranteed may not limit losses in highly volatile trading conditions.
One more detail matters if you use a trailing stop. In both MT4 and MT5, the trailing stop runs in your terminal, not on the server. If the terminal is off over the weekend, only the stop loss level that the trailing stop last set is active. An Expert Advisor (EA) that moves your stop loss also runs on your computer: the MT5 help notes that an EA cannot manage its positions if the computer fails or loses its connection to the server. In that case, the stop loss stored on the server stays at the level the EA last set. If you rely on one, the checks in Expert Advisor Not Trading in MT4 or MT5? help confirm that it was actually running.
3. Bid vs Ask: why the chart may never touch your stop
This is the part that confuses many traders after a gap.
Which price triggers the stop loss. Both platforms state it. The MT5 help says the stop loss condition is checked using the Bid price for long positions and the Ask price for short positions. The MT4 help says the same: long positions are checked with the Bid price, short positions with the Ask price.
Which price the chart shows. The MT5 help says bars are formed from Bid prices (or from Last prices for instruments with market depth), and that the Ask price is not displayed on the chart. The MT4 help says bars are built and shown only for Bid prices. Both help pages add that the Ask price is always used to open long positions and close short ones.
It follows that, for a short position, the price that triggers your stop loss is not the price drawn on the chart. The Ask is the Bid plus the spread. If the spread is wide at the moment trading resumes, the Ask can reach your stop level while the Bid candles stay below it. The position is closed by its stop loss, and the chart seems to show that the price never got there. For a long position, the stop loss and the chart both use Bid, so the candles do show the trigger price.
To see the Ask on your chart:
- MT5: in the chart's Properties, on the Common tab, enable "Show Ask price line". A horizontal line appears at the Ask price of the latest quote.
- MT4: enable "Show Ask line", either on the Charts tab of the terminal options (the default for charts) or in a chart's own properties. A horizontal line appears at the latest Ask price.
Both settings add only a line at the latest Ask. The bars themselves are still built from Bid prices, so the line does not show where the Ask was on Monday morning. For the past, rely on the trade history in the next sections.
4. Step by step: check the trade in MT4
- Open the Account History tab of the Terminal window. Choose All History, or a period that includes the moment the position was closed: the history for a period is requested by close time.
- Find the position and read two values. The S/L column shows the stop loss level that was set. The closing Price column shows the price at which the position was actually closed.
- Check why it was closed. If the position was closed by its stop loss, the MT4 help says the S/L cell is colored red and "[s/l]" appears in the comment field.
- See it on the chart. Drag the trade from the Account History tab onto a chart with the mouse. The entry and the exit are drawn as arrows joined by a line. Hold Shift while dragging to show the whole history. Compare the exit with the Bid candles around it, keeping section 3 in mind for a short position.
- Keep a record if needed. You can save the history as an HTML report (standard or detailed). The Journal tab records what the terminal itself did during the session, and the log files are kept in the /LOGS folder of the terminal as files named by date (YYYYMMDD.LOG).
5. Step by step: check the trade in MT5
- Open the History tab of the Toolbox window. The history can be shown as positions, orders or deals; for this check, the Deals view is the most direct. Choose a period that includes the close.
- Find the exit deal. Each position has an entry deal (direction "in") and an exit deal (direction "out"). For the exit deal, Price is the execution price, and S/L is the stop loss the position had at the moment it was closed.
- Read the time with the right clock. The Time column is the deal execution time in the time zone of the broker's trade server, not your computer's. If you need to match it with news or with another time zone, see MT4 and MT5 Server Time vs Local Time vs UTC.
- Check why it was closed. When a position is closed by its stop loss or take profit, the MT5 help says the corresponding information is shown in the comment. The documentation does not specify the exact wording, so read it on your own terminal rather than looking for a fixed text. If you use MQL5, the deal property
DEAL_REASON_SLmarks a deal executed as a result of stop loss activation. - Watch the period in the Positions view. The Positions view includes a position only if it was opened or closed within the selected period. A position opened before the period and closed after it is left out, so choose a period that includes the closing time.
- See it on the chart. Right-click the deal, choose "Show on Chart", then "Add [symbol] Deals". The deals for that symbol are marked on the open charts of that symbol, and a new chart opens if none is open.
6. Reading the difference
Once you have the two numbers, the comparison is simple: closing price minus stop loss level, read in the direction of the trade.
- For a short position, the stop loss sits above the market. A worse fill is a closing price above the stop level.
- For a long position, the stop loss sits below the market. A worse fill is a closing price below the stop level.
Example (invented numbers for illustration, not a real trade or any broker's quote): a short EUR/USD position with a stop loss at 1.08500. Friday's last candle closes with a Bid of 1.08300. On Monday the position is closed by its stop loss at 1.08620. The fill is 1.08620 − 1.08500 = 0.00120 worse than the stop level. On a five-digit quote, that is 120 points, or 12.0 pips with the common convention of 10 points to a pip. Because this is a short position, it is closed at the Ask price, so the closing price may not appear anywhere in the Bid candles on the chart.
Write down the closing price, the S/L value, the difference in points or pips, the server time of the exit, and how the history marked the reason for closing. If you ask your broker about the fill, these are the values they will need.
7. Do gaps always fill?
You will often read that "gaps always fill": that after a gap, the price comes back to where it was before. None of the MetaTrader help pages or the ESMA document listed at the end describes a mechanism that brings the price back. The terminal records the prices it receives, and the stop loss is carried out as a market operation once its condition is met (section 2). The same sources contain no figures on how often or how quickly gaps close.
In practice, that means a stop loss placed on the assumption that the price will return before it reaches the stop is relying on something none of these documents supports. If the price does come back later, the stop loss has already closed the position at the earlier price.
8. Before the next weekend
- Check your broker's trading hours and order rules for each instrument you hold: when trading stops and restarts, and which execution mode applies.
- Ask whether a guaranteed stop loss is offered, and on what terms. ESMA's Q&A distinguishes an ordinary stop loss from a guaranteed one, which it describes as a stop loss that would operate whatever the market circumstances are. Whether a guaranteed stop is available, and what it costs, depends on the broker.
- Size the position for a fill beyond your stop. If a gap of a given size would close the position well past the stop level, decide in advance whether you can accept that result or would rather reduce or close the position before the weekend.
- Don't rely on a trailing stop or an EA in a terminal that will be switched off. Only the stop loss stored on the server stays active (section 2).
FAQ
Why was my stop loss filled at a worse price than I set? A stop loss is executed as a market operation on the broker's server. The MetaQuotes help says pending stop orders fill at the specified price or worse; it does not say this of the stop loss in those words, but because a stop loss is also carried out as a market operation, it can be closed at the first available price beyond your level, as can happen after a weekend gap.
My stop loss was hit, but the chart never reached it. Why? If the position was short, its stop loss is checked against the Ask price, and MT4 and MT5 charts are drawn from Bid prices. When the spread is wide, the Ask can reach your stop while the Bid candles stay below it.
Where can I see the actual closing price? In MT4, the closing Price column of the position in the Account History tab. In MT5, the Price of the exit deal in the History tab.
How do I know the position was closed by the stop loss?
In MT4, the S/L cell turns red and "[s/l]" appears in the comment. In MT5, the comment of the deal shows that it was closed by stop loss, and in MQL5 the deal reason is DEAL_REASON_SL.
Does the stop loss work if my terminal is closed over the weekend? Yes. In both MT4 and MT5, the stop loss is stored and executed on the server. A trailing stop runs in the terminal, though, so it does not move while the terminal is off.
Sources
All pages were checked on 2026-11-04.
- MetaTrader 5 Help, Basic Principles (stop loss, take profit, trailing stop, execution modes): https://www.metatrader5.com/en/terminal/help/trading/general_concept
- MetaTrader 5 Help, Executing Trades (order types, position protection, trading account history): https://www.metatrader5.com/en/terminal/help/trading/performing_deals
- MetaTrader 5 Help, Chart settings: https://www.metatrader5.com/en/terminal/help/charts_advanced/charts_settings
- MQL5 Reference, Deal Properties: https://www.mql5.com/en/docs/constants/tradingconstants/dealproperties
- MetaTrader 4 Help, Types of Orders: https://www.metatrader4.com/en/trading-platform/help/positions/orders
- MetaTrader 4 Help, Trailing Stop: https://www.metatrader4.com/en/trading-platform/help/positions/trailing
- MetaTrader 4 Help, Types of Execution: https://www.metatrader4.com/en/trading-platform/help/positions/execution
- MetaTrader 4 Help, Charts settings: https://www.metatrader4.com/en/trading-platform/help/setup/setup_charts
- MetaTrader 4 Help, Account History: https://www.metatrader4.com/en/trading-platform/help/overview/terminal/terminal_account_history
- MetaTrader 4 Help, Journal: https://www.metatrader4.com/en/trading-platform/help/overview/terminal/terminal_journal
- ESMA, Questions and Answers relating to the provision of CFDs and other speculative products to retail investors under MiFID (ESMA35-36-794, 31 March 2017): https://www.esma.europa.eu/sites/default/files/library/esma35-36-794_qa_on_cfds_and_other_speculative_products_mifid.pdf
This article is general information about how MetaTrader terminals handle stop losses and trade history. It is not investment advice and does not promise any trading result. Trading involves risk, and a stop loss does not guarantee a maximum loss.
