Einführung in MQL5 (Teil 1): Ein Leitfaden für Einsteiger in den algorithmischen Handel

Israel Pelumi Abioye | 22 Februar, 2024

Einführung

Ohne vorherige Programmiererfahrung kann das Erlernen von MQL5 schwierig, aber nicht unmöglich sein. Für das Verständnis von MQL5, einer speziellen Sprache für den algorithmischen Handel, sind sowohl Programmier- als auch Finanzmarktkenntnisse erforderlich. In meinen kommenden Artikeln möchte ich die Lücke für Personen ohne Programmierkenntnisse schließen, die daran interessiert sind, MQL5 zu lernen. Der Inhalt wird darauf zugeschnitten sein, Programmierkonzepte aufzuschlüsseln und MQL5 für Anfänger zugänglich zu machen.

Ich biete eine solide Grundlage in den Grundlagen der Programmierung, indem ich Konzepte wie Variablen, Datentypen, Schleifen und bedingte Anweisungen auf eine einsteigerfreundliche Art und Weise aufschlüssle. Die Artikel führen den Leser Schritt für Schritt in die Grundlagen von MQL5 ein. Ich beginne mit einfachen Skripten und führe nach und nach komplexere Themen ein, um eine reibungslose Lernkurve zu gewährleisten.

Das Lernen ist oft effektiver, wenn es von praktischen Beispielen begleitet wird. Ich werde anhand von Beispielen und Szenarien aus der Praxis zeigen, wie MQL5 im algorithmischen Handel eingesetzt wird. Um das Verständnis zu verbessern, werden die Artikel zum interaktiven Lernen anregen. Die Leser werden ermutigt, das Schreiben von Code zu üben, mit Beispielen zu experimentieren und ihr Wissen praktisch anzuwenden. Im Wesentlichen sollen diese Artikel Personen ohne Programmierkenntnisse in die Lage versetzen, sich selbstbewusst in der Welt von MQL5 zurechtzufinden und eine allmähliche und angenehme Lernerfahrung im Bereich des algorithmischen Handels zu fördern.

In diesem Artikel werden wir die folgenden Themen behandeln:

In den nächsten Artikeln werden wir die folgenden Themen behandeln

1. Einführung in die Programmierung

Haben Sie sich jemals gefragt, wie Ihre Lieblingsspiele und -software entwickelt wurden? Wie folgen Ihre Lieblingsspielfiguren Ihren Befehlen? All dies ist dank der Programmierung möglich. Betrachten Sie die Programmierung als eine Reihe von Codes, die geschrieben wurden, um die Kommunikation zwischen Mensch und Computer zu ermöglichen.

Was ist eine Programmiersprache? Das Wort „Programmierung“ bezeichnet einen Prozess, bei dem Regeln oder Anweisungen festgelegt werden, die zu befolgen sind, um ein bestimmtes Ziel zu erreichen. Andererseits bezeichnet das Wort „Sprache“ ein Kommunikationssystem, das es dem Einzelnen ermöglicht, Ideen, Gefühle und Gedanken gegenüber einem Computer auszudrücken. Computer verstehen keine menschliche Sprache. Wie kommunizieren wir unsere Anweisungen, um unsere Ziele zu erreichen? Die Programmiersprache dient als Vermittler zwischen Mensch und Computer, indem sie dem Menschen hilft, mit dem Computer zu kommunizieren.

1.1. Arten von Programmiersprachen

So wie es verschiedene menschliche Sprachen gibt, gibt es auch verschiedene Programmiersprachen, die in zwei Kategorien eingeteilt werden:

Klassifizierung nach dem Zweck

1.3. Wichtige Terminologien in der Programmierung

Anmerkung: Im weiteren Verlauf dieses Artikels werde ich auf einige dieser wichtigen Terminologien näher eingehen.


 2. MQL5-Programme

MQL5 (MetaQuotes Language 5) ist eine hochentwickelte und domänenspezifische Programmiersprache. MQL5 ist eine domänenspezifische Programmiersprache, da sie nur Aufgaben im Zusammenhang mit dem Handel ausführt. Beispiele sind die Automatisierung von Handelsstrategien, die Entwicklung von Handelsrobotern und technischen Indikatoren.

In der Programmiersprache MQL5 können verschiedene Arten von Programmen entwickelt werden, um den Handel zu automatisieren, die Märkte zu analysieren und die allgemeine Handelserfahrung zu verbessern. Hier sind einige gängige Typen von MQL5-Programmen:


3. MetaEditor IDE

MetaEditor 5 ist die für die Programmiersprache MQL5 konzipierte IDE. Eine IDE ist eine Art Umgebung oder Seite, in der Sie Ihren Code schreiben, debuggen, kompilieren und testen können. Der MetaEditor 5 wird beim Herunterladen immer mit dem MetaTrader 5 geliefert.


Anmerkung: Weitere Erklärungen werden im Laufe dieses Artikels hinzugefügt.



Anmerkung: Wenn der Code Fehler enthält, wird er nicht ausgeführt, bis Sie sie korrigiert haben. Der Code kann ausgeführt werden, ohne dass die Warnungen korrigiert werden, aber es ist besser, sich darum zu kümmern, um Probleme mit Ihrem Programm zu vermeiden.

Bis jetzt haben wir eine kurze, aber entscheidende Reise in die Grundlagen der Programmierung und der MetaEditor-Umgebung unternommen. Wir haben die Grundlagen für das Verständnis der Sprache der Algorithmen, MQL5, gelegt und den kreativen Spielraum von MetaEditor erkundet. Der MetaEditor ist nicht nur ein Werkzeug, sondern ein Tor zur Umwandlung von Ideen in ausführbare Strategien. Bleiben Sie dran für die Zukunft, wo wir den Reichtum von MQL5 enträtseln und Sie zur Beherrschung der Programmierung für Finanzmärkte führen werden. Ihr Abenteuer im algorithmischen Handel hat gerade erst begonnen.

4. Grundlagen der MQL5-Sprache

Bevor wir mit der Entwicklung von MQL5-Programmen beginnen, ist es wichtig, einige grundlegende Dinge zu verstehen, die ein Programm ausmachen. Beispiele sind Datentyp, Funktionen, Variablen, Kommentare und MQL5-Syntax.

4.1. Syntax

Unter Syntax versteht man eine Reihe von Regeln, die vorschreiben, wie Programme, die in einer bestimmten Sprache geschrieben wurden, aufgebaut sein sollten. Es ist wie die Grammatik einer Programmiersprache. Genauso wie menschliche Sprachen Regeln für die Bildung von Sätzen haben, haben Programmiersprachen Regeln für die Erstellung von gültigem und verständlichem Code.

Hier sind einige wichtige Aspekte der Syntax:

4.1.1. Erklärung Beendigung

Jede Anweisung in MQL5 wird normalerweise mit einem Semikolon ‚;‘ abgeschlossen. Damit wird dem Compiler mitgeteilt, dass eine Anweisung beendet ist und die nächste beginnt.

Beispiel:

void OnStart()
  {

   Alert("Hello MQL5");  // the semicolon means the end of the code line

  }

4.1.2. Kommentare

Kommentare in MQL5 sind wichtig, um Erklärungen und Dokumentationen in Ihrem Code bereitzustellen. Stellen Sie sich Kommentare wie eine Markierung vor, die Sie einer Codezeile hinzufügen, um später darauf zu verweisen oder den Zweck eines Codes zu erklären. Hier finden Sie ausführliche Beispiele für die Verwendung von Kommentaren in verschiedenen Szenarien:

Einzeilige Kommentare: Einzeiligen Kommentaren wird ein ‚//' vorangestellt. Sie werden für kurze Erklärungen verwendet.

Beispiele:

void OnStart()
  {

   Print("Hello MQL5");   // This line of code will print “Hello MQL5” when run

  }

Anmerkung: Der Compiler ignoriert vollständig alles, was nach // geschrieben wird.

Mehrzeilige Kommentare

Mehrzeilige Kommentare werden in ‚/* */‘ eingeschlossen. Sie sind für ausführlichere Erklärungen geeignet. Dies kann nützlich sein, um Ihre Pläne aufzuschreiben oder eine Schritt-für-Schritt-Anleitung für die Entwicklung eines Programms zu erstellen.

Beispiel:

void OnStart()
  {

   /* In many programming languages, including MQL5
    a semicolon “;” is used to indicate the end of a statement.
   It is a crucial element for the compiler to understand the structure of the program.
   */
   
  }

Der Compiler ignoriert alles zwischen /* und */ vollständig.

Kommentare spielen eine entscheidende Rolle dabei, Ihren Code lesbar und verständlich zu machen. Sie helfen nicht nur Ihrem eigenen Verständnis, sondern auch allen anderen, die Ihren Code lesen oder daran mitarbeiten. Verwenden Sie Kommentare großzügig, um die Klarheit Ihrer MQL5-Programme zu verbessern.


4.1.3. Identifikatoren

In der Programmierung ist ein Bezeichner ein Name, der einer Variablen, einer Funktion oder einem anderen nutzerdefinierten Element im Code gegeben wird. Bezeichner spielen eine entscheidende Rolle dabei, Code lesbar und verständlich zu machen. Hier sind einige wichtige Punkte über Bezeichner in MQL5:

Regeln für die Namensgebung

Bezeichner müssen bestimmten Benennungsregeln folgen. Sie sollten mit einem Buchstaben (A-Z oder a-z) beginnen und können von Buchstaben, Ziffern (0-9) oder Unterstrichen (_) gefolgt werden.

Sensibilität für Groß- und Kleinschreibung

MQL5 unterscheidet zwischen Groß- und Kleinschreibung, d. h. Groß- und Kleinbuchstaben werden unterschieden. Daher werden „myVariable“ und „MyVariable“ als unterschiedliche Bezeichner betrachtet.

Beispiel:

int myage = 25; 
int MyAge = 25;  // myage is a different identifier from MyAge.


Bedeutungsvolle Namen

Wählen Sie aussagekräftige und sprechende Namen für Identifikatoren. Dies verbessert die Lesbarkeit des Codes und macht es für andere (oder Ihr zukünftiges Ich) einfacher, den Zweck von Variablen oder Funktionen zu verstehen.

Reservierte Wörter

Vermeiden Sie die Verwendung reservierter Wörter als Bezeichner. Reservierte Wörter sind Wörter, die in der Programmiersprache eine besondere Bedeutung haben und nicht für andere Zwecke verwendet werden können. Beispiele sind Warnung, Druck und Kommentar. Erfahren Sie mehr über reservierte Wörter.

Beispiel:

    int Age = 25;      
    Print(Age);   
    /*
    Int is the data type is an integer because 25 is a whole number.
    Age is the  identifier
    Print is a reserved word in MQL5 and it serves a special function. This means it can't be used as an identifier
    */


4.2. Grundlegende Datentypen

In der Programmierung sind Datentypen wie Container, die verschiedene Arten von Informationen enthalten. Stellen Sie sich vor, Sie haben Kisten, in denen Sie Dinge aufbewahren: Einige Kisten können Zahlen, einige können Wörter und einige können komplexere Dinge enthalten. Beispiele hierfür sind:

Integer (int)

Stellen Sie sich dies als eine Kiste vor, die nur ganze Zahlen enthält. Er kann Zahlen wie 1, 5 oder 10 speichern, aber keine Zahlen mit Dezimalpunkten.

Beispiel:

int myInteger = 10;

Double

Dieser Typ stellt Zahlen mit Dezimalpunkten dar.

Beispiel:

double myDouble = 3.14;

Character

In MQL5 ist ein Zeichen ein Datentyp, der zur Darstellung eines einzelnen Zeichens, z. B. eines Buchstabens, einer Ziffer oder eines Symbols, verwendet wird. Es wird durch das Schlüsselwort „char“ bezeichnet.

Beispiel:

 // Declaring a character variable 
      char myChar = 'A';

 // Printing the character to the console 
      Print(myChar);

String Type

Strings sind Zeichenketten, die in der Regel für Text verwendet werden.

Beispiel:

string myString = "Hello, MQL5!";

Alert(myString);

Boolean Type

Boolesche Werte stehen für wahr oder falsch.

Beispiel:

bool iam25 = true;

Arrays

Mit Arrays in MQL5 können Sie mehrere Werte desselben Datentyps unter einem einzigen Variablennamen speichern. Sie bieten eine bequeme Möglichkeit, mit Datensammlungen zu arbeiten. Hier sind die wichtigsten Aspekte von Arrays in MQL5:

1. Deklaration von Arrays: Sie deklarieren ein Array, indem Sie dessen Datentyp und Namen angeben, gefolgt von eckigen Klammern ‚[]‘, die das Array bezeichnen.

Beispiel:

Integer array declaration

int numbers[5];


2. Initialisierung: Sie können ein Array zum Zeitpunkt der Deklaration initialisieren, indem Sie eine Liste von Werten angeben, die in geschweifte Klammern „{}“ eingeschlossen sind.

Beispiel:

// Initializing an integer array

   int numbers[] = {1, 2, 3, 4, 5};


3. Zugriff auf Elemente: Der Zugriff auf Array-Elemente erfolgt über ihren Index, beginnend bei 0. Im Array „numbers“ ist zum Beispiel „numbers[0]“ das erste Element. Array in MQL5 kann verwendet werden, um Schluss- oder Eröffnungspreise von Kerzen zu erhalten.

Beispiel:

// Accessing elements of an array

   int firstNumber = numbers[0];  // Accesses the first element


Hinweis: Dies sind nur einige wenige Datentypen und wir haben nur einige Grundlagen behandelt. So werden Sie anhand von klaren Beispielen durch die einzelnen Konzepte geführt, ohne sich in Details zu verlieren, damit das Lernen Spaß macht und einfach ist.


Schlussfolgerung

Abschließend haben wir uns auf eine Reise begeben, um die Grundlagen der Programmierung und die spezifische Welt von MQL5 zu erkunden. Wir begannen mit einer Einführung in die Programmierung, vertieften uns in die Arten von MQL5-Programmen und verstanden die Bedeutung von MetaEditor IDE bei der Erstellung unserer Handelsalgorithmen. Unsere Erkundung der Grundlagen der MQL5-Sprache hat den Grundstein für die Erstellung anspruchsvollerer Programme gelegt. Denken Sie daran, dass dies erst der Anfang ist. Im Laufe der Zeit wird sich die Leistungsfähigkeit der Programmierung mit MQL5 entfalten und Sie in die Lage versetzen, robuste und effiziente Handelsstrategien zu erstellen. Bleiben Sie dran für weitere Einblicke und Artikel in das spannende Gebiet des algorithmischen Handels und der MQL5-Programmierung!