Spec Match Trade Copier MT5
- Utilitys
-
Quoc Dat Quach
Software engineer with 8 years in fintech and mobile, writing MQL4/MQL5 since 2017. I build Expert Advisors, indicators, trade and risk-management panels and utilities for MT4/MT5, and I trade forex and gold on MT5 myself. - Version: 1.1
- Aktualisiert: 30 September 2026
- Aktivierungen: 10
Ein lokaler Handelskopierer für MetaTrader 5. Er kopiert Positionen zwischen MT5-Terminals auf demselben Windows-PC oder VPS und passt die Größe jeder Kopie an die Kontraktspezifikationen beider Broker an (Kontraktgröße, Tick-Wert, Kontowährung), sodass eine Kopie das gleiche Risiko aufweist, selbst wenn die beiden Broker ein Lot unterschiedlich definieren. Es wird niemals eine zweite Kopie derselben Master-Position eröffnet.
So funktioniert es
Sie fügen denselben EA in jedem Terminal zu einem Chart hinzu:
- Stellen Sie im Master-Terminal den Modus auf „Master“ ein.
- Stellen Sie in jedem Empfänger -Terminal den Parameter „Mode“ auf „Receiver“ ein.
Der Master schreibt seine offenen Positionen, deren Symbolangaben und einen Heartbeat in eine Datei im gemeinsamen Ordner „Common\Files“. Jeder Empfänger liest diese Datei alle 100 ms und gleicht seine eigenen Positionen mit denen des Masters ab:
- eröffnet neue Positionen
- passt Stop-Loss und Take-Profit an
- schließt Positionen teilweise
- schließt
Es gibt keinen Server, keine Netzwerkverbindung, keine DLL und keinen WebRequest.
Die Lotgröße richtet sich nach dem Kontrakt, nicht nach der Lot-Nummer
Broker definieren „1 Lot“ unterschiedlich. Gold kann 100 oz, 10 oz oder 1 oz pro Lot betragen. Indizes können 1, 10 oder 25 Einheiten pro Punkt betragen. Ein Cent-Konto zeigt das 100-fache des Geldbetrags an. Ein Kopierer, der die Lot-Nummer kopiert, kann das 100-fache zu viel oder zu wenig eröffnen.
Dieser Kopierer ermittelt den Wert eines Lots auf jeder Seite. Er nutzt „OrderCalcProfit“, die brokerinterne Gewinnberechnung in der Kontowährung. Anschließend rechnet er den Wert des Masters in die Kontowährung des Empfängers um. Der Tick-Wert wird ebenfalls überprüft, und das Bedienfeld zeigt eine Warnung an, wenn die beiden Werte nicht übereinstimmen.
Eine Master-Position ergibt höchstens eine Kopie
Der Empfänger speichert eine Kopierzuordnung auf der Festplatte, mit einer Zeile pro Master-Position:
- Jede Kopie trägt den Kommentar „SMC:<Master-Positions-ID>“.
- Eine Anfrage wird vor dem Versand in die Kopierliste geschrieben, sodass ein Absturz oder Neustart mitten in einem Handel nicht zu einer zweiten Kopie führen kann.
- Nach einem Neustart sowie nach einer Änderung der Eingabewerte oder des Chart-Zeitrahmens lädt der Empfänger die Kopierliste neu. Das Ändern von Eingabewerten bei offenen Kopien wurde live an Hedging- und Netting-Empfängern getestet: Es entstanden keine zusätzlichen Geschäfte.
- Wenn die Map-Datei auf einem Hedging-Empfänger verloren geht, baut der Empfänger die Map anhand der Positionskommentare wieder auf.
- Ein Netting-Empfänger kann eine verlorene Map nicht neu erstellen, da eine Nettoposition nicht wieder in Master-Positionen aufgeteilt werden kann. Stattdessen versetzt er jedes Symbol, für das eine Kopie offen ist, in den Status „NET_HOLD“ (siehe „Wenn der Kopierer stoppt oder pausiert“ weiter unten).
Wenn etwas nicht stimmt, stoppt der Empfänger den Kopiervorgang und löst eine Warnung aus. Er versucht niemals, die Situation zu erraten. Beispiele:
- Zwei Empfängerpositionen tragen dieselbe Master-ID
- Eine kopierte Position enthält keine ID in ihrem Kommentar
- das Stammkonto ändert sich
- der Margin-Modus des Kontos ändert sich
- die Map-Datei ist beschädigt
- Das Nettovolumen eines Netting-Kontos wurde manuell geändert
Das Fenster zeigt an, wie viele Duplikate blockiert wurden.
Kopierte Positionen werden nur auf Anweisung des Hauptkontos geschlossen
Das Master-Konto veröffentlicht für jede geschlossene Position einen Schließungsdatensatz, der aus seiner Transaktionshistorie stammt. Der Empfänger schließt eine Kopie erst, wenn er diesen Datensatz sieht. Eine Position kann auch ohne entsprechenden Datensatz aus der Master-Datei verschwinden, beispielsweise weil die Datei beschädigt war oder der Verlauf nicht geladen wurde. In diesem Fall wird die Kopie auf „HOLD“ gesetzt und Sie erhalten eine Benachrichtigung. Sie wird nicht geschlossen.
Der Empfänger pausiert, wenn einer dieser Fälle eintritt, und Ihre Positionen bleiben unverändert:
- das Master-Terminal wird angehalten
- das Master-Terminal wird beendet
- das Master-Terminal verliert seine Verbindung
- die Master-Datei wird nicht mehr aktualisiert (Heartbeat-Timeout, Standardwert 3 s)
Überwachung
Das Statusfeld befindet sich im Empfänger-Diagramm. Es zeigt:
- Master-Status (ALIVE / SILENT / NOT CONNECTED)
- Anzahl der aktiven, geschlossenen, abgelehnten, zurückgestellten und gefilterten Kopien
- Gesamtengagement des Masters gegenüber dem Empfänger in Kontowährung, mit der Differenz in %
- Anzahl der Eröffnungen, Schließungen, Teilschließungen, SL/TP-Änderungen und gesperrten Duplikate
- die letzte Aktion, den letzten Fehler und Warnungen
- eine Zeile pro kopierter Position, bis zu 10 Zeilen, danach eine Zeile „... N weitere“
Jede Aktion wird außerdem in ein CSV-Protokoll unter „Common\Files\SpecMatchCopier“ geschrieben.
Wenn der Kopierer stoppt oder pausiert
Der Kopierer behebt Inkonsistenzen niemals durch Vermutungen. Beheben Sie die Ursache und starten Sie ihn anschließend neu.
| Das Bedienfeld zeigt an | Was das bedeutet | Was zu tun ist |
|---|---|---|
| KOPIERVORGANG GESTOPPT | Der Empfänger hat etwas entdeckt, das er nicht erklären kann: zwei Positionen für eine Master-ID, eine Position mit dem „Magic“-Wert des Kopierers, aber ohne ID, ein geändertes Master-Konto oder einen geänderten Margin-Modus oder eine beschädigte Map-Datei. Der Grund wird auf dem Display und im Protokoll angezeigt. Es wird nichts kopiert, bis der EA neu gestartet wird. | Beheben Sie die in der Meldung genannte Ursache, entfernen Sie dann den EA aus dem Chart und fügen Sie ihn erneut hinzu. Wenn die Ursache weiterhin besteht, wird der Vorgang erneut gestoppt. |
| KOPIERVORGANG GESTOPPT: Master-Konto geändert | Der Kanal führt nun ein anderes Master-Konto. | Falls der Wechsel beabsichtigt ist: Entfernen Sie den EA, schließen Sie die Kopien des alten Master-Kontos manuell, löschen Sie die Datei „map_<login>_<magic>.txt“ im Verzeichnis „Common\Files\SpecMatchCopier“ (Login und Magic-Code dieses Empfängers) und fügen Sie den EA erneut hinzu. |
| KOPIERVORGANG GESTOPPT: Map-Datei ist beschädigt | Die Kopier-Map hat die Prüfsummenprüfung nicht bestanden. | Hedging: Löschen Sie die Map-Datei und fügen Sie den EA erneut hinzu; die Map wird dann anhand der Kommentare neu erstellt. Netting: siehe NET_HOLD. |
| NET_HOLD (Netting-Empfänger) | Das Nettovolumen eines Symbols weicht von dem ab, was der Kopierer eröffnet hat, beispielsweise nach einem manuellen Handel oder einer verlorenen Map. Dieses Symbol wird nicht mehr gehandelt. Die Sperre wird in der Map gespeichert, sodass ein Neustart sie nicht aufhebt. | Entfernen Sie den EA. Schließen Sie die Positionen des Kopierers manuell. Löschen Sie „map_<login>_<magic>.txt“. Fügen Sie den EA erneut hinzu. Er kopiert dann die danach eröffneten Master-Positionen. |
| HOLD in einer Zeile | Eine Kopie ist fraglich, zum Beispiel wenn eine Master-Position ohne Schließungsaufzeichnung verschwunden ist. Die Kopie bleibt offen. | Schließen oder behalten Sie die Kopie manuell. Der Kopierer greift eine in „HOLD“ befindliche Kopie nicht mehr an. |
Lot-Modi
| Modus | Empfangsmengen | Vertragsbezogen |
|---|---|---|
| Gleiche Belichtung (Standard) | Master-Volumen × (Wert von 1 Master-Lot / Wert von 1 Empfänger-Lot) × Multiplikator | ja |
| Saldenverhältnis | gleiches Engagement × (Saldo des Empfängers / Saldo des Masters) | ja |
| Eigenkapitalquote | gleiche Risikoposition × (Eigenkapital des Empfängers / Stammkapital) | ja |
| Master-Lot × Multiplikator | Master-Volumen × Multiplikator. Bei unterschiedlichen Kontraktgrößen wird eine Warnung angezeigt | nein |
| Festes Lot | das feste Lot für jede Kopie | nein |
In jedem Modus wird das Volumen dann:
- auf die Volumenschritte des Empfängers gerundet (auf- oder abrundend)
- begrenzt durch das optionale Max-Lot und das Broker-Maximum
- übersprungen oder auf das Minimum angehoben, wenn es unter dem Broker-Minimum liegt (nach Ihrer Wahl)
- vor dem Absenden mit „OrderCalcMargin“ gegen die freie Margin geprüft
Eine Kopie wird abgelehnt, wenn ein Lot auf der einen Seite mehr als das 1000-Fache eines Lots auf der anderen Seite wert ist. Diese Grenze kann geändert werden. In der Regel deutet dies auf eine falsche Symbolzuordnung hin.
Anwendungsbeispiel: Gold, 100 oz pro Lot zu 1 oz pro Lot
| Master (Broker A) | Empfänger (Broker B) | |
|---|---|---|
| Symbol | XAUUSD | XAUUSD.cs (wird automatisch abgeglichen) |
| Kontraktgröße | 100 oz | 1 oz |
| Konto | USD | USD |
| Goldpreis | 4.178,13 | 4.178,13 |
| Wert von 1 Lot | 100 × 4.178,13 = 417.813 USD | 1 x 4.178,13 = 4.178,13 USD |
Der Master eröffnet 0,10 Lot, was 10 oz entspricht, im Wert von 41.781 USD.
- Gleiches Engagement: 0,10 × 417.813 / 4.178,13 = 10,00 Lots auf der Empfängerseite, was 10 oz entspricht und einen Wert von 41.781 USD hat. Ein Kopierer, der die Lot-Anzahl kopiert, würde 0,10 Lot = 0,1 oz eröffnen, was einem Hundertstel des Engagements entspricht.
- Cent-Empfänger (Kontowährung USC, 1-Unze-Kontrakt): Der Broker meldet 417.813 USC für 1 Lot, was nach dem Cent-Faktor 4.178,13 USD entspricht. Der Empfänger erhält dieselben 10,00 Lots.
- Saldo-Verhältnis (Hauptsaldo 10.000 USD, Saldo des Empfängers 1.000 USD): 10,00 × 1.000 / 10.000 = 1,00 Lot.
Diese Zahlen stammen aus den mit dem Testbericht gelieferten Unit-Tests. Die gleiche Berechnung wurde auch live durchgeführt: XAGUSD mit 5.000 oz pro Lot auf einem USD-Konto wurde auf XAGEUR mit 1.000 oz pro Lot auf einem EUR-Konto kopiert. Aus 0,10 Lot wurden 0,50 Lot.
Symbolabgleich
Der Empfänger ermittelt das Master-Symbol in folgender Reihenfolge:
- Manuelle Zuordnung (XAUUSD=GOLD.x, US30=DJ30). Diese hat immer Vorrang und es erfolgt niemals ein Fallback.
- Gleicher Name.
- Hinweis auf Suffix/Präfix (.cs, m, #).
- Derselbe Kernname nach Entfernung der Broker-Bezeichnungen: XAUUSD.cs, XAUUSDm, #XAUUSD, EURUSD.pro, US500Cash, fxEURUSD und Ähnliches.
- Integrierte Aliase: GOLD/XAUUSD, SILVER/XAGUSD, US30/DJ30/WS30, NAS100/US100/USTEC, US500/SPX500, GER40/DE40/DAX, UK100, JP225, USOIL/WTI, UKOIL/BRENT, BTCUSD, ETHUSD.
Wenn zwei Empfängersymbole gleichermaßen passen, wird die Kopie abgelehnt und das Fenster fordert eine manuelle Zuordnung an.
Vor dem ersten Kopieren eines Symbols vergleicht der Empfänger beide Kurse in seiner Kontowährung. Die Kopie wird abgelehnt, wenn sie um mehr als 3 % voneinander abweichen; dieser Wert kann geändert werden. Dadurch werden Zuordnungen wie „GOLD“ erfasst, bei denen es sich bei einigen Brokern um eine Goldminenaktie im Wert von etwa 40 USD handelt und nicht um Gold.
Eingaben
| Eingabe | Standard | Bedeutung |
|---|---|---|
| Modus dieses Terminals | Empfänger | Der Master sendet; der Empfänger kopiert |
| Kanal | 1 | Verbindet einen Master mit seinen Empfängern. Verwenden Sie für jeden Master auf dem PC einen anderen Text |
| Cent-Konto (dieses Terminal) | Auto | „Auto“ behandelt die Währungen von USC-/EUC-Konten als Cent. Stellen Sie „Ja“/„Nein“ ein, wenn Ihr Broker einen anderen Code verwendet |
| Master-Scan-Intervall, ms | 200 | Wie oft der Master zusätzlich zu Handelsereignissen auf Änderungen prüft |
| Master-Heartbeat-Intervall, ms | 500 | Wie oft der Master seine Datei neu schreibt, wenn sich nichts ändert |
| Lot-Modus | Gleiche Exposition | Siehe die oben genannten Chargenmodi |
| Feste Charge | 0,01 | Wird im Modus „Feste Losgröße“ verwendet |
| Multiplikator | 1,0 | Gilt für alle Modi außer dem Modus „Festes Lot“ |
| Maximales Lot einer kopierten Position | 0 (aus) | Obergrenze für eine Kopie |
| Rundung des Volumens | Nächstliegende | Nächste Volumensprungstufe nach oben oder unten |
| Volumen unterhalb des Broker-Mindestvolumens | Überspringen | Kopie überspringen oder Mindestvolumen verwenden |
| Ablehnen, wenn ein Lot mehr als das x-Fache des anderen wert ist | 1000 | Schützt vor falschen Zuordnungen |
| Manuelle Symbolzuordnung | leer | MASTER=EMPFÄNGER-Paare durch Kommas getrennt |
| Hinweis zum Suffix des Empfängersymbols | leer | Zum Beispiel .cs |
| Hinweis zum Präfix des Empfängersymbols | leer | Zum Beispiel # |
| Zuordnung ablehnen, wenn die Preise um mehr als % voneinander abweichen | 3,0 | 0 deaktiviert die Prüfung |
| Nur diese Hauptsymbole kopieren | leer (alle) | Durch Komma getrennt |
| Diese Mastersymbole niemals kopieren | leer | Durch Kommas getrennt |
| Nur diese Master-Magischen Zahlen kopieren | leer (alle) | Durch Kommas getrennt |
| Diese Master-Magic-Numbers niemals kopieren | leer | Durch Kommas getrennt |
| Kopieren in umgekehrter Reihenfolge | false | „Kauf“ wird zu „Verkauf“; Stop-Loss und Take-Profit werden vertauscht |
| Stop-Loss und Take-Profit kopieren | true | |
| Bereits beim ersten Start geöffnete Positionen kopieren | false | Standardmäßig werden nur Positionen kopiert, die nach dem Start des Empfängers eröffnet wurden |
| Überspringen, wenn sich der Kurs seit dem Master-Einstieg um mehr als % bewegt hat | 0,10 | Schützt vor verspäteten Kopien nach einer Pause. 0 deaktiviert diese Funktion |
| Timeout für Master-Heartbeat, ms | 3000 | Das Kopieren wird unterbrochen, wenn die Master-Datei älter als dieser Wert ist |
| Wartezeit, wenn eine Master-Position ohne Abschlussdatensatz verschwindet, s | 30 | |
| Maximale Abweichung, Punkte | 20 | Für Symbole mit sofortiger Ausführung |
| Magische Zahl der kopierten Positionen | 7310001 | Ein Empfänger pro Konto und Magic-Nummer. Verwenden Sie eine andere Magic-Nummer für einen zweiten Empfänger auf demselben Konto |
| Erwartetes Hauptkonto | 0 | 0 akzeptiert das erste erkannte Hauptkonto. Andernfalls wird das Kopieren beendet, wenn ein anderes Konto auf dem Kanal erscheint |
| Statusleiste anzeigen | true | |
| Versatz des Fensters in X- und Y-Richtung, px | 12 / 24 | |
| Popup-Warnungen / Push-Benachrichtigungen | true / false | |
| CSV-Protokoll | true | Common\Files\SpecMatchCopier\journal_<Konto>_<magic>.csv |
Einrichtung
- Kopieren Sie den EA in beide Terminals. Diese müssen unter demselben Windows-Benutzer laufen, da der Ordner „Common\Files“ diesem Benutzer gehört.
- Fügen Sie den EA im Master-Terminal einem beliebigen Chart mit dem Modus „Master“ hinzu.
- Fügen Sie den EA in jedem Empfänger-Terminal zu einem beliebigen Chart mit dem Modus „Receiver“ und demselben Kanal hinzu.
- Aktivieren Sie den Algo-Handel in den Empfängerterminals.
- Eröffnen Sie eine kleine Position auf dem Master-Terminal. Im Empfänger-Fenster werden die Kopie und die Lot-Umrechnung angezeigt.
Strategietester
Der Strategietester verfügt über kein zweites Terminal. Im Tester führt der EA daher einen simulierten Master aus:
- Er eröffnet, modifiziert, schließt teilweise und schließt alle paar Bars virtuelle Positionen, wobei jede so dimensioniert ist, dass sie bei ihrem Stop-Loss etwa 1 % des Guthabens verliert und höchstens 10 % des Guthabens als Margin verwendet
- Die virtuellen Positionen werden niemals als Orders gesendet
- Er kopiert diese virtuellen Positionen mit dem ausgewählten Lot-Modus und allen Vorhandelsprüfungen auf das Testerkonto
So können Sie die Kopierlogik und die Lot-Umrechnung ohne zweites Terminal nachvollziehen. Es handelt sich nicht um eine Handelsstrategie, und die Testergebnisse sagen nichts über Gewinne aus.
Einschränkungen (bitte vor dem Kauf lesen)
- Nur auf demselben PC: Master und Empfänger müssen auf demselben Windows-PC oder VPS unter einem Windows-Benutzer laufen. Das Kopieren über das Internet wird nicht unterstützt.
- Der in MQL5 integrierte VPS kann das Programm nicht ausführen. Jedes migrierte Terminal verfügt über einen eigenen Speicher.
- Nur von MT5 zu MT5. Pending-Orders werden nicht kopiert; eine Pending-Order wird erst kopiert, sobald sie ausgeführt wird und zu einer Position wird.
- Geschlossene Märkte: Befindet sich das Symbol des Empfängers außerhalb seiner Handelssitzung, wird nichts gesendet. Der Kopierer wartet auf die Eröffnung der Sitzung und kopiert dann die noch ausstehenden Daten. Eine neue Position unterliegt weiterhin der Einschränkung „Überspringen, wenn sich der Kurs bewegt hat“. Ein Schlussgeschäft, das der Master getätigt hat, während der Markt des Empfängers geschlossen war, wird bei Eröffnung dieses Marktes zum aktuellen Kurs ausgeführt.
- Geschwindigkeit: Gemessen an Demokonten stimmte die Position des Empfängers 0,2 bis 1,1 s nach dem Handel des Masters mit diesem überein (Median 0,3 s, 60 Messungen; der Fall mit 1,1 s betraf die gleichzeitige Schließung von 10 Positionen auf einem Netting-Konto). Das sind 100 ms Abfragezeit zuzüglich der Ausführungszeit des Brokers. Kopien werden zu den eigenen Kursen des Empfängers ausgeführt, sodass sie von den Kursen des Masters abweichen können, insbesondere im Zusammenhang mit Nachrichten.
- Stop-Loss- und Take-Profit-Niveaus:
- Wenn beide Symbole in derselben Währung notiert sind, werden die genauen Niveaus kopiert.
- Andernfalls, zum Beispiel bei XAGUSD zu XAGEUR, werden die Niveaus entsprechend dem Kursverhältnis skaliert.
- Bei einem Netting-Empfänger werden SL/TP nur kopiert, wenn alle Master-Positionen für dieses Symbol dieselben Niveaus verwenden.
- Positionen, die Sie auf dem Empfängermanuell schließen oder reduzieren, bleiben unverändert. Sie werden niemals wieder eröffnet.
- Empfänger länger als 48 Stunden offline: Der Master führt 48 Stundenlang genaue Aufzeichnungen. Eine Kopie, deren Master-Position zuvor geschlossen wurde, wird nicht automatisch geschlossen. Sie wechselt mit einer Warnmeldung in den Status „HOLD“, und Sie schließen sie manuell.
- Stop-Niveaus bei Eröffnung abgelehnt: Wenn der Broker den Stop-Loss oder Take-Profit einer neuen Kopie ablehnt (ungültige Stops, z. B. ein Stop-Niveau, das aufgrund von Nachrichten erweitert wurde), wird die Kopie abgelehnt und nicht erneut versucht. Im Panel wird dies als „REFUSED“ angezeigt.
- Begrenzte Kopien: Wenn eine Kopie durch „Max. Lot“ oder das maximale Volumen des Brokers begrenzt ist, reduziert eine Teilschließung beim Master die Kopie nur dann, wenn das neue skalierte Volumen unter dem offenen Volumen liegt. Bis dahin bleibt die Kopie an der Obergrenze.
- Kein Risikomanagement: Der Kopierer begrenzt weder den Drawdown noch den täglichen Verlust und verwaltet keine Konten. Er kopiert lediglich die Handlungen des Masters.
- Testumgebung:
- Live-Test mit MetaQuotes-Demo-Konten: USD-Master, EUR-Hedging-Empfänger, USD-Netting-Empfänger.
- Der Master wurde zudem auf einem USD-Netting-Konto getestet, einschließlich Einzahlungen, einer Umkehrung um ein Geschäft, einer teilweisen Glattstellung und einer vollständigen Glattstellung.
- Suffix-Symbole, 1-Unzen-Gold- und Cent-Konten werden durch Unit-Tests mit synthetischen Broker-Spezifikationen abgedeckt, nicht durch Live-Konten.
- Bitte testen Sie das System bei Ihren Brokern auf Demokonten, bevor Sie echtes Geld kopieren.
