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
23

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.

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 ...

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 | ...

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 inputs that matter

InputDefaultWhat it does
Role of this terminalSlaveMaster sends, Slave follows. One file for both.
Channel nameemptyMust be identical on master and slave. Empty means the account number.
Sync interval (ms)50How often the master writes and the slave reads. 50 is fine on a normal PC; do not go below 25.
Lot scaling modeEquity-proportionalSlave lots = master lots × (slave equity / master equity). Alternative: fixed multiplier.
Fixed multiplier1.0Used only in multiplier mode. 0.5 halves every copy.
Risk % per trade on THIS account0Slave 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/TPtrueCopies stop loss and take profit levels. Switch off when the two brokers quote different prices.
Close copy when the master position is gonetrueThe core of the mirror. Leave on unless you want to manage exits yourself.
Copy only these master magics / Never copy theseemptyComma separated magic numbers. Empty copies everything including manual trades.
Magic number of copied positions777001So you can tell copies from your own trades on the slave.
Freeze if master heartbeat is older (seconds)10The slave stops acting when the master file is older than this. One journal line and one push, no closes.
Symbol mappingemptyGER40>DE40;US30>DJ30 when broker symbol names differ.
Risk lock: name of a global variableemptyCopying pauses while this variable is 0.05 or lower. With PropGuardian enter PropGuardian_<your login>_State . Enter the name, not a number.
Privacy modefalseMasks account and channel numbers on the chart and in the journal, useful for screenshots and streams.
Built-in demo cycle in the strategy testertrueOnly 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.

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.

Links

PropMirror on the Market | PropGuardian for the risk lock | All my products

Questions go in the Comments tab of the product page or by message. Please include the journal lines from both terminals, they answer most questions on their own.