Clicking “buy” is a request, not confirmation of a trade at the displayed price. Transmission, validation, execution and the return message are different stages; a request may also be rejected or only partly filled. To compare brokers, define the elapsed time and price reference, then examine costs, fills and failures together.

What "order execution" actually means

A request travels to the server and is checked before it can produce a deal. The applicable product, execution mode and fill policy determine whether it fills, fills in parts or fails. One order can therefore have several deals and execution times. Receipt of a response at your terminal is a later event than the server’s execution; neither should be confused with the moment you clicked.

Separate communication time from server processing and execution. A quoted “20 ms” is meaningful only with stated endpoints, clock source, sample and order status. Total delay adds stages; a slow stage can dominate it, but delay alone does not determine the price. Market movement, available size and the order’s conditions also matter.

Instant execution versus market execution

MetaTrader 5 distinguishes Instant, Request, Market and Exchange Execution; the broker sets availability for each instrument. In Instant Execution, the server may execute at the requested price or return a requote. This mode is not a guarantee that every request succeeds. Market Execution accepts the price determined in that mode without a further price negotiation, while validation and fill constraints still apply.

Market execution accepts the available execution price rather than guaranteeing the displayed quote. Slippage, rejection or partial execution can still occur according to liquidity, fill policy and service rules. Record actual fills and any unfilled remainder.

What affects execution time and quality

Read the execution policy to identify the firm’s role, price sources, routing and any rejection conditions. An ECN label alone does not prove that a CFD firm acts only as an agent or sends every request unchanged to an external counterparty. Last look is one execution condition to investigate, while PFOF (payment for order flow) concerns routing remuneration under product- and jurisdiction-specific rules. Neither label substitutes for the contract. See ECN versus market maker for the distinction between the client trade and the firm’s hedge.

Server location, connectivity and software can affect part of the delay. A VPS may improve connection continuity or shorten a network segment; it does not supply liquidity or guarantee prices. Available quotes and size can change in quiet or volatile conditions. A candle spike or adverse fill alone does not prove the mechanics of stop hunting; keep the order data and relevant bid/ask before attributing a cause.

Example: slippage on a post-news spike

Use a hypothetical EUR/USD buy for 100,000 EUR. Record an ask of 1.08500 at the defined request moment and an actual fill of 1.08550. Assume one pip is 0.0001 and no currency conversion. The example illustrates price arithmetic, not measured NFP slippage or a typical delay.

Hypothetical scenario — a market entry in the data second (illustrative values)
Recorded ask at the request moment1.0850
Fill minus recorded ask0.00050 =5 pips higher
Order execution price1.0855
Slippage on entry5 pips adverse on this buy

The difference is 0.00050 × 100,000 EUR = USD 50, or USD 5 for 10,000 EUR. A buy at 1.08490 against the same ask would instead improve the price by one pip. On a sell, a higher execution price is favourable. A larger swing target makes USD 50 a smaller fraction of the planned move without making it irrelevant; repeated differences can accumulate across any style.

Why execution quality can matter more than the spread

Compare actual prices and explicit charges against a defined benchmark. Spread and slippage are already embedded in a result calculated from actual ask/bid fills; do not subtract them again. A separate execution-cost comparison may decompose spread, commission and price deviation, provided the same component is counted only once. Funding and conversion can add costs beyond execution. The spread is cheaper and when the commission is comparison shows a hypothetical tariff calculation.

EU MiFID II Article 27 considers price, costs, speed, likelihood of execution and settlement, and other relevant factors. For retail orders, total consideration includes price and directly related execution costs; the factors are not automatically equally weighted. A specific client instruction affects the elements it covers. Best execution is a process obligation, rather than a guarantee of the best possible price on every individual fill.

Demo versus a live account

Demo execution is provider-specific. IG’s UK help page, for example, says its demo omits slippage and specified price/size rejections, alongside some funding and close-out features. Such a simulation can teach controls without demonstrating live fill quality. Live OTC CFDs need not expose a public exchange order book, and the difference is not reliably described as “slightly worse”. Read the actual simulator and live-account rules.

The first fill does not complete the order

Check what a reported time means. This fictional order fills in three parts, producing several execution times.

Scroll sideways to see the full diagram

The first fill does not complete the orderA 1-lot order fills 0.5 lot at 50 ms, 0.3 at 80 ms and 0.2 at 900 ms. At 80 ms, 0.2 lot remains. First-fill time is 50 ms; completion time is 900 ms.Request: 1 lot. One shared clock.50 ms0.5 lot50% filled80 ms+0.3 lot80% filled900 ms+0.2 lot100% filledFirst fill: 50 msFull order completed: 900 ms
Fictional data, measured from one starting point on one clock, with no requotes or cancellation of the remainder. These are neither broker measurements nor typical execution times. MT5 describes multiple deals linked to one order.
A fast first fill does not imply equally fast completion of the whole order.

When comparing executions, preserve the order number and every partial fill. The volume-weighted mean here is 229 ms, but the order was not complete at 229 ms. These three measures answer different questions.

How to measure execution yourself

Save the request, status, order ID, every fill, volume and relevant bid/ask. For each timestamp identify its event, clock, time zone and precision: a terminal log can record when a message arrived, rather than when the server traded. Compare like instruments, sizes and trading periods. Include rejections among all comparable requests and report tails alongside the median. A few dozen observations do not establish a universal quality result. Read the current policy and use the choosing a broker guide to identify the entity responsible for explaining discrepancies.

What to do about your execution

  1. Define and report several measures. Distinguish first-fill, full-completion and response times. Use comparable observations, clock sources, rejection rates and slow cases alongside the median.
  2. Investigate repeatable discrepancies. Record side, benchmark and order type before comparing favourable and adverse differences. An asymmetric sample warrants explanation, but does not alone prove manipulation.
  3. Check mode and fill conditions. The broker sets instrument availability. A stop trigger does not guarantee its price, while a limit restricts the price but can remain unfilled; pending orders do not remove these constraints.
  4. Reconcile costs once. Compare actual fill prices and fees, then account for any funding or conversion. Do not deduct spread or slippage again from a result already based on the executed prices.