MetaTrader Server Time, and Why Your EA Trades at the Wrong Hour
Almost every report of an EA "trading at the wrong time" comes down to one thing: the hours in the settings are the broker's hours, not yours. Brokers sit on different clocks, those clocks move twice a year, and neither follows where you live. Finding the offset takes a minute, and it is the difference between trading the London session and trading two hours of it.
Three clocks, and only one of them counts
When an EA is running there are three different times in play:
- Your computer's clock. Irrelevant. MetaTrader does not use it for charts or for EA logic.
- The broker's server clock. This is what candles are stamped with and what an EA reads when it asks what hour it is.
- GMT/UTC. The reference everything else is described against, and what the economic calendar uses.
Every hour setting inside an EA — a start hour, a stop hour, a "no trading on Friday after" rule — is in the second one.
Finding the offset in one minute
- Open Market Watch with Ctrl+M. The clock above the symbol list is server time.
- Compare it with the current UTC time.
- The difference is your broker's offset, normally +2 or +3.
A second check: open an M1 chart and look at the timestamp on the newest candle. It should match the Market Watch clock.
Write the offset down somewhere, because you will need it every time you read a strategy description that talks about sessions in GMT.
Why most brokers are GMT+2 or GMT+3
It is not arbitrary. A GMT+3 server during US daylight saving puts the daily candle close at 00:00 server time, which lines up with the New York close at 17:00 local.
That alignment is why the convention exists, and it has a consequence: five daily candles a week instead of six, and each one covering a full trading day rather than a stub. A broker on GMT+0 produces a sixth Sunday candle of a few hours, which changes the values of every daily indicator against a GMT+3 broker's chart.
This matters if you backtest on one broker's history and trade on another's. Same strategy, different candles, different signals.
What daylight saving does to your settings
Most brokers follow the US schedule, so the server sits at GMT+3 through summer and GMT+2 through winter. The changeover dates are the second Sunday in March and the first Sunday in November.
Your hour settings do not move with it. A window of 8 to 17 written in the summer becomes an hour earlier in market terms come November.
Two reasonable responses:
- Trade 24 hours if the strategy is not session-dependent. Nothing to maintain, nothing to get wrong.
- Adjust the window twice a year, and put a reminder in your calendar on those two Sundays. Some EAs have a time-shift input for exactly this.
How to set a session window correctly
Say you want the London session, 08:00 to 17:00 UK time, and your broker is GMT+3 in summer. UK summer time is GMT+1, so the broker is two hours ahead of London: the window becomes 10 to 19 in the EA's settings.
Work it in that order every time — session in its own local time, convert to GMT, then add the broker's offset — and check it against the chart afterwards. The simplest verification is to look at where the session actually starts on your chart and read the hour off the axis.
Where this shows up as a bug
"It only traded for two hours." The window is correct in your time and wrong in server time, so most of it falls outside the market.
"It never traded at all." The window lands on hours when the pair is closed or dead, often the Asian session for a European pair.
"It suddenly changed behaviour in November." Daylight saving moved the server, the settings stayed where they were.
"The news filter fires at odd times." MetaTrader's calendar works in UTC internally, so an EA that mixes calendar times with server hours needs to be doing the conversion. If yours has a manual time-adjust input for the news filter, that is what it is for.
If the EA is doing nothing at all rather than trading at odd hours, the cause is more likely one of the seven in EA not opening trades.
A note on backtesting
The Strategy Tester uses the history of the broker you are connected to, so it inherits that broker's server time. A test run on a GMT+2 broker and traded on a GMT+3 one is testing a slightly different set of candles and a shifted session window.
It is not a large effect for most strategies, and it is a decisive one for anything with a narrow time filter. Test where you intend to trade, or at least know which way the clocks differ.