English Русский 中文 Español 日本語 Português
preview
Erstellen eines EA, der automatisch funktioniert (Teil 01): Konzepte und Strukturen

Erstellen eines EA, der automatisch funktioniert (Teil 01): Konzepte und Strukturen

MetaTrader 5Experten | 24 Februar 2023, 09:51
1 207 0
Daniel Jose
Daniel Jose

Einführung

Während dieser Zeit haben mich mehrere Personen, die meine Artikel über die Erstellung eines EA von Grund auf gelesen haben, kontaktiert und mich gebeten, einen EA für sie zu erstellen oder ihnen einige Richtlinien zu geben, wie sie dies tun können. Auf all diese Anfragen habe ich geantwortet, dass die Programmierung eines EA, der automatisch arbeitet, bei weitem nicht die komplizierteste Programmieraufgabe ist. Ich motiviere immer und gebe denjenigen, die wirklich lernen und ihr Wissen vertiefen wollen, die richtigen Richtlinien, egal ob Enthusiasten oder Leute, die ihren eigenen EA erstellen wollen, der einem bestimmten Operationsprozess in einem vollautomatischen Modus folgt.

Ich habe auch festgestellt, dass viele dieser Leute im Grunde die gleichen Zweifel haben, wie sie mit dem Programmieren anfangen sollen. Aber was mich am meisten erstaunt, ist, dass viele von ihnen aus dem einen oder anderen Grund eine völlig falsche Vorstellung davon haben, wie man diese Art von EA implementiert. Manche Nutzer sind sich der Risiken, die mit der Einrichtung und Nutzung eines automatisierten Systems verbunden sind, gar nicht bewusst. Wenn ich in diesem Fall von einem automatisierten EA-System spreche, meine ich damit ein System, das ohne jegliche Kontrolle arbeitet und das Vermögenswerte ohne direkte oder indirekte Intervention des Händlers kaufen und verkaufen kann.

Deshalb habe ich beschlossen, diese Punkte zu erläutern, damit jeder sie verstehen oder über dieses Thema streiten kann. Schritt für Schritt zeige ich Ihnen, wie Sie als Amateur oder sogar als Anfänger in diesem Thema, sukzessive einen automatisch handelnden EA von Grund auf auf einfache, aber sichere Weise programmieren können, indem Sie im Grunde nur und ausschließlich natives MQL5 verwenden. Es wird keine Wunderlösungen oder Ähnliches geben.

In diesem frühen Stadium werde ich nicht auf komplizierte Details eingehen und keine schönen und auffälligen Charts verwenden. Ich werde nicht versuchen, Sie, die Sie möglicherweise nicht über ausreichende Kenntnisse der statistischen Mathematik verfügen, zu täuschen, und ich werde nicht sagen, dass die hier vorgestellten EAs Ihnen quasi als Sklaven dienen und Ihnen Ihren Lebensunterhalt verdienen. Ganz im Gegenteil: Die Erstellung eines EA ist eine sehr langwierige Aufgabe, die eine Menge Studium und Hingabe erfordert, wenn man etwas wirklich Wertvolles schaffen will. Nicht wegen der Programmierung, sondern wegen operationeller und anderer Fragen, die wir hier behandeln werden.

Das große Problem ist nicht das Programmieren an sich, wie viele vielleicht fälschlicherweise denken. Das Problem ist, dass wir in vielen Fällen mehr Verlust als Gewinn machen. Ich wiederhole noch einmal: Das Problem liegt nicht in der Programmierung, sondern in der mangelnden Erfahrung der Person, die eine Art von Handelssystem für den EA entwirft, das ausgeführt werden soll. Die Schuld liegt nie beim Programmierer, auch wenn er ihn für einen großartigen Programmierer hält, dem die Leute blind vertrauen, werden sich sicherlich Probleme einstellen. Wenn die Person jedoch weiß, was sie tut, wird sie ihre Arbeit in aller Ruhe erledigen. In Anbetracht dieser Tatsache wird das Problem nicht in der Programmierung liegen, sondern kann im Handelssystem liegen, das von der Person entworfen wurde, die den Auftrag zur Entwicklung des automatisierten Expert Advisors erteilt hat.


Wie unterteil man einen automatisierten EA? Wie funktioniert das eigentlich?

Bevor wir mit dem Schreiben des Codes beginnen, müssen wir für alle, die diese kurze Artikelserie lesen werden, einige Dinge klarstellen. Wenn Sie bereits wissen, wie ein automatisierter EA funktioniert, wird die Serie wahrscheinlich nichts zu Ihrem Wissen beitragen. Wenn Sie aber keine Ahnung haben, wie es funktioniert oder was nötig ist, damit der EA funktioniert, sollten Sie diese Artikel lesen, um zumindest das Grundwissen zu erwerben. Denn ohne dieses Wissen sind Sie völlig verloren. Begleiten Sie mich durch diese Reihe, wenn Sie die ersten Schritte machen oder wissen wollen, was Sie studieren und analysieren sollen.

Um mit der Erklärung zu beginnen, sehen wir uns die folgende Abbildung 01 an:

Abbildung 1

Abbildung 01. Schematische Darstellung des automatisierten EA-Betriebs


Dieses Bild zeigt in einer sehr einfachen und verallgemeinerten Form, wie der automatisierte EA tatsächlich funktioniert. Bitte beachten Sie, dass der EA über zwei interne Strukturen verfügt: das Auftragssystem oder Ordersystem, das für alle EA immer gleich ist, und die zweite Struktur, das Auslösesystem oder das Trigger-System, das dafür verantwortlich ist, dass der EA automatisch funktioniert.

Wie bereits erwähnt, wird das Auftragssystem immer das gleiche sein. Sobald die Systemerstellung abgeschlossen ist und das System stabil funktioniert und Sie ihm voll und ganz vertrauen - da es der Teil des EA ist, den Sie erstellt haben - können Sie sich dem Auslösesystem zuwenden, bei dem die meisten Probleme auftreten.

Doch bevor wir uns mit den Systemen befassen, die wir aufbauen wollen, müssen wir wissen, wie wir sie trennen können. Bitte beachten Sie dies, denn viele Leute verwechseln Dinge und sind völlig verloren, wenn sie versuchen, einen automatisierten EA zu erstellen. Vor allem, wenn es sich um Anfänger handelt, da sie die grundlegendsten Konzepte nicht verstehen.


Verstehen, wie man das Auftragssystem erstellt

An dieser Stelle möchte ich Sie bitten, Folgendes zu tun: Lesen Sie die Artikelserie „Einen handelnden Expert Advisor von Grund auf neu entwickeln“, denn in dieser Serie habe ich jeden Schritt gezeigt, der zur Entwicklung dieses Auftragssystems erforderlich ist. In dieser Serie habe ich einige der Dinge nicht erklärt, die es im Auftragssystem geben kann (aber nicht unbedingt geben wird).

Zwei der Details sind Breakeven, die der EA macht automatisch den Stop-Loss-Wert auf eine Position, wo Sie nicht mehr riskieren, um Gewinn zu erhalten, und Trailing-Stop, die zunächst die Breakeven erstellen und dann wird es bewegen, um Gewinne zu sichern...

Viele wissen es nicht, aber der Trailing-Stop-Mechanismus ist in der MetaTrader 5-Plattform standardmäßig vorhanden. Aber um ihn zu nutzen, müssen Sie ihn für jede Position einzeln aktivieren und den Wert entsprechend anpassen... Ich weiß, dass es nicht sehr vielversprechend und überhaupt nicht lohnend zu sein scheint, dies zu tun, aber ohne ein Auftragssystems mit einem Trailing-Stop, das nicht wirklich entwickelt und getestet wurde, ist die beste Wahl, den in der MetaTrader 5-Plattform vorhandenen Mechanismus zu verwenden, da er stabil und zuverlässig ist.

Alles, was zum Auftragssystem gehört, angefangen von den Linien, die auf den Charts erscheinen und uns eine Analyse des Geschehens ermöglichen, bis hin zum Trailing-Stop-Mechanismus, ist Teil des Auftragssystem, das Sie komplett separat erstellen und manuell über einen Zeitraum testen sollten, den Sie für angemessen halten.

Während dieser Zeit müssen Sie alle möglichen Ausfälle und Fehler, die auftreten können, einstellen, korrigieren und testen. Glauben Sie mir, Sie wollen nicht, dass das Auftragssystem abstürzt oder Informationen auf dem Chart generiert, die nicht wirklich das darstellen, was der EA tut. In diesem Fall möchten Sie, dass alles, was der EA tut, rückgängig gemacht und von Ihnen geändert werden kann.

Diese Tests sollten über einen längeren Zeitraum auf einem Demokonto durchgeführt werden, bei dem Sie nicht das Risiko eingehen, echtes Geld zu verlieren oder zu verdienen. Die Tests müssen sehr intensiv sein.

Testen Sie alles, wirklich alles, bis Sie der Meinung sind, dass das System zuverlässig, komfortabel und einfach zu bedienen ist, d. h. dass Sie es problemlos nutzen können. Gehen Sie nicht zum nächsten Schritt über, sondern bleiben Sie hier, um das Auftragssystem anzupassen und zu testen. Und noch einmal: Wenn Sie nicht die geringste Ahnung haben, wie man ein halbwegs anständiges Auftragssystem erstellt, lesen Sie die oben erwähnte Artikelserie. Studieren Sie den Code, verstehen Sie, wie alle Dinge funktionieren und wie Sie sie ändern und anpassen können, um das System für Sie bequem zu machen, damit Sie es automatisieren können.

Nehmen Sie sich Zeit. Glauben Sie mir, Sie wollen nicht, dass das Auftragssystem mitten im realen Handel zusammenbricht. Das wäre überhaupt nicht lustig. Sie werden nicht der Plattform oder dem Markt die Schuld geben, denn die einzige Person, die tatsächlich für das Problem verantwortlich ist, sind Sie selbst.

Sobald Sie ein fertiges und funktionierendes System haben, das so funktioniert, wie Sie es wünschen und erwarten, können Sie zum nächsten Schritt übergehen. Es ist wesentlich einfacher, aber das bedeutet nicht, dass man die notwendigen Vorsichtsmaßnahmen bei der Arbeit daran vernachlässigen sollte. Ich spreche über das Auslösesystem.


Das Auslösesystem verstehen

Das Auslösesystem oder Trigger-System ist vielleicht der Teil, von dem viele, die keine Ahnung haben. ​Programmierer oder Mathematiker sind sehr begeistert, wenn sie beginnen, den Finanzmarkt zu studieren und zu verfolgen. Das Auslösesystem ist der Teil, der, sobald er mit einem Auftragssystem verbunden ist, die „Magie“ geschehen lässt und den Eindruck erweckt, dass der EA ein echter Händler ist und 24 Stunden am Tag, 7 Tage die Woche, 52 Wochen im Jahr arbeiten kann, ohne müde zu werden oder Stress zu erleiden, weil er Angst hat, eine Position einzugehen oder zu beenden.

In der Tat ist das Auslösesystem etwas sehr Interessantes, nicht wegen der Programmierung selbst, sondern wegen dessen, was es mathematisch darstellen kann. Jeder, der den Markt verfolgt, hat sicher schon von Händlern gehört, die supercoole Handelssysteme haben, die extrem profitabel sind. Wer kennt zum Beispiel nicht die Geschichte von Richard Williams und würde nicht gerne auch so ein Händler werden?

Es tut mir leid, Ihnen mitteilen zu müssen, dass es heute auf dem Markt viele verschiedene Algorithmen gibt, die effizienter sind als derjenige, den Larry Williams nutzte, um Geld zu verdienen und anerkannt zu werden. Das bedeutet nicht, dass das von ihm verwendete Auslösesystem nicht mehr praktikabel ist. Im Gegenteil, es ist immer noch profitabel, und wenn Sie eine angemessene Risikokontrolle haben, können Sie mit demselben Algorithmus viel Geld verdienen. Das Auslösesystem sollte einfach sein, damit der EA die Vorteile daraus ziehen kann. Außerdem ist es einfacher, ein einfacheres System zu testen.

Es hat keinen Sinn, ein Auslösesystem voller komplizierter und bizarrer Regeln und aufwändiger Analysen zu entwickeln, wenn man es nicht in eine einfache mathematische Formel packen kann, die man programmieren kann. Vergessen Sie also diese bizarren Dinge wie die Betrachtung des Indikators Z, der mit dem Vermögenswert X verbunden ist, um Y im Moment K zu handeln, während Sie das Aggressionsniveau P beobachten, die Markttiefe analysieren und nach dem Auftreten der Absicht W suchen, um eine Verkaufs- oder Kaufposition einzugehen. Vergessen Sie das. So etwas wird nicht funktionieren, oder zumindest wird die Sache so bizarr kompliziert, dass man den Algorithmus nicht testen kann.

Denken Sie daran: Wählen Sie immer das Einfache. Versuchen Sie immer, die Dinge so einfach wie möglich zu halten. Sorgen Sie dafür, dass die Zahl der möglichen Fehlschläge auf ein bestimmtes Niveau sinkt, und stellen Sie sicher, dass das Auslösesystem keinen Auslöseeffekt erzeugt, bei dem es beginnt, eine riesige Serie von Kauf- oder Verkaufsaufträgen an das System zu senden, was nicht nur das Konto, sondern auch Ihr gesamtes Eigenkapital zerstört.

Ich möchte hier eine Warnung aussprechen. Vermeiden Sie es nach Möglichkeit, ein Auslösesystem zu erstellen, bei dem der EA mit einer Positionserhöhung, d.h. einer Durchschnittsbildung des Preises nach oben oder unten, zu kaufen oder zu verkaufen beginnt, da diese Art von Trigger oft eine Menge Probleme verursacht. Idealerweise sollte ein EA eine Position betreten und verlassen, bevor er versucht, eine neue zu eröffnen, egal ob es sich um einen Kauf oder Verkauf handelt.

Darüber hinaus gibt es mehrere Möglichkeiten, das Senden von Aufträgen für einen bestimmten Zeitraum zu blockieren oder dafür zu sorgen, dass der EA keinen Auftrag sendet, wenn bereits eine offene Position besteht. Denken Sie daran, wenn Sie das Auslösesystem erstellen und entwerfen, denn viele EAs enden in einer Endlosschleife — und wenn das passiert, ist Ihr ganzes Geld innerhalb von Minuten oder sogar Sekunden verloren.

Ein weiterer wichtiger Punkt, der im Zusammenhang mit dem Auslösesystem zu erwähnen ist, ist die Bedeutung des Hintergrunds. Wenn Sie nicht studiert haben, rate ich Ihnen, dies zu tun. Wahrscheinlich haben Sie von dem Börsencrash von 1987 gehört, der auch als „Schwarzer Montag“ bekannt ist.

Wenn Sie noch nicht davon gehört haben, sollten Sie sich über diesen Absturz informieren, bevor Sie mit der Erstellung des EA beginnen, denn er wurde genau durch das Trigger-System verursacht. Lernen Sie also zuerst, denn Sie sind nicht besser als alle, die vor Ihnen da waren. Zumindest verfügen Sie vielleicht nicht über das gesamte erforderliche Wissen. Lassen Sie sich nicht von Leuten täuschen, die von den Wundern des quantitativen Handels sprechen und davon, dass EAs den Markt in Zukunft beherrschen werden. Seien Sie vorsichtig, bevor Sie sich auf irgendwelche Informationen oder Meinungen verlassen.

Halten Sie einen Moment inne und denken Sie nach: Wenn quantitativer Handel wirklich so einfach und effektiv wäre, wie viele behaupten, würden dann nicht auch große Unternehmen mit all ihrer wirtschaftlichen Macht und ihrem Interesse an noch größerer Rentabilität solche Mechanismen nutzen? Warum sollten sie die besten Programmierer, Mathematiker und Statistiker einstellen, wenn sie für ein Auslösesystem bezahlen könnten, das niemals verliert, mit einer Vertragsklausel, die verhindert, dass jemand das nachbaut? Studieren Sie also gut, bevor Sie glauben, den heiligen Gral entdeckt zu haben, denn jeder, der ernsthafte Studien betreibt, weiß, dass es ihn einfach nicht gibt.

Nun, da ich diese Warnungen gegeben und Ihnen gezeigt habe, wie und was es braucht, um einen automatisierten EA zu erstellen, lassen Sie uns zum interessantesten Teil übergehen: DEM CODE.


Erste Planung

Nun, da Sie mit den Ideen und Konzepten vertraut sind, die Sie sich Ihr ganzes Leben lang merken sollten, egal ob Sie Programmierer, Anfänger oder sogar professioneller Händler sind, lassen Sie uns zum nächsten Schritt übergehen: Hier werden Programmierkenntnisse wirklich wichtig. Hier machen viele Menschen Fehler, weil sie denken, dass Programmieren eine Aneinanderreihung von Befehlen ist, die scheinbar keinen logischen Sinn ergeben. Sie glauben, dass alles funktionieren wird, nur weil sie wollen, dass es funktioniert.

Programmieren ist nicht etwas Kompliziertes oder Mystisches, bei dem nur Großmeister oder promovierte Informatiker mit einem breiten und immensen akademischen Hintergrund etwas zustande bringen können. Das ist alles Unsinn von Leuten mit geringem Wissensstand, die sich schlauer als andere zeigen wollen.

Zum Programmieren, insbesondere in einer Sprache wie MQL5, die C und C++ sehr ähnlich ist, braucht man nicht viel Wissen. Tatsächlich müssen Sie nur 4 grundlegende Dinge wissen und 2 wesentliche Eigenschaften besitzen. Die 4 Dinge, die Sie wissen müssen, sind:

  • Es gibt kein Programm, das nicht mit einfachen Befehlen ausgeführt werden kann. Lernen und beherrschen Sie daher einfache Befehle, bevor Sie komplexere verwenden.
  • Erfahren Sie, wie Sie die folgenden Befehle verwenden können: IF, FOR und die grundlegenden Operatoren: Gleichheit (=), Addition (+), Subtraktion (-), Division (/), Multiplikation (*) und Modulo (%).
  • Den Unterschied zwischen der Arbeit mit Bits und Bytes verstehen und wissen, was Boolesche Operatoren bewirken: Not (!), Or (|), And (&) und Xor (^).
  • Den Unterschied zwischen Funktion und Prozedur, globaler und lokaler Variable, Ereignisbehandlung und prozeduralem Aufruf verstehen.

Alles in der Programmierung läuft auf diese 4 Dinge hinaus. Egal wie komplex ein Programm ist oder werden könnte, wenn Sie Ihren Code nicht auf diese 4 Dinge reduzieren können, versuchen Sie, etwas auf die falsche Art und Weise zu erstellen. Nun sind die 2 wesentlichen Eigenschaften:

  • Lesen Sie die Sprachdokumentation (in diesem Fall die MQL5-Dokumentation) — sie ist dazu da, Ihnen zu helfen.
  • Lernen Sie, Aufgaben zu verteilen, organisieren Sie sich, kommentieren Sie die Codeteile, die Sie noch nicht verstehen, und testen Sie immer, egal wie das Ergebnis aussieht. Testen Sie trotzdem und notieren Sie die Testergebnisse.

Unter diesen Voraussetzungen werden Sie mit der Zeit sicherlich ein hervorragender Programmierer werden, aber Sie müssen sich engagieren und lernen. Warten Sie nicht darauf, dass Ihnen jemand sagt, wie Sie etwas tun sollen, sondern suchen Sie immer nach Wissen und lernen Sie — mit der Zeit werden die Dinge für Sie einfacher und klarer. Aber die Hauptsache ist:

Bleiben Sie bescheiden, Sie wissen nicht alles und werden es auch nie wissen. Akzeptieren Sie, dass es immer jemanden geben wird, der mehr weiß als Sie.

Da Sie nun wissen, was Sie tun müssen, um Ihren ersten automatisierten EA zu erstellen, können wir mit dem Schreiben des Codes beginnen. Erinnern Sie sich an das, was ich oben gesagt habe: Zuerst müssen wir ein Auftragssystem schaffen, das sich am besten an unsere Bedürfnisse anpasst und sicher, stabil und robust ist. Schaffen Sie etwas, das funktioniert, und nicht etwas, das schön, aber bedeutungslos ist.


Richtige Planung

Kommen wir nun endlich zum Code. Richtig? Nein, noch nicht. Nur keine Eile. Nun können Sie den Code-Editor MetaEditor öffnen. Als Erstes müssen Sie einen EA von Grund auf neu erstellen. Dabei sollte es sich um sauberen Code handeln, nicht um den, den Sie sich von einem Freund geliehen oder aus dem Internet heruntergeladen haben. Fangen wir wirklich bei Null an.

Für diejenigen, die nicht wissen, wie das geht: Nach dem Öffnen des MetaEditors sehen Sie in der linken Ecke ein Fenster namens Browser. Dort finden Sie eine Struktur von Verzeichnissen, die jeweils mit MQL5 beginnen. Betrachten Sie dieses Fenster als Ihren Dateiexplorer — so fällt es Ihnen leichter, den Erklärungen zu folgen.

Im gleichen Fenster gibt es einen Ordner mit dem Namen Experts. Hier werden wir die Codes für jeden EA, den wir erstellen, platzieren. Es gibt auch noch andere Ordner für andere Zwecke, aber jetzt wollen wir uns nur auf die Experten konzentrieren. Wenn Sie auf diesen Ordner klicken, können Sie ihn öffnen und die darin enthaltenen Codes sehen. Höchstwahrscheinlich sind die bestehenden Codes in entsprechenden Reihenfolgen organisiert, wobei jeder Code für eine andere EA steht. Gewöhnen Sie sich an diese Struktur - es ist wichtig, eine gewisse Ordnung beizubehalten, da Sie sich sonst zwischen all den Dateien, die dort vorhanden sind, völlig verirren und nicht in der Lage sein werden, den benötigten Code zu finden, wenn Sie ihn brauchen.

Lassen Sie uns also die ersten Schritte unternehmen. Sie sind sehr einfach, folgen Sie einfach den unten stehenden Abbildungen:

Abbildung 2

Abbildung 02. Wählen Sie, was Sie erstellen möchten

Abbildung 03

Abbildung 03. Geben Sie das Verzeichnis an, in dem der Code gespeichert werden soll

Abbildung 04

Abb. 4. Geben Sie dem EA einen Namen (die Erweiterung ist optional).

Abbildung 05

Abbildung 05. Klicken Sie auf Weiter (Next)

Abbildung 06

Abbildung 06. Klicken Sie auf Fertig stellen


Wenn Sie die in den obigen Abbildungen gezeigten Schritte ausführen, wird Meta Editor einen absolut klaren und sicheren Code erstellen. Sie werden etwas ähnliches wie den folgenden Code sehen:

#property copyright "Daniel Jose"
#property link      "https://www.mql5.com/pt/articles/11216"
#property version   "1.00"
//+------------------------------------------------------------------+
int OnInit()
{
        return INIT_SUCCEEDED;
}
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
{
}
//+------------------------------------------------------------------+
void OnTick()
{
}
//+------------------------------------------------------------------+

Kümmern Sie sich nicht um die Compilerdirektive #property. Sie haben keinen Einfluss auf das, was wir hier tun werden. Sie dienen dazu, das Fenster zu konfigurieren, das geöffnet wird, wenn Sie den EA auf dem Chart starten. Machen Sie sich also keine Sorgen um sie. Aber Sie sollten sich um andere Dinge kümmern.

Wie Sie sehen können, hat MetaEditor drei Funktionen erstellt: OnInit, OnDeInit und OnTick. Diese Verfahren sind eigentlich Funktionen der Ereignisbehandlung. Die MQL5-Programmierung unterscheidet sich also von anderen Sprachen. MQL5 ist eine ereignisorientierte Sprache, im Gegensatz zu anderen Sprachen, in denen wir prozedural arbeiten. Ereignisbasierte Sprachen können anfangs verwirrend sein, aber mit der Zeit versteht man, wie man in ihnen vorgehen kann.

Ohne zu sehr ins Detail zu gehen, werden wir wie folgt vorgehen: Die Plattform MetaTrader 5 generiert ein Ereignis, und wir reagieren auf dieses Ereignis, d.h. wenn wir den EA auf den Chart setzen, löst MetaTrader 5 das Init-Ereignis aus, was die Plattform veranlasst, in ihrem Code nach der OnInit-Funktion zu suchen, damit der EA (in diesem Fall) geladen und gestartet wird. Danach wird diese Funktion nicht mehr aufgerufen. Dies ist eine allgemeine Beschreibung, da die Funktion jedes Mal aufgerufen wird, wenn MetaTrader 5 den EA auf dem Chart platziert - denken Sie daran.

Hier haben wir auch die Funktion OnDeInit. Die MetaTrader 5 Plattform ruft sie auf, wenn das DeInit ausgelöst wird, das allen Elementen (EAs und Indikatoren) mitteilt, dass etwas passiert ist und sie aus dem Chart entfernt werden. Um den Grund für die Entfernung des Programms herauszufinden, überprüfen Sie den von der MetaTrader 5-Plattform zurückgegebenen Grund (reason).

Und schließlich haben wir die Funktion OnTick, die von der MetaTrader 5-Plattform jedes Mal aufgerufen wird, wenn das Tick-Ereignis eintritt. Dieses Ereignis tritt jedes Mal ein, wenn ein neuer Tick, ein neuer Preis, eintrifft. Mit anderen Worten, wenn ein neuer Vorgang, egal welcher Art, auf dem Handelsserver ausgeführt wird, wird das Tick-Ereignis generiert, sodass die OnTick-Funktion ausgelöst wird, und der Code wird in diese Funktion eingefügt.

Wie Sie sich vorstellen können, ist die OnTick-Funktion sehr wichtig für unser System, aber sie ist oft die Achillesferse vieler Expert Advisors. Das liegt daran, dass viele Programmierer aufgrund mangelnder Erfahrung oder Nachlässigkeit den gesamten Code in diese Funktion packen, was sie überlasten kann und den EA weniger stabil und anfälliger für Abstürze und kritische Fehler macht. Einer der am schwierigsten zu behebenden Fehler ist der RUN TIME-Fehler, der Fehler zur Laufzeit, der durch komplexe und schwer zu reproduzierende Interaktionen verursacht werden kann. Aber das werden wir in einem der nächsten Artikel noch genauer sehen.

Aus diesem Grund fördert die Plattform und ihre Sprache MQL5 andere Möglichkeiten, mit Funktionen zu arbeiten, um ein Mindestmaß an Sicherheit und Zuverlässigkeit zu gewährleisten. Wir haben auch andere Arten von Ereignissen, mit denen wir die Dinge im Allgemeinen verbessern können. Aber das sehen wir später, denn ich möchte keine große Verwirrung stiften, vor allem, wenn Sie dies zum ersten Mal sehen und keine Ahnung hatten, dass MQL5 durch die Handhabung von Ereignissen funktioniert, die von der MetaTrader 5 Plattform ausgelöst werden, ohne einen prozeduralen Code zu erstellen, bei dem wir einen Eintrittspunkt und einen Austrittspunkt haben, und alle Dinge zwischen diesen beiden Punkten müssen vom Programm verwaltet und vom Programmierer gehandhabt werden.

Hier, in MQL5, werden wir nur die Ereignisse verarbeiten, die wir brauchen. Um als Expert Advisor zu gelten, muss das Programm zwei Ereignisse enthalten: OnInit, das die Initialisierung des Expert Advisors übernimmt, und OnTick, das auf das Tick-Ereignis reagiert. Das OnDeInit-Ereignis kann vorhanden sein oder auch nicht, aber es kann in einigen speziellen Fällen nützlich sein.

Um zu lernen, wie man die Dokumentation liest und sich für die darin enthaltenen Erklärungen zu interessieren, sehen wir uns an, was darin über die Ereignisse steht, die ausgelöst werden können, insbesondere über die drei Ereignisse, die automatisch vom MetaEditor erzeugt werden, wenn wir mit der Erstellung eines EA beginnen: OnInit, OnDeInit und OnTick. Vergessen Sie nicht, auch einen Blick auf die Compilerdirektive property zu werfen.

Es ist sehr wichtig, dass Sie den ersten Schritt, der in diesem Artikel beschrieben wird, verstehen, da Sie sonst bei den Erklärungen in den anderen Artikeln dieser Reihe völlig verloren sind.

Im nächsten Artikel zeige ich Ihnen, wie Sie ein einfaches und übersichtliches Auftragssystem erstellen, mit dem Sie Kauf- und Verkaufsaufträge direkt aus dem Chart heraus erteilen können. Bleiben Sie also dran für den nächsten Artikel, denn das Thema wird sehr interessant für diejenigen sein, die einen EA erstellen wollen, der im automatischen Modus arbeitet.



Übersetzt aus dem Portugiesischen von MetaQuotes Ltd.
Originalartikel: https://www.mql5.com/pt/articles/11216

DoEasy. Steuerung (Teil 31): Scrollen des Inhalts des ScrollBar-Steuerelements DoEasy. Steuerung (Teil 31): Scrollen des Inhalts des ScrollBar-Steuerelements
In diesem Artikel werde ich die Funktionsweise des Scrollens des Inhalts des Containers mithilfe der Schaltflächen der horizontalen Bildlaufleiste implementieren.
Erstellen eines Ticker-Panels: Verbesserte Version Erstellen eines Ticker-Panels: Verbesserte Version
Was halten Sie von der Idee, die Grundversion unseres Ticker-Panels wiederzubeleben? Als Erstes werden wir das Panel so ändern, dass wir ein Bild hinzufügen können, z. B. ein Anlagenlogo oder ein anderes Bild, damit der Nutzer das angezeigte Logo schnell und einfach identifizieren kann.
Erstellen eines EA, der automatisch funktioniert (Teil 02): Erste Schritte mit dem Code Erstellen eines EA, der automatisch funktioniert (Teil 02): Erste Schritte mit dem Code
Heute werden wir sehen, wie man einen Expert Advisor erstellt, der einfach und sicher im automatischen Modus arbeitet. Im vorigen Artikel haben wir die ersten Schritte besprochen, die jeder verstehen muss, bevor er einen Expert Advisor für den automatischen Handel erstellen kann. Wir haben uns Gedanken über die Konzepte und die Struktur gemacht.
Erstellen eines Ticker-Panels: Basisversion Erstellen eines Ticker-Panels: Basisversion
Hier zeige ich Ihnen, wie Sie Bildschirme mit Preistickern erstellen, die normalerweise zur Anzeige von Börsenkursen verwendet werden. Ich werde es nur mit MQL5 machen, ohne eine komplexe externe Programmierung zu verwenden.