Strasmore Research
Learn Matt ConnorBy Matt Connor

Forex Pending Order Types: Limits & Stops

Forex pending order types mapped: buy limit, sell limit, buy stop and sell stop, where each trigger sits, and what a weekend gap does to a stop fill.

Forex pending order types come in four shapes: buy limit, sell limit, buy stop, and sell stop. Each one is a standing instruction to trade later at a price level you pick now, and each is fully described by two choices: the direction you want to trade, and whether that level sits above or below the current price. That two-by-two is the whole map, and almost all of the confusion around these orders lives in one corner of it.

The four forex pending order types

A pending order is an instruction left with a broker that does nothing at all until price reaches the level attached to it. The four FX variants:

  • Buy limit: a buy waiting below the current price. It fills at your level or better, never worse.
  • Sell limit: a sell waiting above the current price. The same promise, on the other side.
  • Buy stop: a buy waiting above the current price. On touch it converts to a market order and takes the price available.
  • Sell stop: a sell waiting below the current price. On touch it converts to a market order on the way down.

Two patterns fall out of that list. A limit always sits on the side of the market that favors the order: you buy lower than now, or sell higher than now. A stop always sits on the side that does not: you buy higher, or sell lower. The verb alone tells you nothing, which is why a "buy" can be either order type. Our equity pages walk the same geometry in detail, in buy limit vs sell limit orders and buy stop vs sell stop orders, and that part of the intuition carries into FX unchanged.

Buy limit or buy stop? Check the trigger, not the verb

One question settles which of the four you want. Is the level above or below the market right now? Above the market, a buy is a stop and a sell is a limit. Below the market, a buy is a limit and a sell is a stop. Platforms reject an order whose label contradicts its level, and that rejection is the single most common first experience of these four names.

The bargain differs by family. A limit controls the price and accepts the chance of no fill. A stop controls participation and accepts whatever price exists at the moment of activation. Nothing about that trade-off is specific to currencies.

How close does a resting limit need to be?

A pending limit only matters if price comes back to it. That distance question is measurable on the US equity tape, which, unlike spot FX, publishes every print to one consolidated record. The panel below takes a liquid US index fund, SPY, and asks of each session how far the day traveled from its own opening price.

QueryHow often a session reached a level set away from the open (SPY, 2016 to 2026)
distance_from_openbelow_touched_pctabove_touched_pct
0.1%8385.4
0.25%62.964.6
0.5%39.938.6
1%16.414.3
2%42.5
The exact SQL behind every number
WITH daily AS
(
    SELECT
        date,
        any(toFloat64(open)) AS session_open,
        any(toFloat64(low))  AS session_low,
        any(toFloat64(high)) AS session_high
    FROM global_markets.stocks_daily_aggs
    WHERE ticker = 'SPY'
      AND date >= '2016-01-01'
      AND date <  '2026-10-01'
    GROUP BY date
)
SELECT
    concat(toString(d), '%')                                           AS distance_from_open,
    round(100 * avg(session_low  <= session_open * (1 - d / 100)), 1)  AS below_touched_pct,
    round(100 * avg(session_high >= session_open * (1 + d / 100)), 1)  AS above_touched_pct
FROM
(
    SELECT
        arrayJoin([0.10, 0.25, 0.50, 1.00, 2.00]) AS d,
        session_open,
        session_low,
        session_high
    FROM daily
)
GROUP BY d
ORDER BY d
Run this yourself

A level 0.1% from the open was reached on the low side in 83% of sessions, and on the high side in 85.4%. Push the level out to 2% from the open and those rates fall to 4% and 2.5%. The shape of that curve is the whole economics of a resting limit: the closer your level, the likelier the touch, and the smaller the improvement over simply trading now.

Touching is also not filling. In a central equity book your order joins a line at that price and waits its turn, as described in price time priority vs pro rata allocation. FX has no shared line, and the question becomes whether your own broker's executable price passed through your level. The general catalogue of near misses in why a limit order didn't fill still applies.

Pending orders without a consolidated quote

US equities have one public reference price, the consolidated best bid and offer assembled from every exchange. Spot FX has no central exchange and no consolidated tape. Each broker streams its own bid and ask from its own set of liquidity providers, and fills from its own book. Four mechanics follow from that, and they survive any change of broker.

  • Your trigger is your broker's price. Two accounts holding an identical sell stop at an identical level can see it activate at different moments, and neither one is wrong.
  • The side of the spread matters. A buy is normally armed off the ask and a sell off the bid, so the spread sits between the mid-price on your chart and the price that arms the order. In a wide-spread moment the mid can stop short of your level while the ask has already passed it.
  • Minimum distance rules are broker policy, not market structure. Many venues refuse a pending order parked closer than some number of pips to the current price, and that floor often widens around scheduled economic releases.
  • There is no queue position to win, and no queue position to lose. Modifying a resting FX order costs nothing in priority, while in equities a price change sends the order to the back of the line.

Why a sell stop carries no price promise

A stop is a request for a market order once a level trades. The level picks the moment. The fill takes whatever price exists at that moment. When price steps over a level instead of walking through it, the first available price can sit a long way past where the stop was parked.

The equity tape records those steps precisely, since trading there pauses every night. The panel groups a decade of SPY sessions by how far the opening print landed from the previous close.

QueryHow far the open landed from the prior close (SPY sessions, 2016 to 2026)
gap_bucketsessionsshare_pct
under 0.10%50718.8
0.10 to 0.25%69125.6
0.25 to 0.50%71926.6
0.50 to 1.00%53519.8
1.00 to 2.00%1997.4
over 2.00%491.8
The exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            date,
            any(toFloat64(open))  AS session_open,
            any(toFloat64(close)) AS session_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2016-01-01'
          AND date <  '2026-10-01'
        GROUP BY date
    ),
    gapped AS
    (
        SELECT
            date,
            session_open,
            lagInFrame(session_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
        FROM daily
    )
SELECT
    multiIf(
        gap_pct < 0.10, 'under 0.10%',
        gap_pct < 0.25, '0.10 to 0.25%',
        gap_pct < 0.50, '0.25 to 0.50%',
        gap_pct < 1.00, '0.50 to 1.00%',
        gap_pct < 2.00, '1.00 to 2.00%',
                        'over 2.00%')              AS gap_bucket,
    count()                                        AS sessions,
    round(100 * count() / sum(count()) OVER (), 1) AS share_pct
FROM
(
    SELECT abs(session_open / prior_close - 1) * 100 AS gap_pct
    FROM gapped
    WHERE prior_close > 0
)
GROUP BY gap_bucket
ORDER BY min(gap_pct)
Run this yourself

Most openings land close to the previous close: the under 0.10% bucket covers 18.8% of the sessions measured. The tail is the part a stop order cares about. The widest bucket, over 2.00%, holds 49 sessions, 1.8% of the sample, and any stop parked inside one of those steps became a market order at the far side of it. Ranked by size, the ten largest steps in the same decade look like this.

QueryThe ten largest opening steps in SPY, 2016 to 2026
session_labelweekdaydirectionabs_gap_pct
Mar 16, 2020Mondaybelow the prior close10.45
Mar 9, 2020Mondaybelow the prior close7.45
Mar 12, 2020Thursdaybelow the prior close6.69
Mar 18, 2020Wednesdaybelow the prior close6.55
Mar 13, 2020Fridayabove the prior close6.04
Mar 24, 2020Tuesdayabove the prior close5.14
Aug 5, 2024Mondaybelow the prior close3.99
Nov 9, 2020Mondayabove the prior close3.94
Apr 6, 2020Mondayabove the prior close3.89
Mar 10, 2020Tuesdayabove the prior close3.8
The exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            date,
            any(toFloat64(open))  AS session_open,
            any(toFloat64(close)) AS session_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2016-01-01'
          AND date <  '2026-10-01'
        GROUP BY date
    ),
    gapped AS
    (
        SELECT
            date,
            session_open,
            lagInFrame(session_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
        FROM daily
    )
SELECT
    formatDateTime(date, '%b %e, %Y')                  AS session_label,
    formatDateTime(date, '%W')                         AS weekday,
    if(session_open < prior_close,
       'below the prior close',
       'above the prior close')                        AS direction,
    round(abs(session_open / prior_close - 1) * 100, 2) AS abs_gap_pct
FROM gapped
WHERE prior_close > 0
ORDER BY abs_gap_pct DESC
LIMIT 10
Run this yourself

The largest of them, Mar 16, 2020, opened 10.45% below the prior close. The tenth still measures 3.8%, many times a typical session's step. Read the weekday column alongside the sizes: in equities, a Monday open carries two non-trading days, and the FX week contains exactly one break of that kind.

The forex week and the weekend gap

Spot FX runs from Sunday evening ET to Friday evening ET, close to 24 hours a day, as the Asian session hands to Europe and Europe hands to the US day. That leaves one scheduled halt per week. Anything dated over those two days meets the market as a single step at the reopen, and a stop sitting inside that step activates at the first price the new week offers. Sorting the same decade of equity sessions by weekday, widest median first, shows how uneven the overnight step is across a week.

QueryMedian and 95th-percentile opening step by weekday (SPY, 2016 to 2026)
weekdaymedian_gap_pctp95_gap_pct
Friday0.3271.213
Monday0.3071.442
Thursday0.3051.261
Tuesday0.2631.364
Wednesday0.2571.235
The exact SQL behind every number
WITH
    daily AS
    (
        SELECT
            date,
            any(toFloat64(open))  AS session_open,
            any(toFloat64(close)) AS session_close
        FROM global_markets.stocks_daily_aggs
        WHERE ticker = 'SPY'
          AND date >= '2016-01-01'
          AND date <  '2026-10-01'
        GROUP BY date
    ),
    gapped AS
    (
        SELECT
            date,
            session_open,
            lagInFrame(session_close) OVER (ORDER BY date ASC ROWS BETWEEN 1 PRECEDING AND 1 PRECEDING) AS prior_close
        FROM daily
    )
SELECT
    formatDateTime(date, '%W')                          AS weekday,
    round(quantileDeterministic(0.5)(gap_pct, det), 3)  AS median_gap_pct,
    round(quantileDeterministic(0.95)(gap_pct, det), 3) AS p95_gap_pct
FROM
(
    SELECT
        date,
        toYYYYMMDD(date)                          AS det,
        abs(session_open / prior_close - 1) * 100  AS gap_pct
    FROM gapped
    WHERE prior_close > 0
)
GROUP BY weekday
ORDER BY median_gap_pct DESC
Run this yourself

The widest median opening step of the week lands on Friday, at 0.327%, against 0.257% on Wednesday. On that widest weekday the 95th percentile reaches 1.213%, roughly one session in twenty. A pending order left good-till-cancelled is still live when the FX week restarts; one left with a dated or session expiry may have lapsed in the meantime, which is the practical reason the vocabulary in order time in force is worth learning before parking an order over a weekend.

Pips and lots: what the distance costs

Equity orders are priced per share. FX pending orders are priced in pips against a lot size, and both halves of that change how the distance to your trigger feels.

A pip is the fourth decimal place of most currency pairs, 0.0001 of the quote. For pairs quoted in Japanese yen the convention moves two places, to 0.01. Most brokers also stream a fifth decimal, the fractional pip, which is a tenth of a pip and is often where the quoted spread sits.

Lot sizes are standardized: 100,000 units of the base currency for a standard lot, 10,000 for a mini, 1,000 for a micro. Multiply the two and pip value falls out. For a pair quoted in US dollars, one pip on a standard lot moves the position by 100,000 units times 0.0001, which is $10. A mini lot moves $1 per pip and a micro lot 10 cents.

That arithmetic is what converts a gap into money. Suppose a sell stop sits 20 pips below the market and the reopen prints 60 pips below it. The 40-pip difference is the slippage on activation, and on a mini lot that difference is $40. The level did not fail. A stop order promises activation, and only that.

How these panels were counted

Spot FX publishes no consolidated tape, so no public record of every FX print exists to measure. The panels above use the US equity tape, where the two mechanics in question, a level sitting at a distance and a price stepping over it, are recorded for every session. Each panel covers one liquid US index fund over a fixed window running from 2016 through the end of September 2026, so the figures on this page do not move as new sessions arrive. Daily rows are collapsed one per date before any arithmetic, the opening step compares each session's open against the previous session's close, and both percentiles use a deterministic estimator so two runs of the same query agree. The 6 buckets in the distribution panel and the 5 weekday rows cover the full sample between them.

Where equity order intuition still holds

More of it holds than not. The two-by-two itself is identical, the limit and stop bargain is identical, and the distance curve behaves the same way: a level close to the market is touched often and saves little, a far level is touched rarely and saves more. If you already have a feel for market orders vs limit orders in stocks, that feel transfers.

What changes is everything that depends on a central venue. There is no consolidated quote to measure your trigger against, no published queue, no opening or closing auction to carry a dense pile of resting orders, and no per-share price to think in. Learn the four names as positions on a grid, then learn your own broker's quote as the thing that arms them, and the vocabulary stops shifting under you when you change platforms.

FAQ

What are the four pending order types in forex?

Buy limit, sell limit, buy stop, and sell stop. Limits wait on the favorable side of the current price, buying below it or selling above it, and fill at your level or better. Stops wait on the unfavorable side, buying above or selling below, and convert to market orders once touched.

What is the difference between a buy limit and a buy stop?

Only where the trigger sits. A buy limit rests below the current price and is an attempt to pay less than the market asks now. A buy stop rests above it and is an attempt to join a move already in progress, accepting whatever price exists at activation.

Do forex stop orders guarantee the price you set?

No. A stop guarantees activation at your level, not execution at it. When price steps over the level, as it can at the Sunday reopen, the fill lands at the first available price beyond it, and the distance between the two is slippage measured in pips.

What happens to a pending order over the forex weekend?

A good-till-cancelled pending order stays live across the roughly 48-hour halt and is measured against the first prices of the new week. An order carrying a dated or session expiry can lapse before the reopen instead. The exact expiry labels vary by platform, so check which one your order was submitted with.

Why did my forex limit order not fill when the price reached my level?

The price that arms an FX order is your own broker's executable quote, and the relevant side is the ask for a buy and the bid for a sell. A mid-price chart can print straight through your level while the executable side never does, which looks like a missed fill at a level that was clearly touched.


Every panel on this page carries the SQL that produced it, so the counting is open to inspection. The same questions, how far a session travels from its open and how large the opening step gets, can be asked in plain English on the Strasmore terminal.