Beta-Version der MetaTrader 4 IDE mit neuem MQL4 Compiler und Editor

 

Beginn des Themas:

Unten ist die Beta-Version der IDE, die gleiche für MetaTrader 4/MQL4 und MetaTrader 5/MQL5. Dies ist eine Vorabversion zur öffentlichen Überprüfung.

Was sind die Unterschiede zur alten Version von MQL4?

  • Die Priorität der logischen AND/OR-Operationen wurde geändert. Jetzt ist alles wie in klassischem C/C++.

  • Einführung einer verkürzten Auswertung logischer Ausdrücke. Jetzt werden bei der Auswertung eines logischen Ausdrucks die verbleibenden Unterausdrücke nicht ausgewertet. Wie in C/C++.

  • Der Switch-Operator verwendet jetzt nur noch Integer-Werte. Zuvor konnte man echte verwenden.

  • Sie können in Variablennamen keinen Punkt verwenden. Außerdem können Sie die Zeichen '@', '$' und '?' nicht in Variablennamen verwenden.

  • Die Anforderungen an die Startfunktion wurden verschärft. Zuvor konnten Sie in der Startfunktion Parameter angeben. Jetzt müssen alle Einstiegspunkte init, start, deinit, OnInit, OnStart, OnTick, OnTimer usw. genau ihren Signaturen entsprechen

  • Aufgrund der Erweiterung der Schlüsselwortmenge können wir keine Namen wie short, long, float, const, virtual, input, delete, new, do, char verwenden.

  • Importierte dll-Funktionen können nun keine String-Arrays als Parameter annehmen. Wie in MQL5

  • Jetzt erschienen die vordefinierten Variablennamen _Period, _Symbol, _LastError, _CriticalError, _StopFlag, _Point, _Digits, _UninitReason, _RandomSeed, die mit einfachen Variablen kollidieren können, die in bestehenden Quellen mit denselben Namen deklariert sind

  • Der Datentyp datetime wurde zu 8 Bytes wie in MQL5.

Die Unterschiede sind nicht gravierend und können im Code leicht behoben werden. Im Gegenzug stehen uns viele MQL5-Funktionen zur Verfügung, ebenso wie die Geschwindigkeit der Ausführung und eine viel strengere Qualitätskontrolle.


Wir planen, im Laufe des nächsten Monats öffentliche Tests durchzuführen, um so viel Feedback wie möglich zu sammeln und die Entwickler vorzubereiten.

Diskussion im MQL5-Forum: https://www.mql5.com/ru/forum/13651

Dateien:
 

Das hat mich am meisten gestresst:

Renat:

Importierte DLL-Funktionen können jetzt keine String-Arrays als Parameter akzeptieren. Wie in MQL5

Warum ist es unmöglich, die Kompatibilität aufrechtzuerhalten? Müssen Sie es noch einmal umschreiben? Bleiben die MQL4-String-Arrays erhalten? Wenn sie verbleiben, ist unklar, wie Sie es verboten haben und warum?
 
Es ist nur eine Frage der Übertragung auf eine DLL.
 
Renat:

Diskussion im MQL4-Forum: https://www.mql5.com/ru/forum/13651

:)
 
Können wir das MT4-Forum wirklich wie eine Sektion des MT5-Forums gestalten?
 
Früher gab es beim Kompilieren keine Warnungen, wenn die Namen von globalen und lokalen Variablen übereinstimmten, aber jetzt gibt es eine Warnung: "declaration of 'dist' hides global declaration at line 63", und diese Warnung wird auch ausgegeben, wenn die Namen von formalen Funktionsparametern und die Namen von globalen Variablen übereinstimmen. Ist sie kritisch und kann sie das Verhalten des Programms beeinträchtigen? Oder ist sie rein stilistisch falsch, damit z.B. in komplexen Projekten keine Verwirrung entsteht? (Ich bin bereits daran gewöhnt, den Geltungsbereich von Variablen im Auge zu behalten, und nenne oft Variablen mit demselben Namen, die demselben Zweck dienen)
 
zenz:
... Ist dies kritisch und könnte sich auf das Verhalten des Programms auswirken...?
Das Verhalten des Programms wird sich nicht ändern. Wenn eine Variable in 4ka fehlerhaft verwendet wurde, bleibt sie auch im neuen Compiler erhalten.
 
Ich habe die Datei im neuen Editor kompiliert und sie auf MT4.509 übertragen - sie wurde gelöscht... :(
 
TarasBY:
Ich kompilierte die Datei mit dem neuen Editor und schob sie auf MT4.509 - sie wurde gelöscht... :(

Das ist logisch, da das alte Terminal nichts über das neue Sprachformat weiß.

Bislang haben wir nur einen Editor und einen Compiler für erste Tests freigegeben. In ein paar Wochen werden wir eine Beta-Version des neuen Terminals veröffentlichen, die mit dem neuen Programmformat arbeiten kann.

Ich empfehle, die Links im Originalbeitrag zu lesen - sie decken praktisch alles ab.

 
Renat:

Das ist logisch, da das alte Terminal nichts über das neue Sprachformat weiß.

Bislang haben wir nur einen Editor und einen Compiler für erste Tests freigegeben. In ein paar Wochen werden wir eine Beta-Version des neuen Terminals veröffentlichen, die mit dem neuen Programmformat arbeiten kann.

Ich empfehle, die Links im Originalbeitrag zu lesen - sie decken fast alles ab.


Ich habe es mir noch nicht angeschaut, aber es wäre besser, einen Tester wie MT5 zu machen, mit Anführungszeichen :), und es würde nicht schaden, einen Tester an die Prozessor-Ressourcen anzuhängen.
 
M2012K:

Ich habe es noch nicht gesehen, aber es wäre besser, wenn sie einen Tester wie MT5 machen würden, mit Anführungszeichen :), und es würde nicht schaden, einen Tester an die Prozessorressourcen anzuhängen.


Erinnern Sie sich an den Zeichentrickfilm "Porridge from the axe"? ;)))

Grund der Beschwerde: