A CFD quote is assembled, not discovered on an exchange. The broker takes price streams from its liquidity providers, aggregates them into a best bid and ask, adds its mark-up or commission, and shows the result. When a trade is sent, the winning provider may apply last look — a final chance to accept or reject the request at its quoted price; the FX Global Code says this should be transparent and used only for price and validity checks. It is why two brokers show different prices, and why a fill can be rejected.
A CFD price is assembled, not discovered. The broker receives price streams from its liquidity providers, aggregates them into one best bid and ask, adds its mark-up or commission, and shows the result on the ticket — and the provider that wins a trade may still apply last look before accepting it.
The three parts before this one described a book. This part describes whose book it is. For a currency pair or a spot metal there is no exchange behind the quote; the BIS survey the Intermediate level leaned on describes the market as over-the-counter, and MetaTrader’s own documentation says that on such instruments the quotes shown are the broker’s. What follows is the pipeline that produces them.
The pipeline
Providers. A liquidity provider is a dealer — a bank, or a non-bank market maker — that streams the prices at which it will buy and sell to the broker, continuously, and trades against the broker’s flow at those prices. A broker usually has several, because no single provider is best on every pair at every hour.
Aggregation. The streams are combined by taking the best bid and the best ask across all of them at each moment. The FX Global Code’s Principle 18 describes services that “provide access to multiple liquidity sources” and asks whoever provides them to disclose how the prices displayed are determined.
Mark-up. The broker’s compensation sits on top of the aggregated price, as a widening of the spread, a separate commission, or both. Principle 14 defines mark-up as “the spread or charge that may be included in the final price of a transaction” to compensate the participant, and asks that it be fair, reasonable and disclosed — including that clients understand their final price may include it.
The ticket. What arrives on the platform is the result. It is a real price at which the broker will deal; it is not a price the market as a whole agreed on, because for this instrument there is no such price.
Aggregation: the best of several streams
Two things about the aggregated quote matter for a trader.
It is only as deep as its best provider at that price. The aggregated bid is one provider’s bid, for that provider’s size. Behind it sit the other providers’ bids at worse prices — the depth of Part 3, now with names on the levels. A large order against an aggregated quote walks from one provider’s price to the next.
It changes when a provider withdraws. At the rollover, around a release, or when a provider’s own risk limits are reached, streams are pulled or widened. The aggregated quote then jumps to whatever the remaining providers show, which is the mechanism behind the spread-widening the earlier levels described as a fact.
Last look
When a trade is sent against the aggregated quote, it is routed to the provider whose price won. That provider may not fill it immediately. Many operate last look: a final check, after the request arrives, before accepting or rejecting it.
The FX Global Code — the set of principles the world’s central banks and market participants published for the wholesale market — defines it in Principle 17: “a practice utilised in Electronic Trading Activities whereby a Market Participant receiving a trade request has a final opportunity to accept or reject the request against its quoted price.” The same principle says what it should and should not be.
| The Code says | What it means at the ticket |
|---|---|
| Participants employing last look should be transparent about its use and provide appropriate disclosures | Whether a provider uses it, and how, should be findable |
| If utilised, it should be a risk control mechanism used to verify validity and/or price | The window is for checking the request is in order and the price still stands |
| It should not be used for information gathering with no intention to accept the request | A request is not a free look at the client’s intent |
| The participant should not trade on the information in the request during the window | No pricing or hedging off the client’s request before deciding |
A rejection at the provider, then, is the pipeline behaving as its disclosed terms describe — provided the terms were disclosed and the window was used for what the Code allows. The retail client’s counterparty is the broker, and the provider is a step further back; but the reason a fill “came back rejected” or arrived at a re-quoted price is usually here.
Key takeaway The quote is a claim by the broker; the fill is a decision by a provider. Between them sit aggregation, mark-up and last look, and none of the three is visible on the chart. A trader who knows the pipeline knows where a fill can differ from the quote, and which of those differences the Code says should have been disclosed.
Why two brokers show two prices
Put two brokers side by side on the same pair at the same instant and their quotes differ. Neither is wrong.
This is the microstructure reason behind two things the earlier levels stated as rules. Reference levels — yesterday’s high, the daily open — are broker-specific by a pip or two, which is one reason they are drawn as zones. And server time decides which candles those levels come from. Two brokers, two books, two clocks: the same market, cut and priced differently at each step of this pipeline.
What the pipeline leaves in your hands
The left column is the previous three parts: the queue an order joins, its size against the book, and the hour it is sent. The right column is this one, and it is read once, from the broker’s disclosures, before an account is opened — the Code’s mark-up and last-look principles are the checklist for what those disclosures should contain.
Between the two columns is the thing the next group is about: the resting orders themselves.
Next: Where liquidity rests — stops beyond swings, limits at levels, and why price is drawn to the places where orders gather.
- Forex and most CFDs trade over the counter: the quote is the broker's, assembled from its liquidity providers, not an exchange's.
- Aggregation takes the best bid and the best ask across several provider streams; the mark-up or commission sits on top.
- The FX Global Code defines last look as a practice in which a participant receiving a trade request has a final opportunity to accept or reject it against its quoted price (Principle 17).
- The Code says last look should be transparent and disclosed, and used as a risk control to verify validity and price — not for information gathering.
- Principle 14 of the Code defines mark-up as the spread or charge included in the final price to compensate the participant, and asks that it be fair, reasonable and disclosed.