Diskussion zum Artikel "Kopieren des Handels aus MetaTrader 5 nach MetaTrader 4"

 

Neuer Artikel Kopieren des Handels aus MetaTrader 5 nach MetaTrader 4 :

Ist es möglich, heute auf einem echten MetaTrader-5-Konto zu handeln? Wie organisiert man solchen Handel? Dieser Beitrag behandelt die Theorie hinter diesen Fragen und die Arbeitscodes zum Kopieren von Abschlüssen aus dem MetaTrader 5 Terminal nach MetaTrader 4. Dieser Beitrag wird sowohl für Entwickler von Expert Advisors als auch für praktizierende Händler hilfreich sein.

Installieren Sie MetaTrader 4 im Verzeichnis C:\Programme\MetaTrader 5\MQL5\Files\.

Führen Sie den kompilierten Expert Advisor Translator positions auf einem beliebigen Diagramm in MetaTrader 5 aus (die Arbeit des Expert Advisors hängt nicht von dem Diagramm, auf dem er ausgeführt wird, ab).

 

Abbildung 2. Translator positions in MetaTrader 5

Autor: Nikolay Demko

[Gelöscht]  

Vielleicht das interessanteste Thema für heute.

Zumindest für mich persönlich ist es der interessanteste Artikel von allen.

 

Ich stimme zu, das Thema ist im Moment relevant. Es erlaubt nicht zu warten, bis DCs zu schwingen.

 

Nützlicher und relevanter Artikel, vielen Dank an den Autor!


Eine verwirrende Sache:

Чтобы не пропустить момент изменения позиции, следящая система должна быть реализована в функции OnTimer(), т.к. следить придется за всеми инструментами сразу, а тики приходят на разных символах в разное время. Также требуется передать сигнал об изменении содержимого файла.

Warum nicht OnTrade()?

[Gelöscht]  
komposter:

Warum nicht OnTrade()?

Ich stimme zu, eine normale OnTrade()-Verarbeitung ist notwendig, ebenso wie ein fortgeschrittener Tamer. Ihr Fehlen ist ein Fehler in jedem EA, vor allem in einem mult...

Und der Autor lehnte Bibliotheken umsonst ab, man kann viel mehr mit ihnen machen (ich spreche nicht von spezialisierter Software).

Obwohl es richtig ist, haben wir mehr Raum für Phantasie :)

PS

Ich würde auch gerne Beispiele für verschiedene Momente sehen, nicht nur Mittelwertbildung und Pyramidenbildung (ich habe nur diese gesehen, vielleicht bin ich nicht aufmerksam).

Ich bin hiervon ausgegangen:

1.2 Volumen der Handelspositionen

Sehen wir uns im Detail an, ob es einen Unterschied macht, welchen Auftrag man schließt? Wird sich das nicht auf den Gewinn auswirken? Ein Beispiel: Wir haben zwei Aufträge, die zu unterschiedlichen Zeiten eröffnet und zu unterschiedlichen Zeiten geschlossen wurden, die sich aber in der Laufzeit überschneiden. Versuchen wir also, eine Handelsposition im Auftragsbuchungssystem nachzubilden.

Berechnen wir anhand von Varianten, was mit dem Gewinn passiert, wenn wir die Order-Schlusslevels stellenweise ändern:

Typ
Volumen
Eröffnungsniveau
Schlussstand
verkaufen0.11.393881.38438
verkaufen0.11.38868
1.38149
[Gelöscht]  

Ich möchte ein paar Worte über DLL und zusätzliche Software hinzufügen.

Im Moment denke ich über eine Variante nach, die es erlaubt, Signale zu übertragen und Informationen mit Hilfe von DLL auszutauschen (mit der obligatorischen Möglichkeit, mit ini-Dateien zu arbeiten).

Und die maximale Aufgabe, die ich sehe (mein langjähriger Traum), ist es, einen Server zu entwickeln, dessen Hauptaufgabe es sein wird, Informationen von verschiedenen Plattformen zu sammeln und zu verarbeiten (es wäre auch gut von mehreren Clients).

 
Interesting:

Ich stimme zu, das Fehlen eines Timers ist ein Fehler in jedem Maulwurf....

Und es ist ein Fehler des Autors, die Bibliotheken aufzugeben, man kann viel mehr mit ihnen machen (ich spreche nicht von spezialisierter Software).

Obwohl es richtig ist, haben wir mehr Raum für Phantasie :)

PS

Ich würde auch gerne Beispiele für verschiedene Momente sehen, nicht nur Mittelwertbildung und Pyramidenbildung (ich habe nur diese gesehen, vielleicht bin ich nicht aufmerksam).

Ich bin hiervon ausgegangen:

1.2 Volumen der Handelspositionen

Sehen wir uns im Detail an, ob es einen Unterschied macht, welchen Auftrag man schließt? Wird sich das nicht auf den Gewinn auswirken? Ein Beispiel: Wir haben zwei Aufträge, die zu unterschiedlichen Zeiten eröffnet und zu unterschiedlichen Zeiten geschlossen wurden, die sich aber in der Laufzeit überschneiden. Versuchen wir also, eine Handelsposition im Auftragsbuchungssystem nachzubilden.

Berechnen wir anhand von Varianten, was mit dem Gewinn passiert, wenn wir die Order-Schlusslevels an verschiedenen Stellen ändern:

Typ
Volumen
Eröffnungsniveau
Schlussstand
verkaufen0.11.393881.38438
verkaufen0.11.38868
1.38149

Der Punkt dieses Beispiels ist zu zeigen, dass der Gewinn auf das Geld auf die Vorhersage setzen abhängt, in komplexeren Fällen wird die gleiche sein (wollte nur nicht, um den Artikel mit einer großen Anzahl von Beispielen, die die gleiche Sache zu laden).

Was die Bibliotheken betrifft, so bin ich nicht gegen ex5-Bibliotheken, aber ich möchte keine Dlls verwenden, weil das den Endbenutzer abschreckt.

Und wer will schon einen Trojaner mit dem Kauf erhalten. MQ versucht, sich in seiner Politik an die Sicherheit zu halten.

Also bleibe ich einfach bei ihrem Image, denn keine DLL bedeutet, dass der Code sicher ist.

 
komposter:

Nützlicher und relevanter Artikel, vielen Dank an den Autor!


Eine verwirrende Sache:

Warum nicht OnTrade()?

Interessante Idee, alles, was an den Server geht, wird definitiv in OnTrade() angezeigt . Aber es ist nur notwendig zu filtern, um nicht die Anfragen, sondern bereits die Antworten des Servers über die ausgeführte Bestellung in die Datei zu übertragen.

Ich habe nur nicht in diese Richtung gedacht.

[Gelöscht]  
Urain:

Das Wesen dieses Beispiels ist zu zeigen, dass der Gewinn auf das Geld auf die Vorhersage setzen abhängt, in komplexeren Fällen wird die gleiche sein (wollte nur nicht, um den Artikel mit einer großen Anzahl von Beispielen, die die gleiche Sache zu laden).


Es wird nur dann gleich sein, wenn Sie die MT4-Handelsprozesse an MT5 anpassen, ansonsten kann es in bestimmten Situationen Unterschiede geben (und zwar ganz erhebliche).

Es wird nur zwei Beispiele geben: "flipping" und "trimming" (wenn sie kompakt genug geschrieben sind, werden sie nicht viel Platz einnehmen).

Und ich bin mir sicher, dass gerade die Umkehrungen und Verkürzungen die "kniffligsten" und kompliziertesten Aspekte solcher Systeme sind.

Urain:

Was die Bibliotheken angeht, so bin ich nicht gegen ex5-Bibliotheken, aber ich möchte keine Dlls verwenden, weil das den Endbenutzer abschreckt.

Und mal ehrlich, wer will sich schon einen Trojaner mit dem Kauf einfangen. MQ versucht, sich in seiner Politik an die Sicherheit zu halten.

Ich füge also nur hinzu, dass der Code sicher ist, solange es keine DLL gibt.

Was die ex5-Bibliotheken angeht, stimme ich zu (es kann eine gute Lösung sein, eine spezialisierte Klassenbibliothek zu erstellen), aber es gibt ein großes "aber" - Die Funktionalität von Lösungen, die nur auf MQL5 basieren, ist allen Möglichkeiten, die DLL bieten, deutlich unterlegen.

Und das Problem mit der DLL ist einfacher zu lösen, als es vielen Leuten scheint, es gibt zwei Möglichkeiten:

1. die Veröffentlichung des Quellcodes der Bibliothek;

2. Den Quellcode an MQ weitergeben, damit sie ihn prüfen, die Bibliothek kompilieren und sie der Öffentlichkeit zugänglich machen.

PS

Ich würde auch in Erwägung ziehen, die Bilanzinformationen der beiden Plattformen zu synchronisieren (falls möglich, natürlich).

 
Interesting:

Das Gleiche gilt nur, wenn Sie die MT4-Handelsabläufe an MT5 anpassen, ansonsten kann es in bestimmten Situationen Unterschiede geben (und zwar ganz erhebliche).

Es gibt nur zwei Beispiele: "flip" und "cut" (wenn sie kompakt genug geschrieben sind, nehmen sie nicht viel Platz in Anspruch).

Und ich bin mir sicher, dass die Umkehrungen und Kürzungen die "kniffligsten" und kompliziertesten Aspekte solcher Systeme sind.

Was die ex5-Bibliotheken angeht, stimme ich zu (es kann eine gute Lösung sein, eine spezialisierte Klassenbibliothek zu erstellen), aber es gibt ein großes "aber" - Die Funktionalität von Lösungen, die nur auf MQL5 basieren, ist allen Möglichkeiten, die DLL bieten wird, deutlich unterlegen.

Und das Problem mit der DLL ist einfacher zu lösen, als es vielen Leuten scheint, es gibt zwei Möglichkeiten:

1. die Veröffentlichung des Quellcodes der Bibliothek;

2. Den Quellcode an MQ weitergeben, damit sie ihn prüfen, die Bibliothek kompilieren und sie der Öffentlichkeit zugänglich machen.

PS

Ich würde auch in Erwägung ziehen, die Bilanzinformationen der beiden Plattformen zu synchronisieren (natürlich nur, wenn dies möglich ist).

Es wird weder beim Rollover noch beim Cutting einen Unterschied geben, der Unterschied ergibt sich nur aus der Differenz der Kursniveaus zum aktuellen Zeitpunkt und der Ausführungsverzögerung.

Im Idealfall, wenn die Kurse zwischen den MTs gleich sind und die Verzögerung 0 ist, wird der Handel den gleichen Gewinn bringen.

Sie verstehen, worum es geht: Gewinn wird durch Wetten erzielt. Wenn Sie zum gleichen Zeitpunkt, auf beiden Terminals, auf die gleichen Kurse den gleichen Einsatz tätigen, werden Sie den gleichen Gewinn erzielen.

Auf der DLL ist es unwahrscheinlich, dass MQ jeden Code eines Drittanbieters auf seine Sicherheit überprüft, und Compiler wie Delphi oder srp hat nicht jeder. Sie können den Code einer Bibel posten und die kompilierte Datei durch eine andere ersetzen. Also im Moment nur ex5.

 
Urain:

Interessante Idee, alles, was an den Server geht, wird definitiv in OnTrade() angezeigt . Aber es ist nur notwendig zu filtern, um nicht die Anfragen, sondern die Antworten des Servers über den ausgeführten Auftrag in die Datei zu übertragen.

Ich habe einfach nicht in diese Richtung gedacht.

OnTrade ist in der Tat ein idealer Ort für die Verarbeitung von Änderungen in der Liste der Positionen. Sie müssen ihn nur so initialisieren, dass bestehende Trades sofort beim Start kopiert werden (und nicht erst beim nächsten Trade-Event).

Das Filtern von Ereignissen ist sehr einfach - überprüfen Sie die Liste der Positionen und setzen Sie die Verarbeitung nur fort, wenn sich darin etwas geändert hat.