MetaEditor Hilfe

Intelligente Verwaltung

Intelligente Verwaltung

Um die Programmierung zu vereinfachen, bietet MetaEditor verschiedene Werkzeuge von der automatischen Ersetzung von Namen und Tipps zu Funktionen bis hin zu Lesezeichen und Schnelltasten. Mit diesen Werkzeugen können Sie den Prozess des Codeschreibens beschleunigen, die Navigation erleichtern und Fehler vermeiden.

Dieser Abschnitt beschreibt die folgenden Funktionen:

Alle Änderungen können rückgängig gemacht werden durch Ausführen von Rückgängig Rückgängig-Befehl im Menü Bearbeiten oder auf der StandardSymbolleiste oder durch Drücken von Strg+Z.

Automatische Ersetzung von Funktionsnamen

Wenn Sie den Programmcode schreiben, bietet MetaEditor automatisch mögliche Ersetzungsoptionen für integrierte und benutzerdefinierte Funktionen, Konstanten, Variablen, Klassenmitglieder, Schlüsselwörter usw. an. Das beschleunigt das Schreiben des Codes. Sobald Sie beispielsweise die ersten Buchstaben des Funktionsnamens eingeben, öffnet sich sofort eine Liste von Funktionen mit passenden Namen. Wählen Sie die entsprechende Option mit den Pfeiltasten und drücken Sie die Entertaste:

Namensliste

Wenn eine Optionsliste zu groß ist, geben Sie einige weitere Buchstaben des Funktionsnamens ein. Um die Liste manuell aufzurufen, klicken Sie aufNamenliste Namenliste im Menü Bearbeiten oder Strg+Leertaste nach Eingabe der ersten Buchstaben.

Parameter Info

Sie können die Funktionssignatur direkt beim Schreiben des Codes sehen, ohne die Hilfe zu MQL öffnen zu müssen. Stellen Sie dazu den Cursor hinter die öffnende Klammer, die die Beschreibung der Funktionsparameter startet, und klicken Sie dann aufParameter-Info Parameter-Info im Menü Bearbeiten oder Strg+Shift+Space. Informationen zu Parametern und Typ eines Funktionsrückgabewertes werden in Tooltips angezeigt:

Parameter Info

Die folgenden Informationen werden für die Funktion im obigen Bild angezeigt:

  • [1 von 2] bedeutet, dass die Funktion Aufrufoptionen mit unterschiedlichen Parametern hat. Um zwischen ihnen zu wechseln, benutzen Sie die Pfeile auf der Tastatur oder klicken Sie mit der linken Maustaste auf die Promptzeile.
  • bool gibt den Werttyp an, der von einer Funktion zurückgegeben wird.
  • ObjectSetInteger – Funktionsname.
  • (long chart_id, ... ) – Aufzählung der möglichen Funktionsparameter, vor jedem Parameter wird deren Typ angegeben (hier "long"). Der Parameter, auf dem sich der Cursor gerade befindet, wird fett dargestellt.

Zur Definition übergehen

Mit diesem Tool können Sie schnell zu einer Deklaration oder Definition einer ausgewählten Funktion oder Variable navigieren sowie Dateien einbinden ("#include"). Befindet sich eine Deklaration oder Definition eines Parameters in einer anderen Datei, wird diese geöffnet und der Cursor auf die entsprechende Position gesetzt.

Um zu einem Parameter zu gelangen, positionieren Sie den Cursor auf dessen Namen und wählen Sie Zur Definition Zur Definition im Menü Bearbeiten oder Alt+G. Um zu einer Include-Datei zu gelangen, positionieren Sie den Cursor irgendwo in der Zeile, in der er deklariert ist (#include-Direktive) und führen Sie den obigen Befehl aus.

Liste der Funktionen

Mit diesem Tool können Sie eine Liste aller deklarierten Funktionen in der aktuellen Datei sehen. Um die Liste zu öffnen, klicken Sie auf Funktionsliste Funktionsliste im Menü Bearbeiten oder Alt+M.

Liste der Funktionen

Die Funktionsparameter sind in Klammern rechts neben dem Namen angegeben. Um zur Funktion zu gelangen, klicken Sie auf deren Namen in der Liste. Jede Art von Funktionen in der Liste ist durch ein Symbol gekennzeichnet:

  • Funktion – Funktion.
  • Event handling function – Funktion zur Ereignisbehandlung (Ein*).
  • Öffentliche Methode einer Klasse – Öffentliche Methode einer Klasse (public).
  • Geschützten Methode einer Klasse – Methode der geschützten Klasse (protected).
  • Private Methode einer Klasse – Private Methode einer Klasse (private).

Einfügen von Kommentaren

Um die Arbeit mit Kommentaren im Programmcode zu vereinfachen, verwenden Sie eine Reihe von Funktionen aus dem Menü Bearbeiten und der StandardSymbolleiste:

  • Funktionskopf Funktionskopf – Kommentar für eine Funktion einfügen;
  • Blockkommentar Blockkommentar – Symbole eines einzeiligen Kommentars einfügen;
  • Kommentarzeilen Kommentarzeilen – Kommentar "//" am Anfang jeder ausgewählten Zeile einfügen;
  • Zeilen entkommentieren Zeilen entkommentieren – Entfernen von "//"-Kommentarzeichen am Anfang jeder ausgewählten Zeile.

DerBlockkommentarBlockkommentar (Strg+/) fügt einzeilige Kommentarzeichen an der aktuellen Position ein:

//---

DerFunktionskopfFunktionskopf (Strg+.) fügt einen Kommentar für eine Funktion an der aktuellen Cursorposition ein:

//+------------------------------------------------------------------+
//|                                                                  |
//+------------------------------------------------------------------+

Zusätzliche Code-Bearbeitungsfunktionen

Sie können Codefragmente einfach von einem Teil des Programms in einen anderen verschieben. Dazu markieren Sie das Fragment und ziehen es an die gewünschte Position (Drag'n'Drop).

Das Erweiterte Untermenü des Menüs Bearbeiten enthält eine Reihe von Befehlen, die das Bearbeiten des Quellcodes vereinfachen:

  • Zeileneinzug vergrößern Zeileneinzug vergrößern – drei Leerzeichen (Tabulator-Symbol) werden am Anfang der ausgewählten Zeilen eingefügt. Um Leerzeichen in eine einzelne Zeile einzufügen, positionieren Sie den Cursor an den Anfang. Um Leerzeichen in mehreren Zeilen einzufügen, markieren Sie diese vollständig.
  • Zeileneinzug verkleinern Zeileneinzug verkleinern – drei Leerzeichen (Tabulator-Symbol) vom Anfang der ausgewählten Zeilen entfernen. Eine ähnliche Aktion wird mit den Hotkey Shift+Tab erreicht.
  • Groß schreiben Groß schreiben – ändert alle Zeichen einer ausgewählten Phrase in Großbuchstaben. Eine ähnliche Aktion wird durch die Tastenkombination Strg+Shift+U ausgeführt.
  • Klein schreiben Klein schreiben – ändert alle Zeichen einer ausgewählten Phrase in Kleinbuchstaben. Eine ähnliche Aktion wird durch den Hotkey Strg+U ausgeführt.

Arbeiten mit Lesezeichen

Lesezeichen erlauben Ihnen, schnell zu verschiedenen Teilen eines Codes zu springen. Markieren Sie die gewünschten Zeilen mit Lesezeichen und navigieren Sie zwischen ihnen mit den Befehlen aus dem Menü Bearbeiten – Lesezeichen und dem Kontextmenü eines Quellcodes:

  • Lesezeichen de-/aktivieren Lesezeichen de-/aktivieren – aktiviert bzw. deaktiviert ein Lesezeichen auf der aktuellen Zeile in Abhängigkeit vom aktuellen Status. Das gleiche kann mit der Tastenkombination Strg+F2 erreicht werden;
  • Nächstes Lesezeichen Nächstes Lesezeichen – zum nächsten Lesezeichen im aktuellen Code wechseln. Das gleiche bietet die Taste F2;
  • Vorheriges Lesezeichen Vorheriges Lesezeichen – zum vorherigen Lesezeichen im aktuellen Code wechseln. Die gleiche Aktion kann durch Drücken der Tastenkombination Shift+F2 erreicht werden
  • Alle Lesezeichen löschen Alle Lesezeichen löschen – alle Lesezeichen aus dem aktuellen Code entfernen. Das gleiche kann mit der Tastenkombination Strg+Umschalt+F2 gemacht werden.

Der MetaEditor bietet auch benannte Lesezeichen – diejenigen, denen eine digitale ID zugewiesen wurde. Um ein solches Lesezeichen zu setzen, klicken Sie bei gedrückter Strg-Taste auf 0-9. Um zur vorher eingestellten Stelle zu gelangen, drücken Sie Alt und die entsprechende Zahl.

Zur Zeile

Um schnell zu irgendeine Zeile in der Datei zu gelangen klicken Sie auf Zur Zeile Zur Zeile im Abschnitt Search oder drücken Sie Strg+G. Es öffnet sich das folgende Fenster:

Zur Zeile

Das Fenster zeigt die Nummern der ersten und letzten Zeile der aktuellen Datei an. Um zur Zeile zu gelangen, geben Sie deren Nummer darunter ein und klicken Sie auf ОК.

Snippets

Snippets sind kleine Template-Fragmente eines Quellcodes, die eine bestimmte MQL4/MQL5-Sprachkonstruktion beschreiben. Sie machen es einfacher und schneller, einen Quellcode zu schreiben. So können Sie z.B. schnell das Stück eines Programms zu Ihrem Code hinzufügen, um eine Klasse oder eine Schleife zu beschreiben. Geben Sie dazu einfach ein Schlüsselwort ein – 'class' oder 'for'. Der Cursor ändert sich zuSnippet kann hinzugefügt werdenwas bedeutet, dass es nun möglich ist, ein Snippet einzufügen. Drücken Sie Tab und ein Leerzeichen für Klasse oder 'for' Schleife wird entsprechend in einen Programmcode eingefügt.

Beispielsnipptes

Um zwischen aktiven Snippet-Feldern (hier sind dies Name, Klassenkonstruktor und Destruktor) zu wechseln, verwenden Sie Tab und Shift+Tab.

Das Ändern eines aktiven Feldes ändert automatisch den Rest. Beispielsweise werden beim Ändern des Klassennamens auch Konstruktor- und Destruktor-Namen automatisch geändert. Beim Ändern eines Variablennamens in einem der 'for'-Schleifen werden auch die Variablen in seinen anderen Ausdrücken geändert.

Das System der Arbeit mit Snippets erkennt auch bereits beschriebene Strukturen, Klassen, Aufzählungen, Methoden und Funktionen. Positionieren Sie den Cursor innerhalb der Beschreibung der entsprechenden Struktur und drücken Sie Strg+Enter. Danach können Sie mit den Tasten Tab und Shift+Tab zwischen Mitgliedern (Klassen, Strukturen und Aufzählungen) und Argumenten (Methoden und Funktionen) navigieren und diese wie oben beschrieben gemeinsam bearbeiten.

Die folgenden Snippets werden zur Zeit unterstützt:

Schlüsselwort

Wert

#import

Import Deklaration.

OnBookEvent

OnBookEvent Ereignisbehandlung.

OnCalculate

OnCalculate Ereignisbehandlung.

case

'case' Auswahl.

OnChartEvent

OnChartEvent Ereignisbehandlung.

class

Deklarieren einer Klasse

OnDeinit

OnDeinit Ereignisbehandlung.

do

Deklaration einer 'do while'-Schleife

enum

Deklaration einer Enumeration.

for

Deklaration einer 'for'-Schleife.

if

Deklaration der 'if'-Bedingung.

else

Deklaration der 'else'-Bedingung.

OnInit

OnInit Ereignisbehandlung.

OnStart

OnStart Ereignisbehandlung.

struct

Deklarieren einer Struktur.

switch

'switch' Auswahl.

OnTester

OnTester Ereignisbehandlung.

OnTesterInit

OnTesterInit Ereignisbehandlung.

OnTesterPass

OnTesterPass Ereignisbehandlung.

OnTesterDeinit

OnTesterDeinit Ereignisbehandlung.

OnTick

OnTick Ereignisbehandlung.

OnTimer

OnTimer Ereignisbehandlung.

OnTrade

OnTrade Ereignisbehandlung.

OnTradeTransation

OnTradeTransation Ereignisbehandlung.

while

Deklaration einer 'while'-Schleife.

Ressourcen einfügen

Befehle aus dem Menü Bearbeiten – Einfügen erlauben das schnelle Einfügen von Ressourcendateien und können somit die Anwendungsentwicklung erleichtern.

Optionen als #property

Fügt an der aktuellen Position die Direktive #property ein und öffnet sofort die Liste aller Programmeigenschaften verfügbar in der Sprache.

BMP/WAV als #resource

Um ein Bild oder eine Audiodatei zu den Programmressourcen hinzuzufügen, führen Sie diesen Befehl aus und wählen Sie eine BMP- oder WAV-Datei aus (die entsprechende Datei muss sich im Verzeichnis \MQL5 befinden). Die Direktive #resource mit dem richtigen Pfad zur ausgewählten Datei wird an der aktuellen Position des Programms eingefügt.

#resource "\\Images\\image.bmp"

DLL/EX5 als #import

Sie können Funktionen aus einer externen Bibliothek oder einer EX5/EX4-Datei importieren, indem Sie diesen Befehl ausführen und die entsprechende Datei auswählen (die Datei muss sich im Verzeichnis \MQL5 befinden). Ein Paar von #import Direktiven mit dem richtigen Pfad zur ausgewählten Datei wird an der aktuellen Position des Programms eingefügt.

#import "..\Experts\SendNotification.ex5"
 
#import

Fügen Sie eine Beschreibung der importierten Funktionen zwischen den Direktiven hinzu.

MQH als #include

Um eine Include-Datei in den Programmcode einzufügen, führen Sie diesen Befehl aus und wählen Sie eine MQH-Datei aus (die entsprechende Datei muss sich im Verzeichnis \MQL5 befinden). Die Anweisung #include mit dem richtigen Pfad zur ausgewählten Datei wird an der aktuellen Position des Programms eingefügt.

#include <Arrays\Array.mqh>

Ein Satz von Parametern als #property

Um in einen Programmcode einen Satz von Parametern für den Expert Advisor-Test einzufügen, führen Sie diesen Befehl aus und wählen Sie eine SET-Datei aus (die entsprechende Datei muss im Verzeichnis \MQL5 gespeichert sein). Die Direktive #property mit dem richtigen Pfad zur ausgewählten Datei wird an der aktuellen Position des Programms eingefügt.

#property tester_set "\\Profiles\\Tester\\Moving Average.set"

Datei als Binär-Array

Mit diesem Befehl können Sie dem Programmtext eine beliebige Datei in Form eines binären Arrays hinzufügen. Führen Sie den Befehl aus und wählen Sie die gewünschte Datei (die entsprechende Datei muss sich im Verzeichnis \MQL5 befinden). An der aktuellen Position des Programms wird ein Zeichen-Array eingefügt.

Mit dieser Funktion können Sie unter anderem Chartvorlagen mit Expert Advisors oder Indikatoren übertragen: Fügen Sie Ihr Template als Array in den Programmcode ein und speichern Sie sie anschließend mit der Funktion FileSave auf der Festplatte. Danach kann das Template mit der Funktion ChartApplyTemplate auf das gewünschte Diagramm angewendet werden.

//+------------------------------------------------------------------+
//| Script Programm Start Funktion                                   |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- eine Templatedatei als binäres Array
   unsigned char my_template[]=
     {
      0xFF,0xFE,0x3C, ... ,0x00 // the data array in this example is shortened
     };
//--- sichern und verwenden des Template
   if(FileSave("my_template.tpl",my_template))
     {
      Print("Custom template saved in \\MQL5\\Files");
      if(ChartApplyTemplate(0,"\\Files\\my_template.tpl"))
         Print("Custom template applied to the current chart");
      else
         Print("Failed to apply custom template");
     }
   else
      Print("Failed to save custom template");
  }

CSV als Text-Array

Um Daten aus einer Textdatei zum Programmcode hinzuzufügen, führen Sie diesen Befehl aus und wählen Sie eine TXT- oder CSV-Datei aus (die entsprechende Datei muss sich im Verzeichnis \MQL5 befinden). Ein Array von Zeichenketten der gewünschten Dimension mit Daten aus der Datei wird an der aktuellen Programmposition eingefügt:

string data[][3]=
  {
   {"name1","value1"},
   {"name2","value2"},
   {"name3","value3"}
  };

Textkonvertierung

Der MetaEditor ermöglicht es Ihnen, das Format der Quelldaten einfach zu konvertieren. Öffnen Sie die gewünschte Datei, markieren Sie den Text und führen Sie einen der Befehle aus dem Menü Bearbeiten – Konvertieren aus:

  • ASCII in HEX
  • ASCII in Base64
  • ASCII in Binary Array
  • HEX in ASCII
  • Base64 in ASCII