Copy Trading Latency: What 100 ms Actually Costs (Benchmark Data)
Every copy-trading vendor says it is fast. Almost none of them say what they measured, on which account, over how many trades, or where the clock started and stopped. This article does the opposite: it walks through each stage of the copy pipeline with the numbers SignalSync recorded in its benchmark of 10 December 2025, shows what a given delay costs per lot on EURUSD and XAUUSD under stated volatility assumptions, compares local, cloud and hosted copiers as latency classes, and explains how to measure your own setup so you do not have to trust anyone's marketing, including ours.
Copy-trading latency is the time between the provider's order being filled at their broker and the copied order being filled at the subscriber's broker. It is the sum of several stages (detection, transport, queueing, execution), and its cost to the subscriber is the price movement that happens during that gap, which grows with the square root of the delay and linearly with lot size and volatility.
Key takeaways
- SignalSync's benchmark of 2025-12-10 (one MT4 subscriber EA, 200 signals in 71 minutes): server 48 ms average (P95 88, P99 103 ms), subscriber-side queue about 553 ms, EA plus broker execution about 175 ms, roughly 0.78 s end to end as the sum of stage averages. The platform documentation states 200–800 ms. The benchmark is about ten months old and MT4-based.
- The expensive stages are not the ones vendors advertise: provider-side detection intervals, modify-burst queues and the broker's own fill time dominate; the network hop is tens of milliseconds.
- Under a 7 % annualised volatility assumption, 100 ms of delay on EURUSD moves price by about 0.05 pips one-sigma ($0.52 per standard lot); on gold at 18 % volatility and $4,000/oz the same 100 ms is about $4.9 per lot.
- In an internal comparison on the platform's own test accounts, entry differences on ten XAUUSD trades ranged from 0.00 to 0.27 $/oz and netted in the subscriber account's favour, but 13 of 247 trades (5.3 %) were never copied, for reasons the note did not establish. By simple arithmetic a missed trade costs more than a late one.
- Measure your own: compare open times and entry prices in your own terminal's history against the provider's trade history (visible after login on SignalSync) over a quiet week on a demo. That tells you more than any claim.
The copy pipeline, stage by stage
A copied trade passes through six stages. The table gives the measured or documented value for SignalSync's hosted MT4 path, and what typically replaces it in other architectures. All SignalSync figures are from the 2025-12-10 benchmark described in the methodology section; "typical" figures for other architectures are from vendor documentation and are flagged as such.
| Stage | What happens | SignalSync benchmark (2025-12-10, MT4) | Other architectures |
|---|---|---|---|
| 1. Detection | Provider-side EA notices a new, changed or closed order | Provider EA checks orders on a 100 ms timer rather than only on incoming ticks | Local copiers: per-tick or timer; MQL5 Signals: terminal event; cloud: connector polling at vendor-defined interval |
| 2. Upload | Signal sent to the server | Not separately timed | Same order of magnitude anywhere with a decent VPS |
| 3. Server | Validate, store, fan out to subscribers | DB insert 13 ms, WebSocket push 0.5 ms, total 48 ms avg; P95 88 ms; P99 103 ms (925 signals) | Local copier: none (file or memory); cloud: vendor claims 20–50 ms for this plus stage 4 |
| 4. Transport to subscriber | Push over WebSocket, or the subscriber polls | WebSocket push to the MT4 EA (MT5 subscribers are served by a Python copier attached to the hosted terminal; not part of this benchmark) | HTTP polling at 1–5 s adds 0.5–2.5 s on average |
| 5. Queue and EA processing | Subscriber EA dequeues, maps symbol, checks margin and slippage | Queue wait about 553 ms average during modify bursts | Local copier on the same machine: small unless the EA is slow; cloud: inside the vendor's claim |
| 6. Broker execution | OrderSend to fill confirmation | EA processing plus fill about 175 ms average | Identical for every architecture; set by your broker and your VPS's distance from it |
Add the stage averages and you get roughly 0.78 s end to end, with a 94 % success rate on the 200 EA-side signals. That is the honest number. It is not "sub-second" as a universal promise; it is what one MT4 subscriber EA measured on one December morning, and the queue stage alone was most of it.
Why the queue dominated
The provider in the benchmark was an Expert Advisor that trailed stops aggressively: 81.5 % of its 200 signals were MODIFY, 10.5 % OPEN and 8 % CLOSE. Bursts of modifies arrived within seconds and queued on the subscriber side while the EA processed them one broker call at a time. The lesson generalises: a copier's latency is set by its slowest consumer, not its fastest link, and a provider that sends hundreds of stop adjustments per hour will be slower to copy than one that sends ten clean orders.
What a delay costs per lot
The cost of latency is the price movement during the gap. Price moves are close to random over sub-minute horizons, so the expected size of the move scales with the square root of time. The formula and the assumptions are stated so you can rerun it with your own instrument and the current quote.
Assumptions. Price follows a random walk with constant volatility; the one-sigma move over a delay of t seconds is σannual × price × √(t / S), where S is the number of trading seconds in a year (252 days × 24 h × 3,600 s ≈ 21.8 million). EURUSD is assumed at 1.1000 with 7 % annualised volatility (pip value $10 per standard lot). XAUUSD is assumed at $4,000 per ounce with 18 % annualised volatility (one standard lot = 100 oz, so a $1 move is $100 per lot). These are normal-session averages; the numbers scale linearly with volatility, so during a news release at three to ten times normal volatility multiply accordingly.
| Delay | EURUSD one-sigma move | EURUSD $ per 1.0 lot | XAUUSD one-sigma move | XAUUSD $ per 1.0 lot |
|---|---|---|---|---|
| 50 ms (server average) | 0.037 pips | $0.37 | $0.035/oz | $3.5 |
| 100 ms | 0.052 pips | $0.52 | $0.049/oz | $4.9 |
| 500 ms | 0.117 pips | $1.17 | $0.109/oz | $10.9 |
| 0.78 s (benchmark end-to-end) | 0.146 pips | $1.46 | $0.136/oz | $13.6 |
| 2 s (typical polling copier) | 0.233 pips | $2.33 | $0.218/oz | $21.8 |
| 5 s | 0.369 pips | $3.69 | $0.345/oz | $34.5 |
| 30 s (manual Telegram copy) | 0.904 pips | $9.04 | $0.845/oz | $84.5 |
Three things to read from the table. First, the move is symmetric: on average the subscriber gets a better entry as often as a worse one, which is exactly what the internal comparison below shows. The cost is variance, not a guaranteed loss, until a slippage rule starts rejecting or delaying the unfavourable half. Second, on gold a copier that is 700 ms slower than another costs about $13 per lot per trade in one-sigma terms, which on a 0.1-lot account is $1.30 and on a 5-lot account is $65. Third, compare the move to the strategy's target: 0.15 pips is 3 % of a 5-pip scalp and 0.15 % of a 100-pip swing. Latency is a scalper's problem.
Cost relative to the provider's target
| Strategy | Typical TP | 0.78 s one-sigma move as % of TP (EURUSD) | Verdict |
|---|---|---|---|
| Tick / M1 scalping | 3–5 pips | 3–5 % | Needs local copier or same-VPS execution; hosted copying erodes the edge |
| Intraday | 15–40 pips | 0.4–1 % | Hosted and cloud copiers are fine; broker spread matters more |
| Swing / position | 100+ pips | < 0.15 % | Latency is irrelevant; focus on missed trades and symbol mapping |
If you want to see how these numbers translate into a provider choice, the provider-selection checklist treats average trade duration as a first-pass filter for exactly this reason, and how to calculate position size for copy trading shows how to turn the provider's typical lot and stop into a multiplier. You can work it out from the open and close times in a provider's trade history, which opens after login from the marketplace: for a provider whose trades run for hours, a second of latency is noise.
What an account-history comparison showed
Benchmarks measure the pipeline; the account history measures the outcome. In an internal check on the platform's own test accounts (a provider account and a subscriber account, both operated by the platform and running catalogue Expert Advisors, copying at identical lot sizes), we compared the first ten closed XAUUSD trades of a session. Entry-price differences ranged from 0.00 to 0.27 $/oz; two trades matched exactly, five favoured the subscriber account and three went against it. The largest adverse difference was 0.13 $/oz on a 0.32-lot sell, which cost $4.16; the largest favourable one in dollar terms was 0.15 $/oz on a 0.64-lot sell, worth $9.60 (the largest favourable price gap, 0.27 $/oz, fell on a small lot and was worth $0.29). Net over the ten trades: the subscriber account came out $5.69 ahead. Exits matched almost perfectly because stop-loss and take-profit were copied as price levels and executed by the broker, not relayed.
That is the flattering half. Over the full period the provider account had 247 trades and the subscriber account 234: 13 trades (5.3 %) were never copied, and the subscriber account finished behind the provider account. The cause of the 13 missed trades was not established; the internal note lists slippage-rule rejections, symbol mapping and burst timing as hypotheses and marks the question as open. The reasoning that follows from it, rather than a measured result, is that a trade which is skipped or heavily delayed costs more than one that is late by half a second, so the latency behaviour you should care about is the behaviour during bursts, not the average. These were test accounts, not paying subscribers; there are no paid-subscriber results to cite.
Latency classes: local vs cloud vs hosted platform
| Class | Path | Stages 2–5 (copy hop) | Stage 6 (fill) | Failure modes |
|---|---|---|---|---|
| Local copier EA (same PC/VPS) | Master terminal → file/memory → slave terminal | Single-digit to tens of milliseconds (vendor claims, not measured by us) | Your broker, your VPS location | PC off, terminal crash, Windows update; you maintain everything |
| Cloud copier | Vendor connector → vendor server → vendor connector | Vendor claims 20–50 ms (Copygram "under 20 ms", Social Trader Tools "50 ms average"); methodology not published | Vendor's connector to your broker; location unknown to you | Vendor outage, connector incompatibility after broker server updates, rate limits on modify bursts |
| Hosted platform (SignalSync) | Provider EA → server → WebSocket → subscriber EA on platform VPS (MT4); Python copier on MT5 | 48 ms server + about 553 ms queue, benchmark 2025-12-10 (MT4) | About 175 ms measured (EA + fill) | Queue growth under modify bursts; VPS capacity; 6 % of benchmark signals failed, mostly close/modify on orders that no longer existed |
| MQL5 Signals | Provider terminal → MetaQuotes signal server → subscriber terminal | Not published by MetaQuotes | Your terminal, your broker | Terminal must stay online; same-platform only |
| HTTP-polling EA | Subscriber EA asks the server every N ms | Adds N/2 on average: 250 ms at 500 ms, 2.5 s at 5 s | Same as above | Server rate limits; missed bursts between polls |
| Manual (Telegram, chat) | Human reads and clicks | 10 s to minutes | Same | Everything |
Two caveats on this table. A local copier is only "fastest" if it runs on a VPS in the broker's data-centre region and nobody turns it off; a laptop at home on Wi-Fi is slower than any of the hosted options. And the cloud figures are vendor claims for their own hop; when a vendor advertises 20 ms, ask whether that includes the broker fill (it cannot) and whether it was measured during a modify burst.
SignalSync's architecture choices are explained on the features page; if you are weighing it against MQL5 or a cloud copier on cost as well as speed, read MQL5 Signals vs SignalSync vs cloud copiers.
How to measure your own latency
You do not need special tools; you need two account histories and a spreadsheet. Three methods, from crude to precise:
- Open-time comparison. Export your own account history for the day from your terminal (MetaTrader: right-click History → Save as Report) and open the provider's trade history on the platform after login (symbol, direction, lots, prices, times, pips; no money amounts). Match trades by symbol, direction and time (on the MT4 subscriber side the provider ticket is also written into your order comment) and subtract open times. Resolution is one second, so this only catches bad days, but it also reveals missed trades, which matter more.
- Entry-price comparison. Same export, subtract entry prices. Because the one-sigma move grows with the square root of time, the implied delay is t = (Δ / σ1s)², where σ1s is the one-sigma move per second for the instrument (about $0.154/oz for gold under the assumptions above). The ten-trade gold sample implied delays from zero up to roughly 3 s for the 0.27 $/oz gap.
- Timestamps in your own copier. If you run your own copier EA, stamp each signal at receipt, at processing start and at order completion with
GetTickCount64()and write a CSV; that is how the SignalSync benchmark was produced. Run it on a demo for a week and look at the P95 during bursts, not the mean. On SignalSync itself the hosted setup is described in the documentation; the account-history methods above work on it as on any copier.
Whatever you measure, record the signal mix. A provider that sends 80 % modifies will produce a very different queue profile from one that sends only opens and closes, and the same copier will look fast on one and slow on the other.
Want to run the comparison on a live marketplace account? Register, connect a demo account for the one-time $10 connection fee, subscribe to a provider and, once a set of trades has been copied, compare your terminal's history with the provider's trade history shown after login. Questions go to the contact form; the Telegram channel @signalsync_official carries platform news only (it does not take messages).
Methodology: what exactly was measured
This section exists so that the numbers above can be cited correctly.
- Date and scope. 10 December 2025, production server, one MT4 provider account and one MT4 subscriber account, both the platform's own test accounts hosted on a Windows VPS. The benchmark is about ten months old at the time of writing and MT4-based; MT5 subscribers, who are served by a Python copier, were not measured.
- Server metrics. For each received signal the backend stored DB insert time, WebSocket push time and total handling time. Sample: 925 signals. Results: insert 13 ms, push 0.5 ms, total 48 ms average, P50 44, P95 88, P99 103 ms.
- Subscriber metrics. The MT4 subscriber EA timestamped each signal at DLL receipt, EA processing start and order completion using
GetTickCount64()and exported a CSV. Sample: 200 signals in 71 minutes. Signal mix: 163 MODIFY (81.5 %), 21 OPEN (10.5 %), 16 CLOSE (8 %). Results: queue wait about 553 ms average; EA processing plus execution about 175 ms average; 94 % of signals succeeded. - Derived end-to-end. 48 ms server + 553 ms queue + 175 ms EA and execution, plus a few milliseconds of network, is about 0.78 s. This is an arithmetic sum of stage averages, not a per-signal measurement of the whole path. The platform documentation states 200–800 ms for subscribers.
- Failures. 6 % of EA-side signals failed; the report attributes most to CLOSE/MODIFY instructions for orders that no longer existed on the subscriber side.
- Account-history comparison. Separate internal check on the same pair of platform-operated test accounts, XAUUSD only: ten closed trades compared on entry and exit price; 247 provider trades against 234 subscriber trades over the full period.
- Limitations. One subscriber, one broker, one session, one EA-driven provider with a modify-heavy profile; no independent audit. Results on other brokers, during news, on MT5, or with many subscribers on one provider will differ.
If you quote these figures, quote the date and the single-MT4-subscriber scope with them.
For the setup side of the same pipeline, see how to copy trades from MT4 to MT5; for the basics, what copy trading is; and if you are on the sending side, how to become a signal provider explains why modify-heavy strategies copy worse.
FAQ
What is a good copy-trading latency?
Under one second end to end, including the broker fill, is adequate for intraday and swing strategies; under 200 ms for the copy hop is what scalpers need. SignalSync's 2025-12-10 benchmark measured 48 ms server time and about 0.78 s end to end on one MT4 subscriber EA; a well-placed local copier can be a few hundred milliseconds faster on the copy hop but not on the fill.
Is 100 ms of latency noticeable in results?
Per trade, rarely: at 7 % volatility the one-sigma EURUSD move in 100 ms is about 0.05 pips, or $0.52 per standard lot. Over hundreds of trades it is a cost only if a slippage rule rejects or delays the unfavourable half or if the strategy's target is a few pips.
Why do copied trades sometimes get a better price than the provider?
Because price moves both ways during the delay. In the internal ten-trade gold sample, five entries were better for the subscriber account and three were worse; the net was $5.69 in its favour. Only a biased filter or a one-directional market makes slippage systematically negative.
What is trade copier slippage, and how do I limit it?
It is the difference between the provider's fill and yours. Set a slippage limit on the subscription (SignalSync counts it in MT4 points, not pips: 20 points is about 2 pips on a 5-digit EURUSD quote or $0.20 on XAUUSD), copy SL/TP as price levels rather than as separate signals, and avoid providers whose average trade is shorter than a few minutes unless you run a local copier. Note that SignalSync's MT4 subscriber EA, by default, waits up to 60 seconds for the price to come back inside the limit rather than skipping the trade, which trades a missed entry for a late one.
Which is the fastest trade copier?
On the copy hop alone, a local EA copier on a VPS next to the broker. Cloud vendors claim 20–50 ms for their hop, without published methods. The fill at your broker (included in the 175 ms EA-plus-execution figure in our benchmark) is the same for everyone, so the realistic spread between good solutions is a few hundred milliseconds, not seconds.
Does a VPS reduce copy-trading latency?
Yes, on stage 6 and on reliability: a VPS in the broker's region cuts the fill time and removes the home-connection and sleeping-PC failure modes. It does nothing for the server or queue stages of a hosted copier, which already run on servers.
How do I measure my own copy latency?
Export your own account history, open the provider's trade history on the platform after login, match trades by symbol, direction and time, and compare open times and entry prices; or, if you run your own copier EA, timestamp each signal and write a CSV. Look at the behaviour during modify bursts, not the average.
Why were 5 % of trades not copied in the account comparison?
The cause was not established. The internal note lists slippage-rule rejections, symbol-mapping gaps and timing during bursts as hypotheses and left the question open. Whatever the cause, a skipped trade costs more than a late one, which is why the provider-selection guide tells you to check copy ratio before speed.