MetaEditor HilfeProgramme entwickelnKompilieren

Kompilieren

Durch das Kompilieren wird ein Quellcode eines MQL4/MQL5-Programms in die Maschinensprache zu übertragen. Das Ergebnis ist eine ausführbare Programmdatei (*EX4 oder *.EX5), die auf einer Handelsplattform gestartet werden kann.

Das Kompilieren besteht aus mehreren Etappen:

  • Lexikalische Analyse
  • Syntaktische Analyse
  • Semantische Analyse
  • Codegenerierung
  • Codeoptimierung
  • Jede Datei (*.MQ4, *.MQ5 oder *.MQH) kann kompiliert werden, aber eine ausführbare Datei (*.EX4 oder *.EX5) kann nur durch das Kompilieren einer direkten MQ4/MQ5-Programmdatei oder eines Projektes. erhalten werden.
  • Die ausführbare Datei wird in einem eigenen Format erstellt, das den ursprünglichen Programmalgorithmus verbirgt.
  • Kompilierte EX4/EX5-Dateien können ohne MQ4, MQ5 und MQH-Dateien weitergegeben werden. Ein Debuggen ist ohne sie aber nicht möglich. Es wird auch nicht empfohlen, ausführbare EX4/EX5-Dateien weiterzugeben, die während eines Debugging-Prozesses erhalten wurden.

Um eine ausführbare Programmdatei zu erhalten, öffnen Sie die Haupt-Quelldatei oder das Projekt mit dem Navigator und klicken Sie auf Kompilieren Kompilieren im Menü Datei oder F7. Das Protokoll des Kompilieren wird im Reiter Fehler des Fensters der Toolbox angezeigt. Wenn das Kompilieren fehlerfrei abgelaufen ist, können Sie das erhaltene Programm auf der Handelsplattform ausführen.

Kompilierung des Programms und Anzeigen der Ergebnisse im Reiter Fehler

Wenn es Fehler oder Warnungen gibt, werden diese im Reiter Fehler angezeigt.

Kompilierungsfehler sind gekennzeichnet mit Fehler sowohl im Reiter Fehler als auch im entsprechenden Teil des Codes. Es wird keine ausführbare Programmdatei (*EX4 oder *.EX5) erzeugt, wenn er auftritt. Um zu dem fehlerhaften Befehl zu gelangen, klicken Sie zweimal auf den Fehler oder klicken Sie auf Zur ZeileWählen Sie im Kontextmenü den Befehl Zur Zeile gehen. Die Zeichenkette und die Spalte, in der ein Fehler erkannt wird, werden in den entsprechenden Spalten angezeigt.

Warnungen, die mit Warnung kennzeichnen Stellen mit möglichen Fehlern. Dies sind die Teile des Quelltexts, die falsch interpretiert werden können (z.B. ein impliziter Werttypwechsel). Sie können zu einer solchen Zeichenkette des Codes genau so gelangen, wie bei Fehlern.

Information Icons stehen für verschiedene Info-Meldungen, z.B. Meldungen über Include-Dateien, auf die das Programm bei der Kompilierung zugegriffen hat.

Kompilierungsmodus #

Der Editor bietet zwei Kompilierungsmodi: mit maximaler Codeoptimierung und ohne Optimierung.

Die Zeit, die für die Erstellung einer ausführbaren Datei benötigt wird, wird erheblich reduziert, wenn die Optimierung deaktiviert ist. Verwenden Sie diesen Modus während der aktiven Entwicklungsphase, wenn Sie den geschriebenen Code schnell überprüfen wollen. Schalten Sie dann während der endgültigen Programmkompilierung den maximalen Optimierungsmodus ein, um die beste Leistung zu erzielen.

Um zwischen den Modi zu wechseln, verwenden Sie das Menü "Erstellen" oder das Befehlsmenü "Kompilieren" in der Symbolleiste:

Steuerung des Kompilierungsmodus

Der Parameter "Maximale Optimierung in den Einstellungen Projekteinstellungen hat die gleiche Funktion.

  • Die vollständige Beschreibung der Kompilierungsfehler finden Sie in der Hilfe zu Sprache von MQL4/MQL5.
  • Trotz Warnungen wird eine ausführbare Datei erzeugt. Die Warnungen sollten jedoch nicht ignoriert werden, da sie auf mögliche Fehler im Code hinweisen.
  • Während der Kompilierung wird eine ausführbare Datei (*.EX4 oder *.EX5) im gleichen Verzeichnis wie die Haupt-Quelldatei des Programms (*.MQ4 oder *.MQ5) oder ein Projekt. erzeugt.
  • metaeditor.exe kann als externer Compiler in fremden IDEs. verwendet werden.

Kompilieren für Prozessoren mit unterschiedlichen Architekturen #

Moderne Prozessoren bieten eine Reihe von fortschrittlichen Anweisungen, die mathematische Berechnungen erheblich beschleunigen: AVX, AVX2, AVX512, und FMA3. Diese Befehle werden im MQL5-Compiler unterstützt, um das Erzeugen von effizienterem und schnellerem Code zu ermöglichen. Die Verwendung dieser Befehle ist optional:

  • Wenn Sie eine Anwendung für sich selbst erstellen und sicher sind, dass sie auf einem Prozessor läuft, der die gewünschte Architektur unterstützt, können Sie sie mit erweiterten Anweisungen kompilieren. Dadurch wird eine höhere Leistung erzielt.
  • Wenn Sie ein Programm zur öffentlichen Nutzung oder zum Verkauf erstellen, kompilieren Sie es mit dem regulären Basisbefehlssatz X64 Regular. Dadurch wird die maximale Kompatibilität der Anwendung mit der Nutzerhardware gewährleistet.

Um herauszufinden, welche Befehle von Ihrem Prozessor unterstützt werden, verwenden Sie das kostenlose Hilfsprogramm CPU-Z. Öffnen Sie nach der Installation den Abschnitt "CPU" und überprüfen Sie das Feld "Anweisungen":

Verifique qué instrucciones admite su procesador usando CPU-Z

Um eine Prozessorarchitektur auszuwählen, verwenden Sie das Kompilierungsmenü. Klicken Sie anschließend auf 'Kompilieren'. Sie können die Architektur auch in den MetaEditor-Einstellungen und in einzelnen Einstellungen von Projekten angeben.

Wählen Sie die Prozessorarchitektur aus, für die das Programm kompiliert werden soll.

Wenn die Anwendung für eine Architektur kompiliert wurde, die vom Prozessor des Nutzers nicht unterstützt wird, wird bei dem Versuch, sie auszuführen, folgende Meldung im Protokoll der Plattform ausgegeben:

your CPU architecture does not allow to run the file '<file-name>.ex5': AVX512 required, you have AVX2 only

Restriktionen:

  • Programme, die für Prozessoren mit AVX512 kompiliert wurden, werden im MQL5 Cloud Network und in der integrierten VPS noch nicht unterstützt.
  • Nur unter X64 Regular kompilierte Dateien können in den Market hochgeladen werden. Dies ist erforderlich, um eine maximale Anwendungskompatibilität mit der Nutzerhardware zu gewährleisten.