Programmierung
Jetzt liest du
MQL praktisch. Panik-Taste, Teil I [Programmierkurs]
0

MQL praktisch. Panik-Taste, Teil I [Programmierkurs]

erstellt Radek Szafron21 2019 März

Willkommen zur zweiten Folge von MQL Practically! Im zweiten Teil unseres Kurses beginnen wir erneut mit einem leeren Blatt Papier und schreiben Schritt für Schritt eine neue Bewerbung. Wir werden die Elemente kennenlernen, die jeder Programmierer in seiner täglichen Arbeit verwendet, wie Funktionen, logische Operatoren und Schleifen, von denen jeder von Ihnen gehört haben muss, aber Sie wussten nicht, was es ist. Glücklicherweise geben wir in unserer Reihe die Theorie lecker und ohne Übertreibung und konzentrieren uns auf das Wichtigste, d. H. Programmierung in der Praxis.

Diese Woche schreiben wir den ersten Teil der Anwendung "Panik Knopf"wessen Name meiner Meinung nach schon viel erklärt. Die Aufgabe unseres Programms wird es sein, nach einem Knopfdruck alle offenen Positionen und Befehle sofort zu schließen, wenn ein kalter Schweiß auf unserer Stirn erscheint, die Welt still wird und sich das Bild zu einem kleinen, dunstigen Feld mit einer flackernden Rate eines rauschenden Dollars nach einem der niedlichen Tweets eines der unsere Lieblingspolitiker.

Lassen Sie uns die Ärmel hochkrempeln und MetaEditor einschalten

Beginnen wir mit dem Erstellen einer leeren Typdatei im Editor Experten genannt Panic Button.mq4. Die Datei befindet sich im Verzeichnis MQL4 \ Experts. Als nächstes legen Sie alle Dateien, die Sie heute benötigen, in die richtigen Ordner.

Plik "Nützliche_Funktionen.mqh" sollte im Verzeichnis MQL4 \ Include \ Panic Button \ abgelegt werden

Plik "Biblioteka_panic_button.ex4" sollte sich im Verzeichnis MQL4 \ Libraries \ Panic Button \ befinden

LADEN SIE EINEN SATZ VON MMS-DATEIEN HERUNTER

Erste Zeichen

Lassen Sie uns den Code unserer Anwendung ändern, d. H. Die Datei Panic Button.mq4 aus dem Katalog Experten. Lassen Sie uns den Compiler darüber informieren, dass wir die neueste Syntax der Sprache MQL4 verwenden, indem Sie Folgendes eingeben:

# Immobilien streng
MQL4-Code

Dreimal "und"

#einschließen

Verwenden Sie das Schlüsselwort #einschließen Wir können andere Quelldateien an Ihren Code anhängen. In der Datei Przydatne_funkcje.mqh Die notwendige Funktion haben wir im folgenden Teil vorbereitet:

bool Zamknij_pozycje_i_zlecenia (bool tylko_ten_instrument)

Damit wir den zusätzlichen Code verwenden können, müssen wir ihn durch Eingeben in unsere Datei einfügen #einschließen und der Zugangspfad. Genau wie in der Box unten.

#einschließen ".. \\ Einschließen \\ Paniktaste \\ Nützliche_Funktionen.mqh"
MQL4-Code

# Import

Schlüsselwort # Import Es erlaubt uns jedoch, externe Bibliotheken zu verwenden. Bibliotheken sind separate, kompilierte Algorithmen, die ihre Funktionen und Ressourcen mit anderen Programmen teilen. Im Folgenden importieren wir eine Bibliothek mit dem Namen Biblioteka_panic_button.ex4das enthält grafische Elemente und Funktionen für unseren Button. Zwischen Elementen # Import Wir stellen eine Liste von Funktionsdefinitionen auf, die uns die Bibliothek zur Verfügung stellen soll.

Der korrekte Bibliotheksimport sieht folgendermaßen aus:

# Import "Panik-Knopf \\ Biblioteka_panic_button.ex4"
ungültig Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski); ungültig Przycisku_badz_czujny (); bool Przycisku_czy_jestes_klikniety (Schnur Objekt_Name); ungültig Przycisku_bye_bye ();
# Import
MQL4-Code

Eingabe

Nachdem Sie die Quelldateien und Bibliotheken hinzugefügt haben, können Sie die Funktionen unseres Programms erstellen. Beginnen wir mit der folgenden Zeile:

Eingabe bool Tylko_ten_instrument = falsch;
MQL4-Code

Element Eingabe informiert den Compiler darüber, dass wir einen Parameter erstellen, der im Fenster der Anwendungseinstellungen verfügbar ist. Der Wert hängt von der Wahl des Benutzers ab. Der von uns erstellte Parameter nimmt den Wert von type an bool CZYLI was immer dies auch sein sollte. oder falsch. Wir haben ihn angerufen Tylko_ten_instrument Wenn Sie diesen Namen verwenden, können wir uns in Zukunft auf seinen Wert beziehen. Dies hilft uns zu entscheiden, ob Sie alle Positionen schließen möchten oder nur die Position des Instruments, auf dem unser Programm ausgeführt wird.

Erste Funktion

Fügen wir der Datei den folgenden Code-Ausschnitt hinzu:

int OnInit ()
{
Rückkehr INIT_SUCCEEDED;
}
MQL4-Code

Der obige Datensatz bedeutet, dass wir eine Funktion mit dem Namen erstellen OnInitdas gibt Typwerte zurück intDas sind ganze Zahlen. Funktionen geben Werte mit einem Schlüsselwort zurück Rückkehr.

Wir haben das mit dem Wort erwähnt Rückkehr Unsere Funktion liefert Werte in Form von ganzen Zahlen. Was ist also eine mysteriöse Platte? INIT_SUCCEEDED ? Für die Bequemlichkeit in der Sprache gibt es viele automatisch definierte Werte und INIT_SUCCEEDED ist nur einer davon. Unter seinem Namen steht eine ganze Zahl, die dem Compiler als "alles ist ok" bekannt ist.

Funktion OnInit () ist Teil der MQL-API, dh eine Funktion, die als Teil der Sprache verfügbar ist. MQL-API-Funktionen sind im Code auf markiert purpurn. Nach dem Start der Anwendung ruft unser Algorithmus die Funktion automatisch auf OnInit () und er wird es ganz am Anfang nur einmal tun, damit wir die notwendigen Operationen ausführen können, um unser Programm auszuführen.

Der Inhalt der Funktion

Zwischen den Klammern jeder Funktion geben wir die Anweisungen ein, die eine bestimmte Funktion ausführen soll. Unsere Funktion OnInit () enthält bereits eine Anweisung - Rückkehr INIT_SUCCEEDED;

Lassen Sie uns die Funktion der Funktion erweitern OnInit ()Ich erinnere mich an den Code Rückkehr INIT_SUCCEEDED; es blieb immer ganz unten in der Funktion, weil wir es nur aufrufen wollen, wenn alle anderen Anweisungen erfolgreich sind.

Bedingter Operator if

if(IsDemo () == falsch)
{
 
Rückkehr INIT_FAILED;
 
}
MQL4-Code

Der obige Code mit einem bedingten Operator if, prüft, ob die Umgebung für unsere Experimente sicher ist und wir arbeiten an einem Demo-Konto.

Betreiberkonstruktion if ist immer sehr ähnlich. Ein Datensatz zwischen den Klammern hinter dem Operator, dh dem Datensatz IsDemo () == falsch Wir nennen einen bedingten Ausdruck. Es ist ein logischer Ausdruck, der einen von zwei Werten zurückgeben kann - was immer dies auch sein sollte. oder falsch. Wenn der Bedingungsausdruck einen Wert zurückgibt was immer dies auch sein sollte. Dies ist der Code zwischen den geschweiften Klammern, die direkt nach dem Operator erscheinen if.

Das Symbol == in einem Bedingungsausdruck fragt eine Frage, ob der Wert links davon gleich dem Wert rechts ist. Weil die Funktion IsDemo () gibt den Wert zurück falschWenn wir das Programm auf dem Live-Konto aktivieren, wird der gesamte Wert unseres bedingten Ausdrucks als Ganzes zurückgegeben was immer dies auch sein sollte.da der Wert links vom Symbol == dem Wert rechts entspricht. Wenn ein Bedingungsausdruck erfüllt ist, wird ein Code zwischen den Klammern des Operators ausgeführt if und das Programm gibt mit Hilfe des Bedieners Informationen über den Ausfall zurück Rückkehr und Wert automatisch unter dem Namen generiert INIT_FAILED.


Fachberater


Wir zeichnen einen Knopf

Wir zeichnen unseren Button mit der Funktion Przycisku_utworz_sie (int x, int y, bool wybieram_niebieski)das kommt aus der zuvor importierten Bibliothek. Die Funktion akzeptiert zwei Parameter mit einem Datentyp int (ganze Zahlen) mit Namen x oraz yDiese dienen als Koordinaten der Schaltflächenposition in der Grafik relativ zur oberen rechten Ecke des Fensters.

Außerdem nimmt die Funktion einen Typparameter an bool (was immer dies auch sein sollte. oder falsch) benannt wybieram_niebieski. Da unsere Anwendung in zwei Modi betrieben werden kann, hat der Button für das gesamte Konto oder ein Instrument je nach den ausgewählten Einstellungen die entsprechende Farbe.

Wir mögen ify

Stellen wir fest, dass die Schaltfläche blau sein soll, wenn sie im Einzelinstrumentmodus und rot für das gesamte Konto funktioniert. Wir aktivieren die Einfärbung der Schaltfläche, indem Sie der Funktion die folgende Anweisung hinzufügen OnInit ():

bool blau = falsch;
if(Tylko_ten_instrument == was immer dies auch sein sollte.)
{
 
blau = was immer dies auch sein sollte.;
}
MQL4-Code

Damit der Algorithmus die Farbe der Schaltfläche bestimmen kann, definieren wir zunächst die Variable bool genannt blau und wir geben ihm einen Wert falsch. Dann verwenden wir den Bedingungsoperator ifdas prüft auf den Anwendungseinstellungsparameter Tylko_ten_instrument wurde vom Benutzer auf einen Wert gesetzt was immer dies auch sein sollte.. Wenn dies der Fall ist, wird der Code ausgeführt, der den Wert der Variablen festlegt blau  auch auf was immer dies auch sein sollte.. Eine auf diese Weise vorbereitete Variable blau Wir können die Funktion erfüllen Przycisku_utworz_sie (..) indem Sie der Funktion die folgende Codezeile hinzufügen OnInit ().

Przycisku_utworz_sie (5, 15blau);
MQL4-Code

Letzte Funktion (für heute)

Wenn das Programm beendet ist oder sich etwas in den Einstellungen ändert, wird die MQL-API-Funktion aufgerufen ungültig OnDeinit(const int Grund).

Verwendung der Funktion OnDeinit () Wir führen Operationen aus, die zum ordnungsgemäßen Beenden des Programms erforderlich sind. In unserem Fall ist es nach dem Ausschalten des Algorithmus erforderlich, die Schaltfläche mit der zuvor aus der Bibliothek importierten Funktion zu entfernen Przycisku_bye_bye ().

ungültig OnDeinit(const int Grund)
{
 
Przycisku_bye_bye ();
 
}
MQL4-Code

Beachten Sie, dass sich vor dem Funktionsnamen ein Wort befindet ungültig. Dies bedeutet, dass unsere Funktion keinen Wert zurückgibt.

Fügen Sie die Semikolons hinzu, reiben Sie sich die Hände und drücken Sie kompilieren

Nach dem erfolgreichen Kompilieren zeichnet der Code, den wir heute geschrieben haben, eine Schaltfläche in der Grafik und gibt dieser ein passendes Aussehen, je nach der vom Benutzer im Einstellungsfenster eingegebenen Konfiguration. Glückwunsch, wir haben die erste Phase der Erstellung unserer Anwendung abgeschlossen, wir haben eine Benutzeroberfläche erstellt.

Nächste Woche werden wir unser Programm für die Auftragsabwicklung entwickeln und einige interessante Gadgets hinzufügen.

LADEN SIE EINEN SATZ VON MMS-DATEIEN HERUNTER

Was denken Sie?
Ich mag es
0%
interessant
100%
Heh ...
0%
Shock!
0%
Ich mag es nicht
0%
Verletzung
0%
Über den Autor
Radek Szafron
Der Autor der Publikation ist Radek Szafron, Inhaber der Expert Advisors Company, die seit vielen Jahren Investoren unterstützt, indem sie Technologien für den FOREX-Markt bereitstellt. Der Autor ist ein Absolvent der Warschauer School of Economics mit der Spezialisierung "Finanzmärkte" und Programmierer mit fast 20-Sommererfahrung. Das Unternehmen implementiert Algorithmen und Anwendungen, die in allen Sprachen der "C" -Familie geschrieben wurden, einschließlich der beliebten Plattformen Meta Trader 4 und 5. Expert Advisors finden Sie unter www.expertadvisors.pl.

Hinterlasse eine Antwort