🚀 TradeCopierBot — Schnelles, sauberes und broker-sicheres Trade-Kopieren (Lokal/VPS) 🔁✨
Kopiere deine Trades von einem MASTER Konto zu einem (oder mehreren) SLAVE Konto(s) mit einem leichtgewichtigen, ereignisgesteuerten Kopierer, der für reale Handelsbedingungen entwickelt wurde: verschiedene Broker, unterschiedliche Symbolnamen, unterschiedliche Lot-Regeln.
Perfekt für Multi-Konto-Ausführung, Risikoskallierung und Strategieverteilung—mit detaillierten Debug-Logs, damit du immer weißt, was passiert. 🧠📈
✅ Optimiert für Lokale / VPS Setups (gleiche Maschine).
❌ Nicht für cTrader Cloud konzipiert (Instanzen sind isoliert, daher können Signale nicht geteilt werden). ☁️🚫
Achtung: Wenn du zwei verschiedene cTrader-Konten hast, musst du zwei cBots kaufen; sonst kannst du sie nicht kopieren. Wir stehen dir für alle Informationen gerne zur Verfügung.
🧠 So funktioniert es (MASTER → SLAVE) 🧩
🔁 1) Signaltransport (wie Trades „reisen“)
Dieser Kopierer verwendet cTrader LocalStorage (Gerätebereich) als gemeinsamen „Nachrichtenbus“.
✅ MASTER
- Hört auf Positionsereignisse: Geöffnet / Geändert / Geschlossen
- Erstellt ein
TradeSignal(OPEN / MODIFY / CLOSE) - Fügt es einer Signalliste im LocalStorageScope .Device hinzu
- Ruft Flush() auf, damit der SLAVE es sofort lesen kann
✅ SLAVE
- Startet einen Timer alle Poll Interval Sekunden
- Ruft Reload()
- Liest die Signalliste
- Verarbeitet nur neue Signale (unter Verwendung von
_lastSignalIndexProcessed)
🧷 2) Positionszuordnung (damit CLOSE funktioniert)
Wenn der SLAVE einen Trade öffnet, speichert er:
🧩 MasterPositionId → SlavePositionId
Diese Zuordnung wird ebenfalls im LocalStorage gespeichert, sodass sie Neustarts übersteht:
- ✅ CLOSE funktioniert auch nach Neustart noch
- ✅ MODIFY findet weiterhin die korrekte Position
🧭 3) Symbolübersetzung (MASTER-Symbol → SLAVE-Symbol)
🗺️ Symbol Map (MASTER=SLAVE;...)
Wird verwendet, wenn sich Symbolnamen zwischen Brokern/Konten unterscheiden.
Format:
MASTER=SLAVE;MASTER2=SLAVE2;...
Beispiel (dein Fall):
- MASTER öffnet
USTEC - SLAVE muss
US100handeln
➡️ USTEC=US100
✅ Linke Seite = Symbol, das vom MASTER kommt
✅ Rechte Seite = Symbol beim SLAVE-Broker
📏 4) Volumenlogik (der entscheidende Teil) 🔥
✅ Arbeitet in Lots/Menge (Dezimalstellen unterstützt)
Um Dezimalstellen (0,10, 0,01 usw.) zu handhaben, macht der SLAVE:
- Berechnet die gewünschten Lots
- Wendet Multiplikator / Minimum / Schritt an
- Konvertiert Lots → Volumen mit
QuantityToVolumeInUnits(lots) - Sendet die Order mit einer Überladung, die double Volumen akzeptiert ✅
Das macht es robust, auch wenn Broker unterschiedliche Lot-Präzisionsregeln durchsetzen.
⚙️ Parameter erklärt (mit Symbolen)
🧩 Kern
- 🧭 Modus
-
Master= veröffentlicht SignaleSlave= liest Signale und kopiert Trades
- 🧷 Copy Group Id
-
- Kommunikationskanal. MASTER und SLAVE müssen übereinstimmen (z.B.
DEFAULT)
- Kommunikationskanal. MASTER und SLAVE müssen übereinstimmen (z.B.
- ⏱️ Poll Intervall (Sekunden)
-
- SLAVE prüft alle N Sekunden auf neue Signale
- 🐞 Debug-Modus
-
- Gibt detaillierte Logs aus (empfohlen während der Einrichtung)
🗺️ Symbolübersetzung
- 🧾 Symbol Map (MASTER=SLAVE;...)
-
- Beispiel:
USTEC=US100;XAUUSD=GOLD;NAS100=USTEC
- Beispiel:
🎚️ Volumenskalierung (AM WICHTIGSTEN) ✅
🔢 Globaler Multiplikator
- ➗ Volumen-Multiplikator
-
- Skaliert alle kopierten Lots:
desiredLots = masterLots * VolumeMultiplier
🎛️ Multiplikator pro Symbol (dein Hauptwerkzeug)
- 🧷 Volume Multiplier Map (SYM=mult;...)
-
- Überschreibt den Multiplikator pro Symbol (SLAVE-Seite Symbol)
- Beispiel:
-
US100= 0. 10- Italienisches Format ist auch OK:
US100=0,10
✅ So erreichst du: 1. 00 beim MASTER → 0. 10 beim SLAVE
🧱 Broker-Lot-Beschränkungen (Minimum und Schritt)
- 🧱 Min Qty Standard (0=aus)
-
- Globales Minimum an Lots, wenn aktiviert
- 🧱 Min Qty Map (SYM=val;...)
-
- Minimum Lots pro Symbol
- Beispiel:
US100=0. 10
- 🪜 Qty Step Standard (0=aus)
-
- Globaler Schritt, wenn aktiviert
- 🪜 Qty Step Map (SYM=val;...)
-
- Schritt pro Symbol
- Beispiel:
US100=0. 10→ erlaubte Werte: 0. 10, 0 .20, 0.30…
🧯 Sicherheitsverhalten
- 🧷 Min Qty als feste Lots verwenden
-
- Wenn
true: SLAVE ignoriert Master-Größe und verwendet immer MinQty (feste Größen)
- Wenn
- ⚠️ BelowMin Verhalten
-
UseMin= wenn unter Minimum → auf Minimum erhöhenSkip= wenn unter Minimum → nicht öffnen
- 🔁 BadVolume Versuche
-
- Wenn Broker BadVolume zurückgibt, versucht es bis zu N-mal kleine Anpassungen
🎯 SL/TP Kopierlogik
- 🛡️ Kopiere SL/TP als Abstand, wenn Symbole unterschiedlich sind
-
- Wenn MASTER- und SLAVE-Symbole unterschiedlich sind:
- SL/TP wird als Abstand zum Einstieg kopiert, nicht als absoluter Preis
- Das hält die Risikokontrollen über Instrumente hinweg konsistent
✅ Empfohlene Einrichtung (USTEC → US100, SLAVE Lot = 0,10)
Auf dem SLAVE:
🗺️ Symbolübersetzung:
Symbol Map=USTEC=US100
🎛️ Volumenskalierung:
Volume Multiplier Map=US100=0,10
🧱 Broker-Beschränkungen:
Min Qty Map=US100=0,10Qty Step Map=US100=0,10
Ergebnis:
- ✅ MASTER 1,00 → SLAVE 0,10 bei US100
☁️ Wichtig: Nur Lokal/VPS (nicht Cloud) ❌
🖥️ Lokal/VPS ✅
Funktioniert, weil MASTER und SLAVE denselben LocalStorageScope .Device teilen (gleiche Maschine/Umgebung).
☁️ cTrader Cloud ❌
Funktioniert nicht, da Cloud-Instanzen isoliert sind, sie teilen also kein LocalStorage und der SLAVE kann die MASTER-Signale nicht sehen.
✅ Fazit:
- ✔️ Verwende es auf demselben PC oder auf einem VPS, wo beide Instanzen zusammen laufen
- ❌ Für Cloud benötigst du einen externen Relay (HTTP/WebSocket-Server)
5 | 67 % | |
4 | 0 % | |
3 | 33 % | |
2 | 0 % | |
1 | 0 % |