Why the same EA gets different results at different brokers

By Otto Research 3 min read Article 52 of 95

A single EA, at default settings, run at two brokers over the same month, will produce two different sets of trades and two different results. This surprises buyers and is used by some vendors as an excuse. It is neither a mystery nor an excuse. It has specific causes, most of them visible in advance.

The causes

Price feeds differ. Each broker builds its prices from its own liquidity sources, so highs, lows and closes differ by a pip or two, and a rule that triggers at a level will trigger at one broker and not the other on some days.

Spreads and costs differ, and so does the spread at the exact moments the EA trades. A spread filter blocks trades at one broker that another allows.

Server time differs, so daily and four-hour bars begin and end at different hours, and any rule based on those bars sees different values.

Contract specifications differ. Point values, minimum lots and volume steps change position sizes, and a symbol that exists at one broker may not exist at another, removing part of a multi-market book.

Execution differs, so the same order fills at different prices and stops slip by different amounts.

Session times, daily breaks and swap rates differ, and so do margin requirements and stop-out levels, which can prevent a trade at one broker that another permits.

How large the effect is

For a strategy trading daily bars with wide stops, the differences are usually small over a year, though individual trades will differ. For a strategy on short timeframes with tight stops, the differences can be the whole result: profitable at one broker, losing at another, from feed and execution alone.

Worked example

An EA trades eight stock indices on four-hour bars. Broker A's server time places the four-hour bars at 0.00, 4.00 and 8.00; Broker B's at 1.00, 5.00 and 9.00. Over a year the EA takes 212 trades at A and 197 at B, of which 140 are the same trade at both. A returns 19 per cent, B 14, mostly because B does not offer two of the eight indices and its DAX spread is wider. Neither result is wrong. They are the same strategy in two slightly different markets.

What this means when an EA is trading

Expect divergence, and reduce it where it matters. Use the broker the vendor's live record was produced at if you want a comparable result. Check that every market the EA trades is available, with a similar point value. Compare the server time and the daily break times. Look at the spread at the hours the EA trades. And understand that a vendor's live record is a record at their broker; yours will be a different record, close to it if the strategy is robust and the brokers are similar, and far from it if either is not.

From theory to live

See it put to work.

The concepts on these pages are what Otto is built on. Watch it trade them live, on real accounts.