In this article
After this article, you can
- Separate connection, general clock time and target-symbol freshness.
- Prepare diagnostic evidence without sending a trial trade.
Terms at hand: Expert Advisor (EA) · bid and ask (bid-ask prices)
MT5 can be connected to its server while the target pair's quotation is too old for your EA's decision. A closed session, an unexpected symbol or the program itself can also explain its silence. Separate these causes before restarting the terminal or resending an order. This procedure produces a diagnostic record for one actual symbol and identifies the missing evidence. It applies to MT5 and MQL5 programs, rather than every trading platform.
What does the connection indicator actually confirm?
In MQL5, TERMINAL_CONNECTED describes the terminal's connection to a trade server. Connection, quote age and trading permission are separate facts. A working communication channel does not establish that your instrument just received a price update. Other instruments may be updating while the target symbol remains unchanged in your observations.
Check the full instrument name, server, account type and terminal running the program. A provider may offer similar names with different suffixes. Record the name used by the EA instead of copying a label from your phone. When using a VPS, inspect the actual remote instance too: the local display does not prove the remote program's state. The VPS monitoring guide develops that distinction. Avoid resetting an instance before preserving the relevant logs and determining which copy controls your account.
Why can three clocks tell different stories?
The TimeCurrent documentation distinguishes the handled tick's time inside OnTick from the latest Market Watch quote time in handlers such as OnTimer. In the latter case, another selected symbol can refresh the reading. That general clock therefore cannot answer a symbol-specific freshness question.
| Reading | What it describes | What it does not prove |
|---|---|---|
| TimeCurrent in OnTimer | The latest Market Watch quotation time. | Freshness of the target pair. |
| TimeTradeServer | Server time calculated by the terminal. | Arrival of a new quotation. |
| SymbolInfoTick for the target | The selected instrument's data and last update time. | Order acceptance or execution. |
TimeTradeServer is calculated in the terminal and depends on the computer's time settings. Obtain SymbolInfoTick for the exact symbol, verify success and record time_msc, Bid and Ask. Do not subtract a raw computer clock from a server timestamp without aligning their time basis. Negative age, missing time or a failed read indicate uncertainty, rather than a fresh quote.
How can a recent clock hide an older quotation?
Connection is live, but the target pair has older data
EUR/USD updates at 11:59:59, while GBP/JPY last updated at 11:59:35. The general reading is just one second behind the model clock, but the target pair's data are 25 seconds behind it. An EA checking only TimeCurrent could overlook the distinction. This does not establish a broker outage: session status, symbol availability and the program's conditions still need checking.
Repeat the observation after an interval measured with an elapsed-time counter. If time_msc is unchanged, you have evidence that no newer update appeared in those reads. You have not measured the transport delay of an individual tick from its source to your computer. A server timestamp and a client estimate do not provide that precision by themselves. Keep observed facts separate from the fault you suspect.
How do you distinguish a quiet market from a program issue?
Compare the instrument's quotation schedule with its trading schedule, including the provider's server-time convention, breaks and holiday notices. Outside a session, an older displayed price may be expected. Do not assume that a major currency pair's hours apply to an index or metal from the same list. During an open session, a repeated absence of updates warrants investigation, but no single number of seconds suits every instrument and strategy.
OnTick concerns the symbol of the chart hosting the EA. A new NewTick event is not queued if one is already queued or being processed. Consequently, the number of OnTick log entries need not equal the number of ticks. For a multi-symbol EA, distinguish its hosting chart from the instruments actually used in its decisions.
“The EA operation is not stopped.” — MetaQuotes, MQL5 Reference, OnTick, excerpt about disabled AutoTrading; accessed 13 October 2026.
Disabling AutoTrading prevents the EA from sending trade requests; it does not stop calculations. Record program activity, data updates, strategy conditions and trade replies separately. The OnTick reference explains this difference. A diagnostic check does not require a trial trade, and a heartbeat in a log does not establish that the strategy has met its entry conditions.
In the log, distinguish “no signal”, “no data” and “trading not permitted”. These outcomes call for different actions. Saying only that the robot is silent cannot establish whether it skipped calculation or deliberately rejected an entry.
What should you preserve before resuming order requests?
Prepare one diagnostic record: observation time and time basis; server and exact symbol; connection state; data-read result; tick time, Bid and Ask; session status; program state; latest trade reply. For example: “12:00:00, server-time axis; GBP/JPY; read successful; tick 11:59:35; session unconfirmed; new entries paused.” Do not include a password or complete account identifier in a support request.
If sending produced an error or an uncertain reply, reconcile positions, pending orders and history before retrying. Fresh quotes returning do not tell you what happened to the earlier request. The MT4 and MT5 order-error guide explains reply handling. Existing exposure still needs attention during diagnosis: turning off an EA does not confirm the protection currently accepted for its positions.
What to do tomorrow
- Record the actual symbol and schedule. Open its specification on the relevant account and write down the server, quotation hours and trading hours. Compare these with the incident time. This establishes whether expecting an update at that moment was reasonable.
- Take two observations without trading. On demo, record the target tick timestamp, prices, connection state and program status. Repeat after a known interval. Mark missing information explicitly instead of treating a failed data read as zero quote age or a valid price.
- Reconcile state before resuming requests. Inspect positions, orders and history, then confirm the data freshness required by your own strategy. If the cause remains unclear, send anonymised records to the developer or provider. This diagnostic procedure is not a recommendation to open a position.
Check your understanding
One short exercise
About 3 min · you can try again
At 12:00:00, TimeCurrent in OnTimer is 11:59:59 and the GBP/JPY tick is 11:59:35. What confirms GBP/JPY freshness?
- TimeCurrent alone: it is only one second old.
- It is unconfirmed; the target data are 25 seconds old in the model.
- The connection indicator is sufficient.
Check the answer and explanation
It is unconfirmed; the target data are 25 seconds old in the model.
Correct. Check session status and strategy requirements too; 25 seconds is not a universal fault threshold.
Frequently asked
Does a recent MT5 clock mean my symbol has a fresh quote?
No. Establish which clock you read and where in the program you read it. A general reading can concern another instrument, while calculated time does not confirm a price arrival. For diagnosis, record the exact symbol, its data-read result and last update timestamp. Check its schedule and repeat the observation. Do not substitute zero for a missing or negative age. This evidence identifies what needs explanation without sending a trial trade.
How many seconds without a tick establish a fault?
There is no universal limit for all instruments. The article uses 25 seconds to illustrate a clock distinction, not an outage threshold. Consider session status, instrument activity, provider schedules and strategy requirements. Define your own condition for pausing new decisions, but do not present it as a market standard. Record uncertainty and reconcile account state when a read is unreliable. Elapsed time alone cannot identify a terminal, server or program fault.
Should I restart the terminal and resend the order?
Preserve logs and inspect positions, pending orders and history first. If the previous request may have reached the server, retrying could create additional exposure. Restarting does not establish that nothing happened on the account. Separate restoring data from identifying a request outcome and safely resuming the program. With a VPS, establish which instance you are restarting as well. Existing positions require checks of their currently accepted protection independently of whether the EA sends new requests.
Do an unchanged price and a quiet log prove that an EA has stalled?
They are insufficient evidence. A price can remain unchanged, a session can be closed, and the program may log only selected events. Establish the data update timestamp and how your diagnostic observations are triggered. Check the chart symbol, target instrument, program state and its entry conditions. A separate non-trading diagnostic record can help. Comparing expected behaviour with preserved observations lets you direct the incident to the relevant person without guessing who caused it.
Sources & bibliography
-
MetaQuotes Ltd MQL5 Reference — TimeCurrent · OnTick versus OnTimer and the latest quotation time of any selected Market Watch symbol. www.mql5.com ↗
-
MetaQuotes Ltd MQL5 Reference — TimeTradeServer · Calculated terminal-side server time and dependence on the computer clock. www.mql5.com ↗
-
MetaQuotes Ltd MQL5 Reference — SymbolInfoTick · Target-symbol prices, last update time and successful versus failed calls. www.mql5.com ↗
-
MetaQuotes Ltd MQL5 Reference — OnTick · Hosting-chart symbol, NewTick queue and AutoTrading versus program execution; short quote source. www.mql5.com ↗
-
MetaQuotes Ltd MQL5 Reference — Client Terminal Properties · TERMINAL_CONNECTED describes connection, not target-symbol tick age. www.mql5.com ↗
