You Moved Your EA to a VPS. Did You Accidentally Give It a Twin?
Picture this entirely hypothetical Monday morning.
You moved your Expert Advisor to a VPS on Sunday. You wanted the robot to trade while your laptop slept, your Wi-Fi sulked, and the rest of the household enjoyed a normal relationship with electricity.
On Monday, you spot two remarkably similar trades.
Your first thought: "Wow, my EA is enthusiastic."
Your second thought should be: Which computer was actually allowed to trade?
A VPS migration is not just moving files. It is handing responsibility for live execution from one environment to another. Get that handover wrong and you may have two independent copies of a strategy making decisions on the same account.
There is an important catch, though: MetaTrader's built-in virtual hosting already includes a duplicate-trading safeguard. It disables automated trading in the local terminal when you migrate EAs. The problem can arise if you later reactivate the local copy, or if you are using a separate Windows VPS without coordinating the old terminal. So don't blame every duplicate order on the hosting service. First identify the setup.
Two things called "MT5 VPS" are not the same thing
People use "VPS" for two rather different arrangements.
MetaTrader virtual hosting is the built-in service available through MT5. You prepare charts, EAs and settings locally, then migrate that environment to a hosted virtual platform. You manage its status and retrieve its logs through MT5 rather than signing in to a normal Windows desktop.
A Windows VPS is a remote Windows computer on which you install and run MT5 yourself. It behaves more like another PC. You are responsible for installing the EA, configuring the terminal, enabling trading, checking updates and making sure the old installation is no longer sending orders.
Both can keep a trading terminal running without your home PC. Neither makes a strategy profitable, and neither excuses skipping the setup check.
The built-in hosting safeguard you should know about
MetaTrader's official migration documentation says two things that deserve to be read together:
- Migrated trading EAs are allowed to trade on the virtual platform, even if automated trading was disabled locally before migration.
- When EAs are migrated, automated trading is automatically disabled in the local platform to help prevent the same EA from trading twice.
That is a sensible handover mechanism. It is not an invitation to click the local Algo Trading button again because it looks lonely.
Suppose, hypothetically, you migrate an XAUUSD EA on Sunday. On Monday you open the laptop, see the EA still attached to its chart, and turn local automated trading back on. The virtual copy may still be running. You have now created the possibility of two active execution environments.
Whether this actually creates duplicate trades depends on how the EA checks existing orders and positions. Some systems prevent a second entry. Others may not. Never assume an EA is protected without evidence from its design and logs.
For a Windows VPS, there is no equivalent built-in migration handover simply because you copied the EA onto another computer. You must deliberately disable or stop the old trading instance.
The five-minute handover audit
Before leaving a migrated EA unattended, write down five answers.
1. Which account? Check the trading account and broker server. Similar account names are not good enough.
2. Which machine owns execution? Local MT5, MetaTrader virtual hosting, or Windows VPS? Name one intended active location for each strategy instance.
3. Which exact EA configuration? Record the EA version, symbol, timeframe, input settings and required indicators. If you use presets, save the intended preset.
4. Is the old copy able to trade? Inspect the old terminal rather than assuming that closing a chart, minimizing MT5, or disconnecting Remote Desktop means the same thing.
5. What do the remote logs say? A successful migration notification is not proof that the intended EA initialized and is operating correctly.
This is a deployment checklist, not a trading signal. The boring five minutes are cheaper than discovering an unexpected extra position with real money.
"But I changed the settings on my laptop"
Here is another trap.
With MetaTrader's built-in virtual hosting, migration is one-way. You copy the local environment to the virtual platform. Changing a setting on your laptop later does not automatically change the hosted copy.
Imagine a hypothetical trader changing an EA's maximum spread input locally. They are pleased with their caution. Unfortunately, the hosted EA may still have the previous input.
The correct process is to prepare the intended local configuration, synchronize or migrate again, and verify the latest migration and remote logs. Do not assume that because the chart looks updated on your screen, the remote robot has received the message.
On a Windows VPS, make the change in the remote MT5 terminal itself and verify it there. Different hosting, different procedure.
A few MetaTrader virtual-hosting surprises
Some restrictions are easy to miss:
- DLL calls are not permitted in MetaTrader's built-in virtual platform.
- Running scripts are not transferred during migration.
- Charts without EAs are ignored during migration, even when custom indicators are attached. MetaTrader documents a specific empty-EA approach when an indicator must be migrated on its own.
- Non-standard chart timeframes and symbols are not transferred.
- Virtual-platform logs and environment details must be requested or viewed through the VPS management interface.
Those are platform behaviors, not evidence that an EA is defective. Check compatibility before renting hosting for a workflow that needs features the built-in service cannot provide.
A normal Windows VPS offers a different environment and may suit software that needs fuller desktop control, but it also gives you more things to maintain.
Can two EAs use the same account safely?
Sometimes, yes. Multiple intentional strategies are different from two accidental copies of the same strategy.
For example, one EA might manage EURUSD while another manages XAUUSD. Even then, you should confirm how each EA selects and manages trades. A magic number can help identify an EA's orders and positions, but it is not a magic force field.
This matters especially on a netting account, where MT5 maintains a single net position per symbol. Two strategies operating on that symbol may affect the same position. On a hedging account, separate positions are possible, but trade-management logic can still conflict.
Also, MT5 permits only one EA per chart. To run distinct instances, use separate charts with documented settings.
The useful question is not "How many EAs can I attach?" It is "Can each intended instance correctly recognize and manage its own trading exposure?"
What if you already see suspicious duplicate trades?
Don't randomly restart everything and hope the logs develop amnesia.
First, stop further unintended automated entries using the appropriate controls for the affected environment, while considering how existing positions are managed. Then:
- Record the account, symbol, order times, volumes and order or deal identifiers.
- Check the local terminal's Experts and Journal logs.
- Check the virtual-hosting logs, or the remote Windows terminal logs, for the same period.
- Identify every active EA instance and its configuration.
- Compare order times with migration, restart and local Algo Trading changes.
- Review existing positions and pending orders before restarting anything.
Two similar trades do not, by themselves, prove two copies were running. A single EA might legitimately open multiple orders, a retry might be involved, or a different strategy might have acted. The logs and the EA's documented behavior are what separate a diagnosis from a guess.
If you cannot establish which instance is in control, pause further automated execution until you can.
The final handover rule
A VPS is supposed to make an EA's operating environment more dependable. It should not create a mystery about where orders come from.
Before you call the move complete, verify the account, EA version, inputs, active execution location and remote logs. When you change the setup, repeat the audit.
Your robot does not need a twin. It needs one clearly designated driver, a working dashboard, and somebody who knows where the brakes are.


