PropMirror setup guide: two terminals, one channel name, ten minutes
After this guide you have two MetaTrader 5 terminals on one computer or VPS, one sending its trades and one following them, and you know which journal lines tell you it works. Time needed: about ten minutes including the checks.
| You get | Two MT5 terminals on one computer or VPS, one sending its trades, one following them, and the journal lines that tell you it works. |
| Time | About ten minutes including the checks. |
| You need | Two of your own hedging accounts on one Windows machine, PropMirror installed in both terminals. |
What you need
- Two MT5 terminals on the same Windows computer or Windows VPS, each logged in to one of your own accounts. Demo accounts are fine for the first run.
- Both accounts in hedging mode. PropMirror refuses netting accounts at start and says so in the journal.
- PropMirror installed in both terminals. After purchase it appears under Market in the Navigator of the terminal you bought it in; in the second terminal log in with the same MQL5 account and it appears there too, or download it again from your purchases.
- Algo Trading switched on in both terminals (the button in the toolbar).
Step 1: the master
- Open any chart in the terminal that will send trades.
- Drag PropMirror onto the chart.
- Set Role of this terminal to Master.
- Enter a Channel name. Any word without spaces works, for example mirror1 . If you leave it empty, PropMirror uses the account number, which also works but is harder to type on the other side.
- Optional: Risk % per trade on the MASTER account. Enter the risk you actually use, for example 2.0. This is only an announcement; it does not change your trading. It is needed for risk equivalent sizing on the slave.
- Click OK. The journal shows one line: [PropMirror] MASTER v1.10 started | channel 'mirror1' -> Common\Files\PropMirror\mirror1.txt ...

Master terminal: PropMirror broadcasts the open position on channel mirror1; risk per trade announced as 2 percent.
Step 2: the slave
- Open any chart in the terminal that will follow.
- Drag PropMirror onto the chart.
- Set Role of this terminal to Slave.
- Enter the same channel name as on the master.
- Choose the sizing (see the table below). The default, equity proportional, is a sensible start.
- Click OK. The journal shows: [PropMirror] SLAVE v1.10 started | channel 'mirror1' | lots: equity-ratio | ...

Slave terminal a few seconds later: the same trade, copied in 47 ms, sized by the equity ratio.
If the slave instead reports no valid snapshot for 30 s ... is the master running on channel 'mirror1'? , the channel names differ, the master is not running, or the two terminals do not share the Common folder (see the portable section below).
Step 3: the first check
Open a small position by hand on the master. Within a second the slave journal shows:
[PropMirror] Copy opened: master 123456 -> own 234567 | GER40 BUY 0.20 lots (master 0.10 x equity-ratio) | latency 87 ms
Now move the stop loss on the master. The slave modifies its stop and logs it. Close the master position. The slave logs Orphan close: master 123456 gone -> copy 234567 closed . If you see these three lines, the pair works.

The journal of that run: start, copy with measured latency, stale freeze, heartbeat back, orphan close.
The inputs that matter
| Input | Default | What it does |
|---|---|---|
| Role of this terminal | Slave | Master sends, Slave follows. One file for both. |
| Channel name | empty | Must be identical on master and slave. Empty means the account number. |
| Sync interval (ms) | 50 | How often the master writes and the slave reads. 50 is fine on a normal PC; do not go below 25. |
| Lot scaling mode | Equity-proportional | Slave lots = master lots × (slave equity / master equity). Alternative: fixed multiplier. |
| Fixed multiplier | 1.0 | Used only in multiplier mode. 0.5 halves every copy. |
| Risk % per trade on THIS account | 0 | Slave side of risk equivalent sizing. With master 2.0 and slave 0.25 every copy is scaled by 0.125 on top of the mode above. Both sides must be above 0 or it stays off. A ratio above 1 is clamped to 1: PropMirror never sizes the copy larger than the master. |
| Copy SL/TP | true | Copies stop loss and take profit levels. Switch off when the two brokers quote different prices. |
| Close copy when the master position is gone | true | The core of the mirror. Leave on unless you want to manage exits yourself. |
| Copy only these master magics / Never copy these | empty | Comma separated magic numbers. Empty copies everything including manual trades. |
| Magic number of copied positions | 777001 | So you can tell copies from your own trades on the slave. |
| Freeze if master heartbeat is older (seconds) | 10 | The slave stops acting when the master file is older than this. One journal line and one push, no closes. |
| Symbol mapping | empty | GER40>DE40;US30>DJ30 when broker symbol names differ. |
| Risk lock: name of a global variable | empty | Copying pauses while this variable is 0.05 or lower. With PropGuardian enter PropGuardian_<your login>_State . Enter the name, not a number. |
| Privacy mode | false | Masks account and channel numbers on the chart and in the journal, useful for screenshots and streams. |
| Built-in demo cycle in the strategy tester | true | Only affects the tester. Set to false to test your own inputs there. |
Portable terminals and VPS
PropMirror passes the position list through the shared folder Common\Files\PropMirror\ . Two normally installed terminals on the same Windows user share it automatically.
A terminal started with /portable keeps its own data folder and does not see the shared one. Create a junction once, with the portable terminal closed:
mklink /J "C:\path\to\PortableTerminal\Common" "%APPDATA%\MetaQuotes\Terminal\Common"
Run this in a command prompt as the same Windows user that runs the terminals. After that both terminals read and write the same folder.
On a Windows VPS run both terminals under the same Windows user and it works like on a PC. The MQL5 hosted VPS (the one you rent inside the terminal) runs each terminal in its own environment without a shared folder, so it cannot be used for the pair.

Master terminal stopped: after ten seconds without a heartbeat the slave freezes and leaves its positions untouched.
Typical journal lines and what they mean
- master 123456: copy was opened once and closed externally -> NO re-open (one-shot) : you, your stop or your guardian closed the copy. PropMirror leaves it closed on purpose until the master opens a new trade.
- scaled lots below broker minimum -> master 123456 NOT mirrored : the slave account is too small for this size at this scaling. The trade is skipped, nothing is inflated.
- not enough free margin for 0.50 GER40 (free 120.00) -> NOT mirrored, no request sent : same idea for margin.
- Open for master 123456 failed 3x (retcode 10027) -> 60 s pause : the broker rejected the request three times. 10027 usually means Algo Trading is off in that terminal.
- risk lock variable 'PropGuardian_12345_State' does not exist yet : the guardian has not written its variable yet, usually because it is not attached in this terminal. No lock until it exists.
- WARNING: risk lock setting '0' looks like a NUMBER : the input wants the variable name, not its value.
Get it: PropMirror on the Market · pauses copying while PropGuardian locks the account
Questions: the Comments tab of the product or a message, with the journal lines from both terminals.
More guides: my blog · Tools for prop firm accounts: all my products


![[XAUUSD]: Weekly Liquidity Activation Points (LAP), November 9-13, 2026 [XAUUSD]: Weekly Liquidity Activation Points (LAP), November 9-13, 2026](https://c.mql5.com/6/1048/splash-preview-779617.png)