PropMirror setup guide: two terminals, one channel name, ten minutes

PropMirror setup guide: two terminals, one channel name, ten minutes

23 September 2026, 10:03
Timon-pascal Krueger
0
98

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 getTwo MT5 terminals on one computer or VPS, one sending its trades, one following them, and the journal lines that tell you it works.
TimeAbout ten minutes including the checks.
You needTwo 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

  1. Open any chart in the terminal that will send trades.
  2. Drag PropMirror onto the chart.
  3. Set Role of this terminal to Master.
  4. 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.
  5. 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.
  6. 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.
Master terminal: PropMirror broadcasts the open position on channel mirror1; risk per trade announced as 2 percent.

Step 2: the slave

  1. Open any chart in the terminal that will follow.
  2. Drag PropMirror onto the chart.
  3. Set Role of this terminal to Slave.
  4. Enter the same channel name as on the master.
  5. Choose the sizing (see the table below). The default, equity proportional, is a sensible start.
  6. 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.
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 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.
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