Trading process

Why My Pending Order Did Not Fill (or Filled at a Different Price) on Gold

The chart clearly touched your buy limit, but nothing happened. Or your buy stop filled two dollars above the price you typed. Both are among the most common questions gold traders ask, and both usually have a simple, checkable cause. Here are the seven reasons, how to find which one hit you, and how to set pending orders so it happens less.

Gold spot$4,125.2+65.4 (+1.61%)NextBank of England rate decisionin 3h 59m · Thu 12:00 GMTMarket openpause in 13h 59mRange$88.8
Gold price, last 12 monthsGold price, last 12 monthsHigh $5,318 (29 Jan 2026) · low $3,899 (30 Oct 2026) · 12-month change −0.2%$4,000$4,500$5,000$4,131Nov ’25Jan ’26Mar ’26May ’26Jul ’26Sep ’26
COMEX gold, daily closes, last 12 months · data to 5 Nov 2026 · xauusdglobal.com

The short answer

When a pending gold order doesn’t fill, or fills somewhere else, it is almost always one of these seven:

  1. Bid vs ask. Buy orders fill on the ask, the chart shows the bid.
  2. A gap. Price jumped over your level.
  3. Expiry. The order ran out of time.
  4. Stops or freeze level. The order was too close to the price to place or change.
  5. Market closed. Weekend, daily break or holiday.
  6. Slippage. A stop order filled at the next price in a fast move.
  7. Margin. Not enough free margin when it triggered.

The History and Journal tabs in MT5 tell you which one. The checking routine is near the end.

If you mix up the four order types, start with the picture guide: buy limit vs buy stop vs sell limit vs sell stop.

1. Bid vs ask: “the chart touched it!”

MetaTrader 5’s help says buy limit and buy stop orders fill at the ask, and sell limit and sell stop orders at the bid. Most MT5 charts show only the bid. The ask sits above it by the spread.

Example numbers only. The spread is $0.30. You place a buy limit at $3,990.00.

The chart (bid) drops to a low of $3,990.00 exactly, then bounces. At that moment the ask was $3,990.00 + $0.30 = $3,990.30, still above your limit. No fill.

For the ask to reach $3,990.00, the bid had to fall to $3,990.00 − $0.30 = $3,989.70.

The opposite happens with a buy stop: with a buy stop at $4,010.00, the ask reaches it when the bid is only at $4,009.70. So the buy stop fills before the chart line touches it.

Order Fills on On a bid chart it seems to…
Buy limit Ask Need price to go past your line by the spread
Buy stop Ask Fill before price reaches your line
Sell limit Bid Fill when the line is touched
Sell stop Bid Fill when the line is touched

Fix: turn on the ask line (right-click the chart, Properties, show Ask line), and set buy limits a little above the level you want. In busy hours gold’s spread is small; around the daily rollover and news it can be much wider (why the spread widens).

2. A gap: price jumped over your level

Gold can open far from where it closed, after the weekend or a big headline. What happens depends on the order type:

  • Stop orders (buy stop, sell stop, and your stop-loss) trigger at the first available price, which can be well past your level.
  • Limit orders fill at your price or better, so a gap in your favour can give you a better price.

Example numbers only. Friday close: $3,960. You have a sell stop at $3,950, 0.10 lot. Monday opens at $3,940.

Your sell stop triggers at the first price, about $3,940, which is $10 below your level. On 0.10 lot that’s 0.10 × 100 oz × $10 = $100 different from what you planned.

See how big gold’s Monday gaps have been.

3. Expiry: the order ran out of time

MT5 offers expiry types including Good Till Canceled, Today and Specified (a date and time). An order set to “Today” is removed at the end of the trading day, and a “Specified” order at the time you chose, which is usually server time, not your local time.

Fix: check the expiry before you place it, and know your broker’s server time. Many servers close the day at 5 pm New York (daily candle and server time).

4. Stops level and freeze level

Brokers set two distances for each symbol, shown in its Specification:

  • Stops level: the minimum distance from the current price for placing stop and pending orders, and for stop-losses and take-profits. Closer than that, and the order is rejected (“invalid price” or “invalid stops”).
  • Freeze level: a distance inside which you can’t modify or delete an order that is about to trigger.

So if you try to move your buy limit when price is right next to it, the platform may refuse. And an order you thought you placed may have been rejected for being too close. See invalid stops on gold and the MT5 errors guide.

5. The market was closed

Pending orders wait while gold is closed: at the weekend, during the daily break around 5 pm New York, and on some holidays. Price on a chart can look like it “touched” your level in the last tick before the break or in a thin first tick after it, with no trades possible in between.

Check whether gold is open now in your time zone with the gold market hours tool, and see why can’t I trade gold right now?.

6. Slippage: filled, but at a different price

A stop order becomes a market order when it triggers. In a fast move, the next available price can be worse than your level.

Example numbers only. You have a buy stop at $4,010.00, 0.20 lot, before CPI. The release hits, gold jumps, and the order fills at $4,012.40. That’s $2.40 of slippage: 0.20 × 100 oz × $2.40 = $48 worse than planned.

Limit orders don’t slip against you (they fill at your price or better), but they may not fill at all in a fast move. Read gold slippage explained for when it happens most.

7. Not enough margin when it triggered

A pending order doesn’t use margin until it fills. If, by then, your free margin is too low (because other trades moved against you), the order can be rejected or cancelled when it triggers. The Journal shows a “not enough money” message. See balance, equity, margin and free margin and check sizes with the gold margin calculator.

How to find out what happened (5 minutes)

  1. History tab: find the order. Was it filled, cancelled, expired or rejected?
  2. Journal tab (and Experts tab if you use an EA): read the message at that time.
  3. Turn on the ask line and look at the bar where you expected a fill. Did the ask reach a buy order’s price?
  4. Check the time: was the market closed, or was it the daily break or a news release?
  5. Check the specification: stops level and freeze level for XAUUSD.
  6. Write it in your journal: which reason, and the fix.

If the fill still looks wrong after these checks, ask your broker in writing for the order ticket, the time stamps and the prices it used. The execution quality checklist shows what normal looks like.

Set pending orders so this happens less

  • Add the spread to buy limits and to the stop-loss of sell trades.
  • Avoid tight pending orders right before big news and the daily break.
  • Use an expiry so old orders don’t fill days later.
  • Keep enough free margin for orders that might trigger.
  • Size so a gap or slippage is survivable. A stop-loss is not a guaranteed price.

For the full picture of order types, execution modes and fill policies, read the order types and execution lesson.

Sources

  • MetaTrader 5 Help, Types of orders: which price (ask or bid) fills each order type (read 5 November 2026)
  • MetaTrader 5 Help, Opening positions / placing orders: expiry types; stop levels set by the broker in the contract specification (read 5 November 2026)
  • MQL5 Reference, Symbol properties: SYMBOL_TRADE_STOPS_LEVEL and SYMBOL_TRADE_FREEZE_LEVEL (read 5 November 2026)
  • All prices, spreads and lot sizes are example numbers, checked by script.

Educational content only, not financial advice. Trading gold with leverage carries a high risk of loss.

Frequently asked questions

Why did my buy limit not fill when price touched it?

Because a buy limit fills on the ask, and most charts show the bid. The ask is higher by the spread, so the chart can touch your level while the ask stays a little above it. For the order to fill, the bid usually has to go below your level by about the spread.

Why did my pending order fill at a different price?

Stop orders become market orders when they trigger, so in a fast move or a gap they fill at the next available price, which can be worse. Limit orders fill at your price or better, so a gap can give you a better price.

Why did my pending order disappear?

Usually it expired (Today or a set date), was cancelled because you didn’t have enough margin when it triggered, or was removed by you, an EA or another device. The Journal and History tabs in MT5 show what happened.

What is the freeze level in MT5?

A distance set by the broker, in points, inside which you can’t modify or delete orders that are very close to the current price. The stops level is a separate minimum distance for placing stop and pending orders. Both are shown in the symbol’s specification.

Can a pending order fill when the market is closed?

No. Orders wait while the market is closed, at weekends and in the daily break. When it reopens, a stop order that the opening price has passed through triggers at the first available price, which can be far from your level after a gap.

Comments

No comments yet.

Leave a comment

Comments are checked before they appear. Be respectful: no promotion, no trade signals. Rules · Privacy. No email needed.