The most expensive VPS problem is not a crash. A crash is loud — you log in, the terminal is gone, you fix it. The expensive problem is silence. The terminal is open but disconnected, or AutoTrading got switched off, or the EA hit an internal error and stopped placing orders. Nothing looks broken. You assume it is simply a quiet market. Three days later you notice the trade you should have taken, or the position that should have been closed.
You cannot solve that by logging in more often. You solve it by making the VPS tell you what it is doing — and, more importantly, making its silence detectable. This guide covers both.
Layer 1: MetaTrader Push Notifications
MetaTrader 4 and MetaTrader 5 can send push notifications from a desktop terminal to the MetaTrader mobile app on your phone. It is built in, free, and takes five minutes to set up.
Step 1: Find Your MetaQuotes ID
Install the MetaTrader 4 or MetaTrader 5 app on your phone. Open the Messages section. Your MetaQuotes ID — a unique identifier for that device — is shown there. Write it down exactly.
Step 2: Enter It on the VPS Terminal
On your VPS, open MetaTrader and go to Tools → Options → Notifications. Tick Enable Push Notifications and paste your MetaQuotes ID into the field. MetaTrader accepts up to four IDs separated by commas, which is useful if you want both your phone and a tablet, or a partner who co-manages the account, to receive alerts.
Step 3: Decide What Gets Sent
With notifications enabled, MT5 sends notifications about successful trade operations to your devices. That alone is valuable: every open, close and modification your EA makes appears on your phone.
Beyond that, there are two sources of custom notifications:
- Chart alerts. In the Alerts tab of the Toolbox, set an alert’s action to Notification instead of a sound.
- EA code. Any EA or script can call
SendNotification()to push a message.
📊 Key Stat: The MQL5 documentation caps
SendNotification()at messages of 255 characters, no more than 2 calls per second and 10 per minute, and notes it does not work in the Strategy Tester. An EA that tries to notify on every tick will hit the limit instantly, and a backtest will never tell you whether your notifications work.
Test It Live
Because notifications do not fire in the tester, test on a live or demo chart. Place a small demo trade and confirm the notification arrives on your phone. If you use an EA with notification settings, trigger one deliberately before relying on it.
Why Push Notifications Are Not Enough
Notifications tell you when something happens. They cannot tell you when something should have happened and did not.
If your terminal loses its connection, it stops receiving prices, so the EA stops evaluating conditions, so no trades are placed, so no trade notifications are sent. From your phone, a disconnected terminal is indistinguishable from an EA that is correctly waiting for a setup. The same is true if the terminal process has crashed, if the VPS has rebooted and auto-start failed, or if AutoTrading was turned off.
⚠️ Warning: “I haven’t had a notification, so everything must be fine” is the reasoning that turns a ten-minute outage into a three-day one. The absence of alerts is not evidence of health. You need a signal that arrives because things are healthy.
Layer 2: Heartbeat Messages
A heartbeat inverts the logic. Instead of notifying on problems, the EA sends a short message on a fixed schedule to say it is alive. You then watch for the heartbeat not arriving.
The simplest version needs no extra software. Have your EA (or a small companion EA on a separate chart) call SendNotification() once or twice a day with a status line:
Terminal 1 alive — connected, AutoTrading on, 2 positions, equity 10,412
Useful fields to include:
- Terminal or account label, so multiple VPS terminals are distinguishable
- Connection state
- Whether automated trading is enabled
- Number of open positions
- Current equity or floating profit
Send it at fixed times you will actually notice — say, before the London open and before the US session. If the morning message does not arrive, you check the VPS before the session starts.
💡 Tip: Keep heartbeat frequency low. Twice a day is enough for most swing and intraday strategies. Hourly heartbeats train you to ignore your phone, which defeats the purpose. The notification rate limit also makes very frequent heartbeats fragile if the EA sends trade notifications too.
The limitation of a phone-based heartbeat is that you are the monitor. If you are travelling or asleep, a missing message goes unnoticed. That is where the next layer comes in.
Layer 3: An External Dead-Man’s Switch
Uptime monitoring services offer “heartbeat” or “cron” checks: they give you a unique URL, expect it to be requested on a schedule, and alert you by email, SMS or a messaging app if a request does not arrive in time. The monitoring happens off the VPS, so it still works if the whole machine is down.
There are two ways to feed one from a trading VPS.
From Inside MetaTrader
An EA can call the check URL with WebRequest() on a timer. MetaTrader only allows web requests to addresses you have explicitly permitted, so add the monitoring URL under Tools → Options → Expert Advisors → Allow WebRequest for listed URL. The advantage of doing it from inside the EA is that the ping proves the most specific thing: the EA itself is running. Only send the ping when the terminal is connected and trading is enabled, and the alert will fire for all three failure modes at once.
From Windows Task Scheduler
A scheduled task can run a small PowerShell script that checks whether terminal.exe or terminal64.exe is running and, if so, requests the check URL. This proves the process is alive but not that it is connected, so it is a weaker signal than the EA-based version. It is still far better than nothing, and it pairs naturally with a restart task. Our Task Scheduler guide covers the scheduling side.
✅ Best Practice: Use both. Task Scheduler restarts a terminal that has died; the EA-based heartbeat alerts you if a terminal is running but not trading. One fixes the common failure automatically, the other catches the subtle one.
Other Notification Channels
MetaTrader can also send email via Tools → Options → Email, using an SMTP server you supply, and EAs can call SendMail(). Email is slower to notice than a push notification but leaves a searchable record, which is useful for auditing what happened overnight.
Many traders also route alerts to Telegram through a bot. That can be convenient, but it adds a third-party dependency and a bot token that must be kept secure. If you already run a Telegram-based setup, our Telegram signal copier guide covers the security considerations.
What to Monitor, Ranked
If you only set up a few things, set them up in this order:
- Trade operation notifications — you see every action your EA takes.
- A daily heartbeat — you notice silence within a day, not a week.
- An external dead-man’s switch — you are alerted even when you are not paying attention.
- Disconnection alerts from the EA — if the terminal loses connection for more than a few minutes, say so.
- Equity or drawdown alerts — especially on prop firm accounts, where a daily loss limit is enforced whether you are watching or not. See prop firm rules and VPS compliance.
Monitoring Does Not Replace Uptime
Everything above tells you faster when something has gone wrong. None of it prevents things going wrong. The foundation is still a machine that stays on, stays connected and restarts cleanly — which is the job of the VPS itself. On an FXVPS instance you get datacenter power and networking, dedicated CPU cores, and a Windows environment you control, so the alerts you set up are the exception rather than a daily event.
🚀 Run your terminals somewhere that stays online — FXVPS Core starts at $29/mo, Pro at $39/mo. Compare at /pricing/ or try 7 days for $2.99 at /try-risk-free/.
Summary
Enable MetaTrader push notifications with your MetaQuotes ID so every trade operation reaches your phone. Recognise that no notifications does not mean no problems. Add a low-frequency heartbeat so silence becomes visible, and back it with an external dead-man’s switch fed from inside the EA or from Task Scheduler so you are alerted even when you are not looking. Then make sure the machine underneath rarely gives those alerts a reason to fire.
Frequently Asked Questions
Where do I find my MetaQuotes ID?
In the MetaTrader 4 or MetaTrader 5 mobile app, open the Messages section. The ID for that device is displayed there.
Where do I enter the MetaQuotes ID on my VPS?
In the desktop terminal, go to Tools → Options → Notifications, tick Enable Push Notifications, and enter the ID. You can enter up to four IDs separated by commas.
Why don’t my EA’s notifications work in the Strategy Tester?
SendNotification() is disabled in the Strategy Tester by design. Test notifications on a live or demo chart instead.
Is there a limit on how many notifications an EA can send?
Yes. The MQL5 documentation limits SendNotification() to two calls per second and ten per minute, with a 255-character maximum message length.
Will I get a notification if my VPS terminal disconnects?
Not from MetaTrader’s standard trade notifications. You need an EA that detects the disconnection and reports it, or an external heartbeat check that alerts when regular pings stop arriving.
Do notifications use much of the VPS’s resources?
No. Push notifications are tiny messages and have a negligible effect on CPU, RAM or bandwidth. They are one of the cheapest reliability measures available.
Related Reading
- MT4 and MT5 “No Connection” on a VPS — what to do once your monitoring tells you something is wrong
- Automating EA Restarts With Windows Task Scheduler — pair restarts with heartbeats
- What Stops Working When Your MT4 or MT5 Terminal Goes Offline — why silent outages are costly
- Understanding VPS Uptime SLAs — what the infrastructure side guarantees