← Trade Copier

Configuration guide · realbacktesting Tools

Configure the Trade Copier.
Understand each setting.

Three steps to start. Then a plain answer for every setting, and for what the panel tells you.

Guide checked against code v1.0

Start here

Role
Receiver
Channel
main
Volume
SameAsSender
Close copies
On
  1. Add the cBot to the account you trade on

    Set Role = Sender. Leave Channel on main.

  2. Add it to each account that should copy

    Set Role = Receiver. Each account runs in its own cTrader and can be at a different broker.

  3. Trade as usual on the Sender

    Each cBot says on its chart what it is doing. The Sender lists every Receiver and whether it is alive.

Run several cTrader windows

Every account runs in its own cTrader window on the same PC or VPS. The mode is chosen in Settings › Start-up:

Single instance
Only one cTrader at a time. Not usable for the copier.
Multiple instances
Several windows at once (the Windows default), but they share one settings profile: when each one closes, its settings overwrite the profile, and the next start opens with those of the last one closed.
Multiple profiles recommended
Each window has its own profile: its own login (cTrader ID), its last account, its workspace and its running cBots. With one profile per account, every window comes back after a restart with its account and its copier.

Windows: one profile per account

  1. Open Settings › Start-up and select Multiple profiles.
  2. Click Create new profile and give it a name, for example the account it will use.
  3. Tick the desktop shortcut and/or the Start menu option, then click Create profile.
  4. Start each profile with Start next to it in the list of profiles, or with its shortcut. Log in, choose the account and add the copier to a chart.

Quick alternative: with Multiple instances, open cTrader again from the Start menu or its shortcut. It works, but the windows share their settings, as explained above.

Mac

The same Multiple profiles mode is in Settings › Start-up. The quick way, the one in our video: choose Multiple instances and open each extra window from Terminal with open -n -a cTrader (once per window).

We have tested the copier with cTrader Desktop on a Mac and on a VPS. On Windows it uses the same mechanism, the local storage that cTrader shares between its windows on one computer. cTrader Cloud cannot be used: cloud instances cannot see each other.

What the panel says

Each cBot draws a panel on its chart. The dot is green when it works, amber while it waits and red when something needs you. The texts below are the English ones; with Language set to another option the panel speaks that language.

Sending on 'main' · 1 position · 0 pending orders

Sender working. Below it, one row per Receiver: “copying · 1 copy open”.

Copying from 40118822 (Broker A) · 1 position

Receiver working: it names the Sender’s account and, between brokers, the Sender’s broker.

waiting for a Sender on channel 'main'

No Sender with that channel name yet. Check that both use the same Channel and that the Sender is running.

Sender silent (over 5s) - holding, nothing is closed

The Sender stopped publishing: the Receiver holds. After a minute it can send a Telegram alert.

Sender is disconnected from its broker - holding

The Sender lost its broker connection. Nothing is opened or closed until it is back.

another Sender (account …) is already using channel 'main'. This Sender is OFF

Two Senders on one channel: the second switches itself off and stays off. Give it another channel name and restart it.

Free edition copies to ONE receiving account per computer, and account … is already receiving

Free edition with a second Receiver on the same computer. Stop the other Receiver, or use the full version.

daily loss limit reached - copying paused until tomorrow (CET)

A protection triggered: copies were closed. The daily one resumes the next day; the total one stays stopped.

Something does not copy

A symbol is not copied

Either the Receiver’s broker does not offer that market - then there is nothing to copy - or it uses a name the copier cannot match exactly. Read the log: it names the symbol and the exact line to add to Symbol map, for example XAUUSD=GOLD.

The Receiver says it is holding

It is waiting for the Sender: silent, disconnected from its broker, or not started. Nothing is closed meanwhile. Check the Sender’s chart; when it publishes again, the Receiver catches up on its own.

My second Sender is OFF

Only one Sender can use a channel. The second one switches itself off and stays off, so they never overwrite each other. Give it a different Channel, restart it, and add that channel to the Receivers that should follow it.

The Free edition does not copy on my second account

The Free edition copies to one receiving account per computer. The panel shows which account holds the slot. Stop that Receiver and the slot frees up shortly; to copy to several accounts at once you need the full version.

A trade was not copied because it was already open

Positions opened more than 60 seconds before the Receiver could see them are not joined, so you do not enter late at another price. Turn on Join trades already open if you want them.

The copy is smaller than I expected, or not opened

Below the broker’s minimum lot the copy is skipped instead of rounded up, and the log says by how much. Raise Multiplier, use another Volume mode, or turn on Round up to minimum lot knowing it adds risk.

I can only open one cTrader. How do I run several accounts?

Each account needs its own cTrader window. In cTrader, open Settings › Start-up: Single instance allows only one window. Choose Multiple profiles and create one profile per account, so that after a restart every window comes back with its own account and its own cBot. Multiple instances also opens several windows, but they share one settings profile. On a Mac you can also use Multiple instances and open each extra window from Terminal with open -n -a cTrader. The setup guide has the steps for Windows and Mac.

Every parameter, explained

The English label matches cTrader. Defaults and ranges belong to this code version. Only Role is required; every Receiver setting is set per receiving account.

1 · SetupRole, channel and the language the cBot speaks.3

Sender or Receiver

Default: Receiver
Role

The only setting you must choose. Sender: the account you trade on; it publishes its positions and orders. Receiver: an account that copies. Use one Sender per channel and as many Receivers as you need (one per computer in the Free edition).

Available values: Sender · Receiver

Channel name

Default: main
Channel (Receiver: several allowed, e.g. main, gold)

Links a Sender with its Receivers: they copy only when the names match. Letters, numbers and spaces. A Sender publishes on one channel (if you type several, it uses the first). A Receiver can follow several, separated by commas - for example main, gold - each from its own Sender.

Available values: Text

Language of the panel, log and alerts

Default: English
Language

English, Spanish, French or Portuguese. Parameter names stay in English because cTrader does not allow translating them; the messages quote them as you see them.

Available values: English · Espanol · Francais · Portugues

2 · Receiver · volumeHow big each copy is on this account.7

How the copy is sized

Default: SameAsSender
Volume

SameAsSender copies the same money per point: on the same broker that is the same lot, and between brokers it corrects contracts of different size. ProportionalToBalance scales by this account’s balance against the Sender’s. FixedLots always uses Fixed lots. RiskPercent sizes each copy so that its stop loss costs Risk % of this account’s balance; a trade without a stop loss is not copied, and the log says so.

Available values: SameAsSender · ProportionalToBalance · FixedLots · RiskPercent

Size multiplier

Default: 1.0
Multiplier

Multiplies the copy in SameAsSender and ProportionalToBalance. 0.5 copies half; 2 copies double. It has no effect with FixedLots or RiskPercent.

Available values: 0.01 → 100

Lots for every copy

Default: 0.01
Fixed lots

Used only when Volume = FixedLots: every copy opens this many lots, whatever the Sender trades.

Available values: 0.0 → ∞

Risk per copy, % of balance

Default: 1.0
Risk % per trade (Volume = RiskPercent)

Used only when Volume = RiskPercent: the loss at the copy’s stop loss is this percentage of this account’s balance. It needs a stop loss on the original trade.

Available values: 0.01 → 20

Largest copy allowed

Default: 0.0
Max lots per trade (0 = no limit)

Caps the size of each copy in lots. Zero means no cap.

Available values: 0.0 → ∞

Round up to the broker minimum

Default: Off
Round up to minimum lot

Off: a copy smaller than the broker’s minimum lot is skipped and the log explains why. On: it opens at the minimum instead, which means more risk than the calculation asked for.

Available values: true / false

Multiplier per symbol

Default: Empty
Per-symbol multipliers (e.g. XAUUSD=0.5, US100=2)

An extra multiplier for specific symbols, on top of the rest: XAUUSD=0.5, US100=2. Separate entries with commas; to write decimals with a comma, separate entries with semicolons instead (XAUUSD=0,5; US100=2).

Available values: Text

3 · Receiver · what to copyWhich trades, orders and changes reach this account, and symbol names.12

Copy pending orders

Default: On
Copy pending orders

On: limit, stop and stop-limit orders are copied with their edits, expiry and cancellation. Off: orders are ignored; when one fills on the Sender, the position it opens is copied like any new trade.

Available values: true / false

Copy stop loss and take profit

Default: On
Copy stop loss / take profit

On: each copy gets the same stop and target distance from its own entry, and later moves are followed. Off: copies open without SL/TP, for you to manage.

Available values: true / false

Close copies when the original closes

Default: On
Close copies when the Sender closes (also partial)

On: when the Sender closes a trade, fully or partly, the copy follows. Off: the copy stays open when the original closes, and you manage it.

Available values: true / false

Reverse copy

Default: Off
Reverse copy (buy <-> sell)

A buy becomes a sell and the other way round; the stop loss becomes the take profit and vice versa.

Available values: true / false

Direction to copy

Default: Both
Copy only

Both copies buys and sells. BuyOnly or SellOnly copies only that side of the original trade.

Available values: Both · BuyOnly · SellOnly

Which Sender trades to copy

Default: AllTrades
Copy trades from

AllTrades copies everything. ManualOnly copies only trades without a label - the ones you place by hand. LabelContains copies only trades whose label contains the text below: useful to copy one cBot out of several.

Available values: AllTrades · ManualOnly · LabelContains

Text the label must contain

Default: Empty
Label contains (Copy trades from = LabelContains)

Used only when Copy trades from = LabelContains. Upper or lower case does not matter.

Available values: Text

Copy only these symbols

Default: Empty
Only these symbols (empty = all)

A comma-separated list of the Sender’s symbols. Empty copies all. Broker suffixes are ignored, so EURUSD also matches EURUSD.r.

Available values: Text

Never copy these symbols

Default: Empty
Skip these symbols

A comma-separated list of the Sender’s symbols that this account never copies.

Available values: Text

Skip trades without a stop loss

Default: Off
Skip trades without stop loss

On: an original that arrives without a stop loss is not copied, and the log says so.

Available values: true / false

Join trades that were already open

Default: Off
Join trades already open

Off: a position opened more than 60 seconds before this Receiver could see it is not copied, so you do not enter late at another price. On: it is copied anyway, for example when you add a new account.

Available values: true / false

Your own symbol names

Default: Empty
Symbol map (optional, e.g. XAUUSD=GOLD)

Optional. Only for names the copier cannot match on its own: write Sender name = this broker’s name, separated by commas, for example XAUUSD=GOLD, US100.cash=NAS100. When a symbol is not copied, the log tells you the exact line to add.

Available values: Text

4 · Receiver · executionPrice distance and hours for new copies.2

Maximum distance from the Sender’s entry

Default: 0.0
Max price deviation, pips (0 = off)

In pips. If this account’s price is further from the Sender’s entry, the copy waits while the trade is still recent (60 seconds) and is not opened if the price does not come back. Zero switches it off.

Available values: 0.0 → ∞

Hours when new copies may open (UTC)

Default: Empty
Copy hours UTC (e.g. 07:00-20:00; empty = always)

Ranges in UTC separated by commas, for example 07:00-12:00, 13:30-20:00. A range that crosses midnight, such as 22:00-02:00, is valid. Empty means always. It applies to new copies; existing copies keep following the Sender.

Available values: Text

5 · Receiver · protectionLoss limits that act on this account’s copies.2

Daily loss limit, %

Default: 0.0
Daily loss limit % (0 = off)

If this account’s equity falls this percentage below the day’s reference (the higher of balance and equity when the day starts), the copies are closed and copying pauses until the next day. The day resets at midnight Central European time. Zero switches it off. Your manual trades are not touched.

Available values: 0.0 → 100

Maximum total loss, %

Default: 0.0
Max total loss % (0 = off)

Measured from this account’s balance when you switch it on. If equity falls that far, the copies are closed and copying stops. To start a new reference, change the percentage. Zero switches it off.

Available values: 0.0 → 100

6 · AlertsTelegram messages from the Sender and the Receivers.4
▶ Watch: set up Telegram alerts, step by stepCreate the bot in BotFather · get the token and your chat id · paste both into the cBot2:38

Pressing play loads the video from YouTube (youtube-nocookie.com).

Telegram messages

Default: Off
Telegram alerts

Sends alerts to your own Telegram bot: a Sender silent for over a minute, a Receiver that stops copying, a copy the broker rejects, a symbol that cannot be mapped, a protection that triggers. Desktop and VPS only.

Available values: true / false

Bot token

Default: Empty
Telegram bot token

The token BotFather gives you when you create the bot. It is entered in cTrader, never on this website, and the log hides it.

Available values: Text

Chat id

Default: Empty
Telegram chat id

The chat where the bot writes to you. The video at the top of this group shows how to find it.

Available values: Text

A message for every copy

Default: Off
Alert on every copy

On: you also get a message each time a copy opens or closes. Off: only problems and protections.

Available values: true / false