Diskussion zum Artikel "Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4" - Seite 2
Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
ZY Ich möchte auch in der Lage sein, Ihre Bibliothek in Virtual auszuführen. Zu diesem Zweck benötige ich Zugriff auf den MT4-ähnlichen Teil der Bibliothek.
Es ist mir gelungen, sie auszuführen.
D.h. das gesamte Ereignismodell der Bibliothek funktioniert auch in der virtuellen Umgebung.
Ich habe eine Variante Ihrer Bibliothek geschickt, die im MT5 über Ihre MT4-Style-Logik funktioniert.
Der Punkt ist, dass plattformübergreifende Bibliotheken eine viel höhere Wahrscheinlichkeit der Arbeit in MQL4-Stil Teil der Bibliothek als in MQL5-Stil haben. Wenn ich plattformübergreifende Bibliotheken verwende, ziehe ich es daher vor, ihre Logik im MQL4-Stil in MT5 zu verwenden. Sie ist in MT5 viel zuverlässiger.
Ich denke, dass Ihre Logik im MQL5-Stil in MT5 lange braucht, um Fehler zu entdecken, während der MQL4-Stil zwar Fehler hat, aber nur eine minimale Anzahl und keine kritischen.
In dieser Bibliothek gibt es keine Aufteilung der Logik in MQL5 und MQL4. Sie arbeitet mit dem tatsächlichen Zustand und den tatsächlichen Änderungen des Zustands der Handelsumgebung. Reine MQL5-OnTradeXXX-Funktionen werden nicht verwendet - alles wird aus dem Zustand der Handelsumgebung übernommen. Das heißt, es handelt sich nicht um ein ereignisbasiertes Modell. Deshalb sage ich - die Logik ist die gleiche, die Implementierungen sind leicht unterschiedlich aufgrund der Unterschiede in den notwendigen Funktionen für die Arbeit mit der Umgebung.
In Ihrer Bibliothek ist alles der Portierung von MQL5-Stil auf MQL4-Stil untergeordnet, während hier - in dieser Bibliothek - eher das Gegenteil der Fall ist - MQL5-Stil (als flexibler) wird auf MQL4 portiert. So bietet die Bibliothek ein wenig mehr für MQL4 als die Standard-MQL4-Funktionen - zum Beispiel hat es eine ähnliche PositionID für MQL4, hier können Sie während der Arbeit (nicht bei der Berechnung der Geschichte) herausfinden, aus welcher Bestellung die Position erzeugt wurde. Leider gibt es keine Angebote für MQL4 - es gibt keine solchen Daten. Nun, oder ich habe nicht viel darüber nachgedacht....
Ausgehend von all dem oben Gesagten wiederhole ich - es gibt keine Unterteilung in zwei Stile - es ist für beide Plattformen das Gleiche. Daher verstehe ich nicht Ihren Wunsch, zweimal zu MQL4 konvertieren, was bereits konvertiert wurde.
Auf der Grundlage all der oben genannten, wiederhole ich - es gibt keine Aufteilung in zwei Stile - es ist das gleiche für beide Plattformen. Daher verstehe ich Ihren Wunsch nicht, zweimal in MQL4 zu konvertieren, was bereits konvertiert wurde.
Das Missverständnis ist nur in der Terminologie. Ihre Bibliothek für MT4 ist ein Wrapper, der in MQL4 geschrieben ist. Dies ist MT4-Stil. Das ist der Teil, den ich brauchte. Tatsächlich habe ich es getan.
Das Missverständnis liegt nur in der Terminologie. Ihre MT4-Bibliothek ist ein in MQL4 geschriebener Wrapper. Dies ist MT4-Stil. Das ist der Teil, den ich brauchte. Tatsächlich habe ich es getan.
Hallo Artem. ich habe Probleme mit dieser Bibliothek, ich versuche sie in MQL4 zu verwenden.
Gestern habe ich sie mit meinem EA im Tester verbunden und sogar Nachrichten über das Öffnen oder Schließen von Positionen erhalten. Aber heute habe ich das, was ich für den Tester hatte, auf einen neuen EA übertragen, ohne Schaltflächen zum Öffnen von Positionen, und ich versuche, eine Meldung über das Öffnen oder Schließen von Positionen zu erhalten, aber ich bekomme sie nicht. Und nach meinen Vorstellungen muss ich ein Ticket mit Position, Preis und Zeit bekommen. Ich konnte dies nicht einmal im Tester bekommen.
Und das Verblüffendste ist, dass ich jetzt meine Tastensonde auf die Karte gesetzt habe..... Es kommen keine Meldungen durch. Wenn ich ihn wieder in das Testgerät stecke, funktioniert alles.
ps; Ich habe es herausgefunden. Es ist notwendig, OnChartEvent mit benutzerdefinierten Ereignis zu aktivieren.
Und das Verblüffendste ist, dass ich jetzt meine Sonde mit Tasten auf die Karte gesetzt habe..... Es kommen keine Meldungen durch. Ich habe es wieder in den Tester gesetzt, alles funktioniert.
Entfernen Sie alle Verweise auf den Timer aus dem EA - die Bibliothek erstellt einen eigenen Timer für ihn und arbeitet darin. Alles ist der Einfachheit und Bequemlichkeit halber gemacht.
Entfernt den Timer, eingefügt OnChartEvent in dieser Form. Die Schaltflächensteuerung wird wahrscheinlich nicht benötigt, und das Benutzerereignis wird meiner Meinung nach irgendwo in den Weiten der Bibliothek erstellt. Aber ich habe nicht das Ergebnis erhalten.
Ich habe den Timer entfernt und OnChartEvent in dieses Formular eingefügt. Die Schaltflächensteuerung wird wahrscheinlich nicht benötigt, und das benutzerdefinierte Ereignis wird meiner Meinung nach irgendwo in den Weiten der Bibliothek erstellt. Aber ich habe nicht das Ergebnis erhalten.
Artem, sagen Sie mir bitte, welche Rolle der hervorgehobene Codeabschnitt spielt
Wie kann dieser Code ausgeführt werden, wenn der Timer nicht aktiviert ist?
Aber wenn dieser Codeabschnitt gelöscht wird, werden die Ereignismeldungen nicht gedruckt. Aber alles funktioniert mit ihm.
Und ich würde gerne ein Ticket, Preise und möglicherweise einige andere Eigenschaften von Positionen und Aufträgen zusammen mit der Ereignismeldung erhalten.