Singuard Home Blog Contact eTrader eTrader for Businesses eTrader for Traders Broker Broker CRM Live Demo Prop Firm Prop Firm CRM Live Demo
Trading & Markets

Last Look: The FX Practice Traders Never See.

Your order reaches a liquidity provider, and for a few milliseconds nothing happens. The provider is deciding whether to accept the trade at the price it just published. That pause has a name and a long argument attached to it.

Alex Onta, Executive Director, SINGUARD By August 15, 2026 7 min read

Spot FX has no central exchange. Prices are streamed by banks and non-bank market makers to aggregators, brokers and platforms, and those streamed prices are indicative. When a counterparty trades against one, the provider receives a request, not a completed trade. Before confirming, it applies a check: is this still a price I am willing to trade at. That check is last look, and the window it runs in is usually measured in single-digit milliseconds.

The practice is old, disclosed, and endlessly argued about. It sits behind a large share of the rejections and odd fills that traders attribute to their broker's bad faith, and understanding it changes which questions are worth asking.

Why the window exists at all

A provider streaming a two-sided price to dozens of venues has a problem. Its quote takes time to reach each recipient, and the recipient's order takes time to come back. During that round trip the underlying market moves. A counterparty that is faster than the provider can systematically trade against stale quotes, hitting the bid only when the true price has already fallen. This is latency arbitrage, and without a defence the provider either loses money or quotes so wide that nobody trades.

Last look is that defence. On receipt, the provider compares the requested price against its current view. If the difference sits inside a tolerance, it accepts. If price has moved beyond the tolerance, it rejects and the order comes back unfilled. The same logic explains why tolerances tighten when volatility rises: the amount price can travel inside the same window grows.

The two ways it is used

The defensible version is a symmetric price check with a short, disclosed hold time. Price moved against the provider by more than the tolerance, reject. Price moved in the provider's favour by the same amount, accept, which is where the trader gets positive slippage. Rejections land on both sides of the market and the rate stays broadly stable through the session.

The version that draws criticism is asymmetric. A long hold window, rejections only when the market moved against the provider, and acceptance of everything else. Stretch the hold long enough and it stops being a price check, because the provider is now observing what happened after your order arrived before deciding whether to take it. Some firms also historically used the information in that window as a signal for their own trading, which is precisely what the FX Global Code addresses. Principle-level guidance there covers disclosure of last look practice and the handling of client order information during the window.

Hold time and rejection symmetry are the two numbers that separate risk control from something worse. Both can be measured from ordinary execution logs, and any provider that will not discuss its own figures has answered the question.

How it reaches a retail screen

A retail trader never sees the words. The order goes to the broker, the broker's aggregator sends it to whichever provider is quoting best, and a rejection there produces one of a few visible outcomes. On platforms that support requoting, the trader sees a new price offered. On market-execution platforms the aggregator retries against the next provider in line, and the trader sees a fill a few milliseconds later at a slightly different level, which looks exactly like ordinary slippage. In thin conditions the order can fail outright.

This is the answer to a complaint every broker support desk receives. A client places an order during a data release, gets filled two pips away, and concludes the broker moved the price. Usually the broker moved nothing. The first provider rejected, the second was quoting wider by the time the retry arrived, and the whole sequence took less time than the click. The distinction matters because the remedy is different: a routing and provider problem is fixed by changing the liquidity stack, not by arguing about a single ticket.

What a firm should measure

Brokers and prop firms that source pricing from multiple providers should be running execution analysis as a standing report rather than an incident response. The minimum set is straightforward. Fill ratio per provider, per instrument, per hour of day. Mean and ninety-fifth percentile hold time on both fills and rejects. The distribution of price movement between quote and decision on rejected orders, split by direction. And rejection rate during the minutes around scheduled releases compared with baseline.

Two patterns justify a conversation. First, rejects clustering on moves against the provider while favourable moves fill, which is asymmetry regardless of what the disclosure document says. Second, hold times that grow with order size, which suggests the check is doing more than comparing a price. Neither is proof of misconduct on its own, and both are reasons to route flow elsewhere while you ask. Firms building this reporting into their own systems will find it sits naturally next to the risk tooling described in broker risk management.

Firm pricing and what it costs

The alternative is firm liquidity: a stream that must be honoured when hit, with no rejection window. It exists, it is offered by several providers, and it is not free. A provider with no last look protection prices the latency risk into the spread instead, so firm quotes are typically wider than last-look quotes for the same instrument and size. Some venues also charge differently for firm streams.

That is the actual trade for a broker choosing a liquidity stack: a tighter headline price with a rejection risk, or a wider certain price. Neither answer is right in every case. A book with a high proportion of latency-sensitive automated flow is better served by firm pricing, because the rejections would otherwise land constantly. A book of ordinary discretionary retail flow usually gets a better net outcome from last-look streams, since the rejection rate is low and the spread saving applies to every trade.

The trader's version of the lesson

Individual traders cannot change their broker's liquidity contracts, but they can stop misreading the symptoms. Rejections and wide fills concentrated in the seconds around a release are the market structure working as designed. The same behaviour at 10:00 on a quiet Wednesday is not, and it is worth logging with timestamps before raising it. Trading on leverage carries a high risk of loss, and execution quality is one of the few parts of the cost that a trader can inspect with evidence rather than opinion.

"Last look is not a scandal by itself. A rejection window measured in single-digit milliseconds is risk control. One that stretches to hundreds of milliseconds and rejects only when the market moved is something else, and the difference is measurable."

— Alex Onta, Executive Director, SINGUARD

Key Takeaways

Frequently Asked Questions

Is last look legal?

Yes. It is a disclosed feature of over-the-counter FX pricing rather than a prohibited practice. The FX Global Code, a voluntary set of principles adopted by major market participants, addresses how it should be disclosed and how the information in the hold window should be handled. Enforcement action has generally focused on misuse and misrepresentation rather than the mechanism itself.

Does last look affect retail traders directly?

Not by name. A retail order sits behind a broker and an aggregator, so the trader sees the consequences rather than the mechanism: a rejection, a requote on some platforms, or a fill at a slightly different price after a retry. The effect is largest around news and thin liquidity.

How can a firm tell whether last look is being used fairly?

By measuring. Record hold time and outcome for every order sent to each provider, then look at whether rejections are symmetric or cluster on moves against the provider. Asymmetric rejection with long hold times is the pattern worth raising with the provider or routing around.


About the Author

Alex Onta, Executive Director, SINGUARD
Alex Onta Executive Director, SINGUARD

Alex Onta is an Executive Director at SINGUARD. He built eTrader, the terminal, the mobile apps, eTrader Broker, Copytrading, Business and Community, along with the worldwide clustered-server infrastructure it all runs on, with his brother Roman Onta helping on the design, and he leads that division today. Together with Roman he builds the Prop Firm CRM, the Broker CRM, Scalegram and CopySignals, and the two of them carry worldwide compliance, payment processing and international business structuring side by side. He lives and works in Dubai for most of the year. Meet the executive duo leading Singuard's five divisions.

Your Own Trading Firm, Live in 24 Hours.

SINGUARD builds the technology behind brokers and prop firms: trading platform, CRM, client portal and payment rails, one bundle, one predictable price. Book a call and see it working, or keep reading the guides.

More in Trading & Markets