.png)



🚀 TradeCopierBot — Fast, Clean, and Broker-Proof Trade Copying (Local/VPS) 🔁✨
Copy your trades from a MASTER account to one (or more) SLAVE accounts with a lightweight, event-driven copier designed for real trading conditions: different brokers, different symbol names, different lot rules.
Perfect for multi-account execution, risk scaling, and strategy distribution—with detailed debug logs so you always know what’s happening. 🧠📈
✅ Optimized for Local / VPS setups (same machine).
❌ Not designed for cTrader Cloud (instances are isolated, so signals can’t be shared). ☁️🚫
🧠 How it works (MASTER → SLAVE) 🧩
🔁 1) Signal transport (how trades “travel”)
This copier uses cTrader LocalStorage (Device scope) as a shared “message bus”.
✅ MASTER
- Listens to position events: Opened / Modified / Closed
- Creates a
TradeSignal(OPEN / MODIFY / CLOSE) - Appends it to a signals list in LocalStorageScope .Device
- Calls Flush() so the SLAVE can read it immediately
✅ SLAVE
- Runs a Timer every Poll Interval seconds
- Calls Reload()
- Reads the signals list
- Processes only new signals (using
_lastSignalIndexProcessed)
🧷 2) Position mapping (so CLOSE works)
When the SLAVE opens a trade, it stores:
🧩 MasterPositionId → SlavePositionId
This mapping is also saved into LocalStorage, so it survives restarts:
- ✅ CLOSE still works after reboot
- ✅ MODIFY still finds the correct position
🧭 3) Symbol translation (MASTER symbol → SLAVE symbol)
🗺️ Symbol Map (MASTER=SLAVE;...)
Used when symbol names differ between brokers/accounts.
Format:
MASTER=SLAVE;MASTER2=SLAVE2;...
Example (your case):
- MASTER opens
USTEC - SLAVE must trade
US100
➡️ USTEC=US100
✅ Left side = symbol arriving from MASTER
✅ Right side = symbol on SLAVE broker
📏 4) Volume logic (the key part) 🔥
✅ Works in lots/quantity (decimals supported)
To handle decimals (0.10, 0. 01, etc.), the SLAVE:
- Calculates desired lots
- Applies multiplier / min / step
- Converts lots → volume using
QuantityToVolumeInUnits(lots) - Sends the order using an overload that accepts double volume ✅
This is what makes it robust even when brokers enforce different lot precision rules.
⚙️ Parameters explained (with icons)
🧩 Core
- 🧭 Mode
Master= publishes signalsSlave= reads signals and copies trades
- 🧷 Copy Group Id
- Communication channel. MASTER and SLAVE must match (e.g.,
DEFAULT)
- Communication channel. MASTER and SLAVE must match (e.g.,
- ⏱️ Poll Interval (sec)
- SLAVE checks new signals every N seconds
- 🐞 Debug Mode
- Prints detailed logs (recommended during setup)
🗺️ Symbol Translation
- 🧾 Symbol Map (MASTER=SLAVE;...)
- Example:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- Example:
🎚️ Volume scaling (MOST IMPORTANT) ✅
🔢 Global multiplier
- ➗ Volume Multiplier
- Scales all copied lots:
desiredLots = masterLots * VolumeMultiplier
🎛️ Per-symbol multiplier (your main tool)
- 🧷 Volume Multiplier Map (SYM=mult;...)
- Overrides multiplier per symbol (SLAVE-side symbol)
- Example:
US100= 0. 10- Italian format is also OK:
US100=0,10
✅ This is how you achieve: 1. 00 on MASTER → 0. 10 on SLAVE
🧱 Broker lot constraints (min and step)
- 🧱 Min Qty Default (0=off)
- Global minimum lots if enabled
- 🧱 Min Qty Map (SYM=val;...)
- Minimum lots per symbol
- Example:
US100=0. 10
- 🪜 Qty Step Default (0=off)
- Global step if enabled
- 🪜 Qty Step Map (SYM=val;...)
- Step per symbol
- Example:
US100=0. 10→ allowed values: 0. 10, 0 .20, 0.30…
🧯 Safety behaviors
- 🧷 Use Min Qty as Fixed Lots
- If
true: SLAVE ignores master size and always uses MinQty (fixed sizing)
- If
- ⚠️ BelowMin Behavior
UseMin= if below min → raise to minSkip= if below min → don’t open
- 🔁 BadVolume Attempts
- If broker returns BadVolume, tries small adjustments up to N times
🎯 SL/TP copy logic
- 🛡️ Copy SL/TP as Distance when Symbol differs
- If MASTER and SLAVE symbols differ:
- SL/TP is copied as distance from entry, not absolute price
- This keeps risk controls consistent across instruments
✅ Recommended setup (USTEC → US100, SLAVE lot = 0. 10)
On the SLAVE:
🗺️ Symbol translation:
Symbol Map=USTEC=US100
🎛️ Volume scaling:
Volume Multiplier Map=US100=0,10
🧱 Broker constraints:
Min Qty Map=US100=0,10Qty Step Map=US100=0,10
Result:
- ✅ MASTER 1. 00 → SLAVE 0. 10 on US100
☁️ Important: Local/VPS only (not Cloud) ❌
🖥️ Local/VPS ✅
Works because MASTER and SLAVE share the same LocalStorageScope .Device (same machine/environment).
☁️ cTrader Cloud ❌
Does not work because Cloud instances are isolated, so they don’t share LocalStorage and the SLAVE can’t see MASTER signals.
✅ Conclusion:
- ✔️ Use on the same PC or on a VPS where both instances run together
- ❌ For Cloud you need an external relay (HTTP/WebSocket server)
.png)
 (2).png)
.jpg)
 (1).png)
.png)
.png)
.png)
.jpg)
.png)
.png)
.png)
.jpg)
.jpg)
.jpg)
.png)
.png)
.jpg)
.png)

 hecho de metal fracturado con grietas de neón azul brillante, flotando dentro de un grid 3D de trading._El grid s (1).jpg)


.jpg)



.png)






.png)
