Skip to main content
Trader problem · Diagnose

My EA Is Skipping Trades: Network or Algorithm?

If your Expert Advisor is missing entries that should have triggered, the cause is either the network dropping tick data or the algorithm logic itself. You need to separate those two before touching your EA code.

TL;DR

EAs that run on every tick depend on a continuous stream of price quotes from the broker's server. If the connection drops, goes silent, or delivers ticks late, the EA's logic runs late or skips entirely - not because the code is wrong, but because the data it needs didn't arrive. Check the Journal tab first. If you see reconnect events near missed trades, it's a network problem. If the journal is clean and the EA still skipped, it's the algorithm.

Symptom
EA should have opened a trade based on your strategy rules but didn't.
Network cause
Missing ticks, reconnection event, or tick delivery delay during condition.
Algo cause
Conditions evaluated correctly as "false" - code working as designed.

What's actually happening

An EA that runs on every new tick executes its logic function each time a price quote arrives from the broker's server. If that tick stream has a gap - due to a reconnection, a noisy connection dropping packets, or the server going silent - the EA simply doesn't run for that period. Any entry condition that would have triggered during the gap is missed.

This is not a bug in the EA. It is the expected behavior of a system that depends on real-time network data. The EA cannot fire on ticks it never received.

The other category is algorithm behavior: the entry conditions genuinely evaluated as false during that time. Spread was too wide, the filter indicator said no, the time filter excluded that session. These are correct algorithmic decisions - not a problem you want to "fix" by changing the network.

Separating the two is the entire diagnostic task.

Quick self-diagnosis - 5 minutes

  1. Check the Journal tab for reconnect events
    In MT4/MT5, open View → Terminal → Journal. Look for "connection lost," "reconnecting," or "no connection" entries near the timestamps of missed trades. If they align, the network is the cause.
  2. Check the EA's own log output
    If your EA has Print() statements at key decision points, look for gaps in the log output. A gap means the EA's OnTick() function wasn't called - which means no ticks arrived.
  3. Ping during live trading sessions
    Run ping your-broker-hostname.com -t (continuous) in a terminal while the EA is live. Note any timeouts. Each timeout corresponds to a moment when the route to the broker was unreachable.
  4. Compare backtesting vs live signal count
    Run the EA in the MT4/MT5 Strategy Tester on a recent period. Count expected signals. If live fired significantly fewer, the gap is either network or spread/conditions in live that weren't in backtest data.
  5. Test on a different connection
    Switch to a mobile hotspot and observe whether the EA's tick rate (visible in the platform) is consistent. A more stable tick stream on mobile confirms your main connection is the variable.

What actually fixes this - honest ranking

1

VPS near the broker's DC (for EAs)

For EAs that require uninterrupted tick delivery 24/7, a VPS co-located near the broker's datacenter is the right tool. Consistent sub-5 ms RTT means virtually zero reconnections. Your machine can be off - the EA keeps running. This is the highest-reliability solution for automated trading.

2

Ethernet over Wi-Fi (immediate, free)

If your EA runs on your main machine, wired ethernet removes the most common cause of sporadic tick gaps: Wi-Fi interference and packet loss. Do this before anything else if you're running the EA on your own desktop or laptop.

3

TradersProxy - for discretionary traders with EAs

If you run EAs on your machine during your trading session (not 24/7), a clean route reduces the connection drop rate. Fewer reconnections mean fewer missed ticks. Best for part-time EA traders who don't need always-on offsite execution.

4

Change ISP or use a different network

Some ISPs deliver inconsistent routing to broker datacenters - fine for general browsing, bad for real-time tick delivery. If every other fix fails to reduce reconnections, the ISP's backbone routing to your broker's DC is the problem.

If the route is the problem, a trading proxy is the fix at the infrastructure level — a relay node co-located near your broker's datacenter replaces the unstable public internet hops with a dedicated path. 7-day trial on Starter →

When it's not a network problem

  • The algorithm conditions were simply false. If spread widened during a low-liquidity window and your EA has a max-spread filter, it correctly skipped. This is the EA working as designed.
  • Session time filters. Most EAs filter by trading session. If the signal fired outside your allowed hours, the EA skipped intentionally.
  • Trade already open. Many EAs skip new entries if a position in the same direction is already open. Check the account history for the period in question.
  • Broker-side restriction. Some brokers limit order frequency or implement minimum distance from price rules. If the EA's entry was too close to the current price or hit a rate limit, the broker rejected it - not the network.
FAQ

Check the MT4/MT5 journal tab for any connection interruption messages around the time a trade should have fired. Also compare the tick count in the EA's tester history to live. If the EA runs on every new tick, a gap in ticks equals a gap in logic execution.

If you need zero missed ticks and always-on execution, a VPS co-located near your broker is the right tool. A trading proxy improves the route quality for your live machine but does not keep the connection alive when your machine is off.

If the EA skips because the connection to the broker drops or becomes too noisy to deliver ticks consistently, a cleaner route reduces that dropout rate. If the EA skips because of algorithm logic or incorrect conditions, a proxy changes nothing.

'Every tick' EAs execute their logic each time a new price quote arrives. A missed tick means the logic ran late or not at all. 'On bar open' EAs only run at candle open - a slow connection matters less since you have an entire candle's worth of time.

Backtesting uses historical tick data at full speed with no network dependency. Live trading depends on real-time tick delivery over your network connection. The live environment introduces latency, gaps, and reconnect events that the backtester never simulates.