10 brokers, one method
Ranked by annual cost of ownership over 10 lots a month. Each has a page with both columns — where it wins and where it loses — and a head-to-head against the broker we work with.
- 1st of 10 on annual cost · Raw · MT5
- 2nd of 10 on annual cost · Raw Spread · MT5
IC Markets vs FxPro$1 252 - 3rd of 10 on annual cost · Raw · MT5
- 4th of 10 on annual cost · ThinkZero · MT5
ThinkMarkets vs FxPro$1 302 - 5th of 10 on annual cost · Pro · MT5
- 6th of 10 on annual cost · Advantage · MT5
- 7th of 10 on annual cost · Raw+ · MT5
- 8th of 10 on annual cost · Standard · MT5
- 9th of 10 on annual cost · Standard · MT5
- 10th of 10 on annual cost · Standard · MT5
What this list is
10 brokers, one method, one instrument, one window. Each one is an account we opened ourselves on the account type a retail client is offered, running on the broker's own MetaTrader 5 build on hardware we control. The ordering above is annual cost of ownership for 10 lots a month of EUR/USD — from $1 108 at Tickmill to $1 928 at FBS, a spread of $820 a year between the ends of one table.
That range is the reason this site exists. It is not visible in a spread comparison, because 3 of these 10 accounts carry no commission at all while 7 charge per lot on top of a near-zero spread. Both models are legitimate; they are simply not comparable until the whole bill is added up at a stated volume.
4 of the 10 have a confirmed legal entity behind our account, taken from the regulator's public register and printed on the broker's own page together with what that licence obliges the firm to do. For the rest the entity is recorded as not established, which is the truth: a group can hold a European licence and an offshore one at once, the client protections differ sharply between them, and guessing which one holds our account would attach a real licence number to the wrong company.
How to read a row
Each row carries the broker, the account type, and the measured figures with their source class at the number. Three things are worth knowing before comparing any two rows.
- The account type is part of the identitya raw account and a standard account at the same broker are different products; we never average across them
- Zero spread is a real valueon a commission account the broker is not paid through the spread, so the spread is genuinely at zero much of the time
- Execution is measured by sending ordersrejects and slippage come from real market orders around scheduled releases, not from a broker's claim; 1 of these brokers have no publishable execution sample yet, and say so
The head-to-head pages take one broker against FxPro, the broker that pays for this site, on all eight axes at once. They exist because a table sorted by one column hides the trade-off that actually decides where to trade: the cheapest account on this page is not the one with the fewest rejected orders, and the difference between those two facts is worth more than the difference between their spreads.
Two account models, one table
The accounts here come in two shapes, and the difference matters more than the difference between brands. On a raw account the broker shows you something close to the interbank price and charges a fee per lot; on a commission-free account it adds its margin to the price and charges nothing visible. 7 of these accounts are the first kind, 3 the second.
| Model | Mean measured spread | Mean commission per lot | Mean annual cost |
|---|---|---|---|
| Raw + commission7 of 10 accounts | 0.39 pips | $6.71 | $1 339 |
| Commission-free3 of 10 accounts | 1.40 pips | $0.00 | $1 726 |
Group means over our own measurements · 27.08–25.09 · at 10 lots a month
Read those two rows against each other and the shape of the market appears: the raw accounts quote a spread several times tighter, and once the per-lot fee is added at our volume the totals move much closer together than the spread column suggests. Which model is cheaper for you is a question about volume, not about brands — and the crossover is computed explicitly on each head-to-head page.
There is a second, less obvious consequence. A commission-free account hides its cost inside the price, so its cost moves with the spread — including during the rollover window, where the spread on every account widens. A raw account's fee is fixed per lot and does not widen with liquidity; only its much smaller spread component does. For anybody trading in thin hours, that difference compounds in a way no quoted figure shows.
How these accounts were opened
Every account in this table was opened the way a reader would open one: through the broker's public sign-up, on an account type offered to retail clients, with no negotiated terms, no introducing-broker arrangement and no institutional tier. That is not a detail — it is the condition that makes the figures comparable to each other and to what you would get. A spread measured on a privately negotiated account is a measurement of someone's relationship, not of a broker.
Each broker runs on its own instance of its own MetaTrader 5 build. We do not aggregate across brokers inside one terminal, because a broker's own build is part of what is being measured: the symbol it quotes, the digits it quotes it to, the clock it stamps and the status codes it returns on an order are all its own.
The awkward consequences are published rather than tidied away. One account — FBS — was restricted by the broker during the window, so its execution axes carry no figure and say why. Two of the brokers in our original list never sent usable platform credentials at all and are therefore not in the table; a comparison that quietly dropped them and kept the count the same would be the easiest kind of lie to tell here.
No account in this table is funded beyond what the platform requires to operate, which is also why withdrawal time is not measured: doing it honestly means moving our own money in and out of all 10 brokers, and until we do, that axis stays empty instead of repeating a claimed processing time as a finding.
What happens when a broker changes its terms
Two of the figures in this table are not measurements but statements by the broker: the commission per lot and the withdrawal fee, both read from a published schedule and both marked 📄. A schedule can change the day after it is read, which makes the date it was read part of the figure — it is printed on the axis, and it is deliberately a different date from the measurement window.
When a broker changes a schedule, the figure changes with the next reading and the measurement window around it does not move: a commission figure from October sitting next to a spread measured in September is not a contradiction, provided both dates are visible. What we do not do is quietly refresh a stated figure and leave the old measurement beside it as though nothing happened.
A change in account conditions is more serious than a change in a fee. If a broker moves our account to a different type, alters its execution model, or restricts it — one account in this table was restricted mid-window — the series on either side of that change is not one series, and treating it as one would average two different products. In that case the affected axes carry no figure and state the reason, which is why a few cells in the table above read no data with a date attached rather than a number.
Questions about the list
Why these 10 brokers and not others?
Every broker here runs MetaTrader 5, offers the account type we measured to an ordinary retail client, and accepted our application. That is the whole selection rule, and it deliberately includes brokers that beat the one paying for this site: Tickmill currently comes out cheapest on annual cost, which is exactly the comparison a sponsored table would be tempted to leave out.
Why is the list sorted by annual cost rather than by a score?
Because a score is an opinion with a number stuck on it, and on a site funded by a broker an opinion is worth nothing. Annual cost of ownership is arithmetic: spread over the traded volume, plus commission on that volume, plus a year of swap, at a profile printed next to the figure. Anyone can redo it with their own volume and get their own ordering — which is the point.
What disqualifies a broker from the ranking?
A series that fails the feed audit. A demo or live feed is not obliged to be the market: it can be a simulator emitting one fixed spread, or stepping between two values, and from a chart it is indistinguishable from a real quote. We found exactly that on one of our own accounts. The audit tests continuity rather than variety — a real spread passes through neighbouring values on its way between levels, a fixture jumps — and a broker whose series fails is not ranked at all, however much work went into collecting it.
Which figures here are not measurements?
Commission and withdrawal fees are taken from each broker's published schedule and marked 📄 stated by the broker; everything else on the table is ours, marked 🔬. Brokers are ranked only against others in the same class, because a figure we measured and a figure quoted from a price list are not competing in one column. A figure with no declared class is not printed at all — the build refuses it.
What each axis means, and what it currently spans
Eight axes, measured on every account that supports them. The middle column is the range across the table as it stands — the distance between the best and worst account on that axis — which is the quickest way to see which axes actually separate brokers and which are nearly identical everywhere.
| Axis | Range across the table | What it is |
|---|---|---|
| Annual cost | $1 108 → $1 928 | What a year on the account costs at our stated volume — spread plus commission plus swap. The only axis on which a commission account and a commission-free account can be compared without cheating. |
| Avg spread, 24 h | 0.28 pips → 1.55 pips | The mean gap between bid and ask across every one-second sample in the window, including the hours nobody advertises. |
| Spread 21:00–24:00 UTC | 1.22 pips → 3.20 pips | The same measurement restricted to 21:00–24:00 UTC, when the New York session closes, liquidity thins and spreads widen on every account. |
| Commission per lot | $0.00 → $7.00 | The per-lot charge from the broker's published schedule, verified against a real fill where we hold one. Stated by the broker, and marked as such. |
| Swap per year | $0 → $72 | A year of overnight financing on the measured profile. It scales with time in the market rather than with the number of trades. |
| Rejected orders | 0.4% → 2.1% | The share of our market orders the broker declined, with its own status code. Orders that got no execution event inside our window are our own status, not a rejection. · empty for 1 of 10, with the reason on the axis |
| Slippage on releases | 0.8 pips → 2.6 pips | The average distance between the price requested and the price filled on orders timed into scheduled releases. Signed from the trader's side: positive is worse. · empty for 1 of 10, with the reason on the axis |
| Withdrawal fee | $0 → $3 | What the published schedule charges to withdraw. How long a withdrawal takes is not measured by us at all. · empty for 1 of 10, with the reason on the axis |
Lower is better on every axis here · 27.08–25.09 · a range of nearly nothing means that axis is not worth choosing a broker on