Datenaustausch zwischen zwei MT4-Terminals? - Seite 4

 

Früher habe ich eine solche Verbindung zwischen Terminals über WinAPI hergestellt. Die Liste der geöffneten Fenster würde alle laufenden MT4-Terminals anzeigen. Es gab 2 Möglichkeiten, Angebote einzuholen:


1. Lesen von Kursen aus dem "Market Watch"-Steuerelement (Typ ListView) der gefundenen Terminals. Dies kann nur über eine externe DLL erfolgen.

2) Ohne Verwendung einer externen DLL. In jedem Terminal schreibt der gestartete Expert Advisor seine Anführungszeichen (für sein Symbol) in den Textdeskriptor seines Fensters. Und ein Expert Advisor eines anderen Terminals findet dieses Fenster (mit seinem eigenen Symbolnamen) und liest den Kurs.


Es gab einen Nachteil: Wenn die Verbindung mit dem Handelsserver auf einem der Terminals unterbrochen wird, weiß der Expert Advisor auf dem anderen Terminal nichts davon. Um eine solche Situation zu vermeiden, sollten die Experten auf jedem Terminal die aktuelle Zeit in einen Textdeskriptor eines Fensters schreiben (die zweite Variante kann in ihre Fenster geschrieben werden). Dies geschieht in bestimmten Zeitabständen (z. B. 0,5 Sekunden). Der Expert Advisor eines anderen Terminals liest diese Zeit und vergleicht sie mit seiner eigenen Zeit.

 
Meat:

Früher habe ich eine solche Verbindung zwischen Terminals über WinAPI hergestellt. Die Liste der geöffneten Fenster würde alle laufenden MT4-Terminals anzeigen. Es gab 2 Möglichkeiten, Angebote einzuholen:


1. Lesen von Kursen aus dem "Market Watch"-Steuerelement (Typ ListView) der gefundenen Terminals. Dies kann nur über eine externe DLL erfolgen.

Könnten Sie ein wenig mehr ins Detail gehen, das ist sehr interessant. Ich wäre Ihnen sehr dankbar.
 
Sergey_Murzinov писал (а): Ein wenig mehr Details können Sie, es ist sehr interessant. Ich wäre Ihnen sehr dankbar.
Leider habe ich den Quellcode der DLL (und der DLL selbst) im Moment nicht zur Hand. Aber ich habe den allgemeinen Algorithmus hier beschrieben: https://www.mql5.com/ru/forum/107435/page3

Wenn Sie mehr Details benötigen, können Sie mit Hilfe einer Suchmaschine (z. B. "get text from ListView") ein fertiges Design im Internet finden.

 

Ich habe eine solche Verbindung über Dateien hergestellt (bis zu 5 Terminals) und keine Verzögerungen festgestellt.

Die Zeit, die für die Ausführung eines Geschäftsvorgangs benötigt wird, ist um mehrere Größenordnungen länger als die Zeit, die für den Informationsaustausch benötigt wird.

 
komposter:

Ich habe eine solche Verbindung über Dateien hergestellt (bis zu 5 Terminals) und keine Verzögerungen festgestellt.

Die Zeit, die für die Ausführung eines Geschäftsvorgangs benötigt wird, ist um mehrere Größenordnungen länger als die Zeit, die für den Informationsaustausch benötigt wird.

Ich verstehe, dass es schon mehr als einen Monat her ist, aber vielleicht...

Sie haben das Thema der Terminalanbindung über Dateien erwähnt, das ist das, was ich für mich umsetzen möchte. Ich bin jetzt seit zwei Tagen in den Foren unterwegs, habe aber immer noch nicht herausgefunden, welchen Weg ich einschlagen soll. Alles, was ich brauche, ist das Kopieren einer geschriebenen Datei von einem Terminal zu anderen Terminals (Experten/Dateien). Ich bin kein Programmierer, ich weiß nicht, wie man das macht. Ich habe eine ShellExecuteA Funktion gefunden, sie kann eine externe Anwendung von einem Indikator aus ausführen, aber wenn es möglich ist, gibt es eine Möglichkeit, Dateien von einem EA zu einem anderen (nicht MQL) zu kopieren, ohne eine zusätzliche Bat-Datei zu erstellen. Bitte helfen Sie mir, vielleicht gibt es einen Link zu fertigen Skripten. Ich habe vielleicht selbst Schwierigkeiten, es zu verstehen, DLL und WinAMI sind für mich noch ein unbekanntes Thema. Vielen Dank im Voraus.

 
Ich frage mich, warum 2 DCs, die zwei positiv korrelierte Paare nehmen, das gleiche Ergebnis erhalten.
 
iskatel писал (а):П Ich weiß, es ist schon über einen Monat her, aber vielleicht... Sie haben hier das Thema der Verknüpfung von Terminals über Dateien erwähnt, das ist etwas, das ich für mich selbst umsetzen möchte. Ich bin jetzt seit zwei Tagen in den Foren unterwegs, habe aber immer noch nicht herausgefunden, welchen Weg ich einschlagen soll. Alles, was ich brauche, ist das Kopieren einer geschriebenen Datei von einem Terminal zu anderen Terminals (Experten/Dateien). Ich bin kein Programmierer, ich weiß nicht, wie man das macht. Ich habe eine ShellExecuteA Funktion gefunden, sie kann eine externe Anwendung von einem Indikator aus ausführen, aber wenn es möglich ist, gibt es eine Möglichkeit, Dateien von einem EA zu einem anderen (nicht MQL) zu kopieren, ohne eine zusätzliche Bat-Datei zu erstellen. Bitte helfen Sie mir, vielleicht gibt es einen Link zu fertigen Skripten. Ich habe selbst Schwierigkeiten, es zu verstehen, denn DLL und WinAMI sind für mich immer noch ein unbekanntes Thema. Vielen Dank im Voraus.

Sehen Sie hier, wie es umgesetzt wird: "Automatische Optimierung eines Handelsroboters im realen Handel".

Kopieren mit ShellExecuteA.

 
xrust:
Ich frage mich, warum 2 DCs, die zwei positiv korrelierte Paare nehmen, das gleiche Ergebnis erhalten.

2 DCs, das ist aus Lebenserfahrung " setze nicht alles auf eine Karte", was auch immer: Probleme beim Abheben, Server hängt sich auf. Ich bin sicher, Sie wissen mehr über solche Situationen als ich. Sie suchen nach Skripten, um ihre Arbeit zu automatisieren. Ich habe nicht wirklich 2, ich habe mehr. Ich mag es, manuell zu handeln, und während ich ein und dieselben Aktionen wiederhole, können Sie sich irgendwo irren. Und die Computer an den verschiedenen Terminals führen die Operationen viel schneller aus als ich. Aber es sieht so aus, als hätte ich bereits gefunden, wonach ich gesucht habe. Vielen Dank für Ihr Forum, gute Arbeit.

Übrigens muss ich gestehen, dass ich nicht weiß, was "positiv korrelierte Paare" sind. Von dem ganzen Satz kenne ich nur das Wort "Ergebnis".

Vielen Dank für die Antworten.

 
Das System ist seit langem eingeführt...
mit den Einzelheiten vertraut machen wollen... klopfen Sie an stu_dent [@]mailcan.com
 
DentStu:
Das System ist seit langem eingeführt...
mit den Einzelheiten vertraut machen wollen... klopfen Sie an stu_dent [@]mailcan.com

Ja, das habe ich bereits. Aber trotzdem danke.

Grund der Beschwerde: