Advertise on ForxZen — put your brand in front of a global forex & CFD trading audience.Get in touch →

Note 10 Updated 2 min read

How to Judge Execution Quality From Your Own Fills

Slippage, rejections and partial fills are measurable from a trade history. The two-sided test, and how to convert the result into the units of spread.

Written by the ForxZen editorial desk

Execution quality is measurable, and almost nobody measures it

Cost comparisons stop at spread and commission because those are published numbers. Execution quality is not published in any comparable form, and it is the part of trading cost that only ever shows up in a trade history. That is also the good news: a trade history is exactly where it can be measured, from data every platform already hands you.

The numbers your own statement contains

Three fields do most of the work: the price requested, the price filled, and the timestamps on the order and the fill. The difference between requested and filled is slippage. The gap between the timestamps is latency, and it is the mechanism behind most of that slippage. A statement export carrying those columns, over a few hundred orders, produces a better picture of execution than any claim about speed on a marketing page.

Slippage should be two-sided

This is the most useful test available, and it needs no external benchmark. In a neutral execution model slippage distributes in both directions, because the market moves between request and fill and it moves both ways. A sample in which negative slippage is routine and positive slippage effectively never occurs is describing an asymmetry the market does not supply on its own. Count the fills better than requested, count the fills worse, and compare the two totals — not only the average, which can hide the shape entirely.

Rejections, requotes and partial fills

Count them, and note when they happen. A rejection rate that is low in quiet hours and rises around scheduled data is ordinary: liquidity genuinely thins and firms genuinely widen. A rate that is high in normal conditions, or that rises specifically when positions are in profit, is a different finding. Partial fills belong in the same log — an order filled in pieces at successively worse prices carries a real cost that never appears as slippage on any single line.

Convert it into the units of spread

Execution quality only becomes comparable once it is expressed the way costs are. Average the signed slippage in pips across the sample, then add it to the quoted spread and the commission for the same pair and size. A tight advertised spread with a consistently negative slippage average can total more than a wider spread that fills where it says it will. That arithmetic is what turns an impression into a number you can put next to another number.

Sampling honestly

A handful of trades proves nothing, and neither does a sample taken entirely in one market condition. Measure across the hours actually traded, across quiet and busy sessions, and over enough orders that one bad fill cannot dominate the average. When testing two accounts, hold the variables still: same pair, same size, same hours, ideally the same period. The result describes your execution, on your connection and your instruments, which is the only version of the question that has ever mattered.

Risk

Capital at risk. Trading forex and CFDs carries a high level of risk and may not be suitable for all investors — most retail CFD accounts lose money. Never trade with money you cannot afford to lose. Read the full risk disclosure

Related terms

More guides

Put this guide to work