English Русский 中文 Español 日本語 Português
preview
Erstellen eines automatisch arbeitenden EA (Teil 13): Automatisierung (V)

Erstellen eines automatisch arbeitenden EA (Teil 13): Automatisierung (V)

MetaTrader 5Handel | 28 Juni 2023, 10:18
261 0
Daniel Jose
Daniel Jose

Einführung

Nachdem wir nun das Grundgerüst erstellt haben, können wir den EA schließlich automatisieren, sodass er zu 100 % automatisch arbeitet und dabei die von uns festgelegten Betriebsregeln befolgt. Ziel dieses Artikels ist es nicht, ein operationelles Modell zu erstellen, sondern Ihnen das hier vorgeschlagene System zu zeigen und Sie darauf vorzubereiten, indem Sie einen manuellen Expert Advisor in einen automatisierten verwandeln.

Ich denke, das große Problem der meisten Händler, die einen 100% automatisierten EA verwenden wollen (nicht notwendigerweise Ihr Ansatz, lieber Leser) ist, dass sie absolut nichts über Programmierung wissen, oder noch schlimmer, sie wissen nichts über den Finanzmarkt und wollen diesen Bereich nicht erforschen.

Viele Menschen wollen einfach nur ein Computerprogramm laufen lassen, das auf magische Weise Geld generiert, ohne wirklich zu verstehen, was hinter den Kulissen vor sich geht. Ich sehe viele Leute, die über eine bestimmte Plattform, ein System oder einen EA gut oder schlecht reden. Aber die große Mehrheit hat nicht die geringste Vorstellung von dem Risiko, das sie eingeht, indem sie sich vorstellt, dass ein einfaches Computerprogramm, das in MQL5 geschrieben wurde, um auf MetaTrader 5 zu laufen, oder in einer anderen Programmiersprache entwickelt wurde, zu einem Geldautomaten wird.

Viele Menschen haben diesen „Traum“ oder diese „Illusion“. Sie glauben, dass irgendein Programmierer oder sogar sie selbst eine Methode, ein Programm oder einen Algorithmus entwickeln können, der auf magische Weise Geld auf ihre Maklerkonten scheffelt. Viele von ihnen müssen sogar die Grundlagen des Finanzmarktes lernen, aber sie mögen es nicht, wenn man ihnen sagt, dass sie falsch liegen.

Alles, absolut alles, was verwendet, geschaffen oder entwickelt werden kann, um irgendwie zu versuchen, ein Programm in eine Geldfabrik auf dem Finanzmarkt zu verwandeln, wurde bereits geschaffen, getestet und entwickelt. Einige Dinge haben sich als ungeeignet erwiesen, während andere mit einer guten Risikokontrolle über einen gewissen Zeitraum hinweg Gewinne erwirtschaften können.

Wenn Sie also einer von denen sind, die hoffen, ein magisches System zu finden, das Sie schließlich reich machen kann, hören Sie sofort auf, diesen Artikel zu lesen, denn diese Informationen sind nicht für Sie bestimmt. Das Gleiche gilt für alle, die in diesem Artikel eine Zauberformel erwarten: Bitte lesen Sie nicht weiter.

Hier zeige ich Ihnen, wie Sie einen Auslöser entwickeln, um das System zu automatisieren, das Sie bereits verwenden.

Lassen Sie uns herausfinden, wie man einen Expert Advisor automatisieren kann. Beginnen wir mit der Planung dessen, was wir tatsächlich tun müssen.


Planung der Automatisierung

Erstens spielt es keine Rolle, was Sie handeln werden. Es spielt keine Rolle, welche Indikatoren, Chart-Zeitrahmen oder Signale Sie verwenden. Der Automatisierungsprozess wird immer nach demselben Schema ablaufen. Der einzige Unterschied besteht darin, wie der Auslöser gebaut wird, aber die Planung ist immer die gleiche.

Um zu planen, wie das System automatisiert werden kann, müssen Sie zunächst über ein Handelsmodell verfügen, das bereits seit einiger Zeit im Einsatz ist. Dies ist von entscheidender Bedeutung. Versuchen Sie nicht, ein unbekanntes Modell zu automatisieren. Sie müssen sich angewöhnen, dieses spezielle Modell zu verwenden.

Dies ist also die erste Voraussetzung für die Automatisierung: Sie müssen wissen, wie man das Modell nutzt. Nun müssen Sie die Regeln für die Durchführung von Geschäften klar definieren. Dies sollte auf klare und objektive Weise geschehen. Es sollte keine Dinge geben wie: Wenn das so ist, wenn das hier vielleicht ein andere Weg ist, dann hoffe ich, dass das klappt. Das ist falsch. Die Regel sollte etwa so lauten: Wenn dies passiert, verkaufen Sie; wenn das passiert - kaufen Sie. Die Regel muss etwas Objektives sein. Denken Sie daran, dass wir einen Roboter unterrichten werden, der keine Emotionen oder Gefühle hat. Er empfindet weder Angst noch Reue. Seien Sie also objektiv.

Nach der Festlegung klarer Regeln ist es nun an der Zeit, die Programmierlogik zu erstellen. Viele verirren sich an diesem Punkt, da sie bei der Programmierung versuchen, neue Regeln zu erfinden, um das System besser oder profitabler zu machen. Auch dies ist falsch. Der EA muss dasselbe tun, was Ihr Modell tut. Das ist genau dasselbe.

Betrachten wir als Beispiel die Erstellung von Regeln für das Larry-Williams-Modell, auch bekannt als Exponential Moving Average mit 9 Perioden. Es gibt viele Varianten des Modells, aber dieses ursprüngliche Modell ist recht einfach. Bitte beachten Sie, dass es sich hierbei nur um ein Beispiel handelt, dessen Verwendung ich nicht empfehle, wenn Sie nicht wissen, wie es funktioniert. Also, sehen wir uns die Planung der Regeln für dieses Modell an.

Schließt der Balken oberhalb des 9-periodischen gleitenden Durchschnitts: KAUFEN; schließt er darunter: VERKAUFEN.

Dies ist die wichtigste Regel für die Programmierung des Modells: alles ist klar und objektiv. Wenn Sie einen Trailing-Stop hinzufügen möchten, muss der Ansatz so einfach sein wie in diesem Beispiel:

Der Handelsstopp liegt bei KAUFEN immer einen Tick über dem Tiefststand des geschlossenen Balkens und bei VERKAUFEN einen Tick unter dem Höchststand des geschlossenen Balkens.

Auch hier sind die Regeln einfach. So sollten Sie Ihre eigenen Regeln aufstellen. Um dies zu verdeutlichen, betrachten wir ein weiteres Beispiel, das den RSI-Indikator verwendet. Die Logik ist auf alle anderen Indikatoren anwendbar. Hier geht es darum, die richtige Vorgehensweise zu demonstrieren:

Liegt der Indikator bei einem Wert von über 80, dann warten Sie auf einen VERKAUFS-Einstieg. Sobald er unter 80 fällt: VERKAUFEN. Wenn der Indikator unter 20 liegt, sollten Sie sich auf einen KAUFEN Handel vorbereiten. Sobald der Kurs auf über 20 steigt: KAUFEN.

Diese Regel ist einfach und wirksam, aber sie benötigt noch Regeln für einen Stop-Loss oder Trailing-Stops. Hierfür können wir einen anderen Indikator oder sogar denselben Indikator verwenden. Auch das macht nichts, solange die Regel klar ist. Definieren wir also eine Regel auf der Grundlage des arithmetischen Mittels von 20 Perioden. Die Regel könnte wie folgt aussehen:

Unabhängig davon, ob gekauft oder verkauft wird, wird das STOP-Level auf den Preis des arithmetischen gleitenden 20-Perioden-Durchschnitts gesetzt.

Sie können diese Regel aber auch wie folgt ändern:

Wenn der Kurs bei einer Kaufposition unter dem arithmetischen 20-Perioden-MA schließt, wird sie geschlossen. Bei einer Verkaufsposition wird die Position geschlossen, wenn der Kurs über dem arithmetischen 20-Perioden-MA schließt.

Ist nun klar, wie die Dinge tatsächlich ablaufen sollen? Es gibt keinen Mittelweg, alles muss schwarz-weiß sein, ohne dass man etwas erfinden oder sich vorstellen kann.

Aus diesem Grund ist es notwendig, dass Sie sich daran gewöhnen, den gewünschten Modus zu verwenden, bevor Sie ihn automatisieren. Hier gibt es keinen Raum für Unsicherheit. Die Regeln sind streng und müssen strikt eingehalten werden. Denken Sie daran: Sie sagen dem Roboter, was er berechnen soll. Es gibt keine Möglichkeit, ihm vorzuschreiben, wie parteiisch er zu sein hat, wenn er versucht, die Regeln einzuhalten. Auch adaptive Systeme folgen immer noch strengen und sehr genau definierten Regeln. Die Tatsache, dass sie sich an den Markt anpassen können, ist nur darauf zurückzuführen, dass wir innerhalb dieser strengen Regeln eine Art Fehler einbauen, den sie akzeptieren können.

Wenn man den Systemen ein akzeptables Fehlerniveau hinzufügt, können sie subjektiver werden, sodass man anfängt, ihnen zu sagen „vielleicht kaufen“ „vielleicht verkaufen“. Obwohl dieser Ansatz interessant erscheint, erschwert er die Kontrolle. Nicht von der Programmierung oder der Mathematik her, sondern von der Schwierigkeit für den Händler, der den EA steuert: Dies erfordert eine tiefe Kenntnis des Marktes, um die Aktionen des EA zu analysieren und festzustellen, ob er etwas falsch macht.

Um zu verstehen, wie man das System anpassungsfähig macht, nehmen wir das Beispiel eines Exponential Moving Average mit 9 Perioden. Dieses Beispiel kann auf jedes beliebige Modell angewandt werden, indem Regeln hinzugefügt werden, die dem Modell entsprechen. Die Kaufregel wird wie folgt aussehen:

Wenn der Balken oberhalb des gleitenden 9-Perioden-Durchschnitts schließt, analysieren wir die vorangegangenen 5 Balken: Wenn sie niedrigere Hochs bilden, eröffnen wir keine Position.

Wir haben dem System eine Ebene der mathematischen Subjektivität hinzugefügt. Zuvor haben wir gekauft, wenn der Balken über dem Durchschnitt geschlossen hat. Aber jetzt hängt der Kauf zusätzlich von früheren Hochs ab. Um all dies in Echtzeit zu analysieren, müssten Sie ein erfahrener Händler sein.

Beachten Sie, dass die Regel trotz einer gewissen Subjektivität streng bleibt. Wenn man sich ansieht, wie der EA funktioniert, könnte man meinen, dass er sich dem Markt anpasst. Dies ist jedoch nur eine Illusion, da ihre Funktionsweise nach wie vor einer strengen Regel unterliegt.

Einige Leute verwenden häufig Datenanalyseprogramme, um dieselben Regeln zu erstellen. Bei dieser Art der Programmierung könnte man sagen, dass das System begonnen hat, künstliche Intelligenz zu nutzen.

Aus meiner Programmiererfahrung heraus kann ich jedoch sagen, dass dies Unsinn ist. Wir verwenden Algorithmen eigentlich nur, um auf der Grundlage beobachteter Muster mathematische Kurven und Opportunitätskurven zu erstellen.

Diese Opportunitätskurven führen zu strengen Regeln, die eher auf mathematischer Analyse als auf Marktbeobachtung und Erfahrung beruhen. Das Problem ist, dass sich ein solches System nicht schnell an Marktveränderungen anpassen kann, weil wir es mit Maschinen zu tun haben, die nicht denken können. Sie sind reine Rechenmaschinen und tun nichts, bis sie dazu programmiert werden.

Jetzt verstehen Sie wahrscheinlich, wie weit wir gehen können. Es hat keinen Sinn, nach einem magischen System zu suchen, sondern wir müssen klar und objektiv bestimmen, was getan werden muss. Jetzt können wir zum nächsten Schritt übergehen.


Codieren der Idee

Viele sind vielleicht misstrauisch, weil sie denken, dass das Codieren einer Idee etwas sehr Kompliziertes ist, das nur für Experten, Magister oder Doktoranden der Programmierwissenschaften zugänglich ist. Dies ist jedoch nicht der Fall. Jeder, der über gesunden Menschenverstand, Vorsicht, Disziplin, Neugier und Interesse verfügt, kann seine Idee tatsächlich in einen Code verwandeln, wenn diese Idee klar und objektiv formuliert ist. Wenn Sie die Idee, die Sie umsetzen wollen, nicht klar definieren konnten, gehen Sie zurück zum vorherigen Schritt und schreiben Sie Ihre Idee klar und einfach auf ein Papier.

Jetzt wollen wir sehen, wie man die Idee in Code umsetzt. Wenn die Idee zu kurz ist, geben Sie eine detaillierte Beschreibung. Beschreiben Sie den schrittweisen Prozess und den Ablauf der Ereignisse. Je mehr Schritte wir in die Beschreibung aufnehmen, desto besser.

Um festzustellen, ob die Beschreibung wirklich angemessen ist, sollten Sie das folgende Flussdiagramm ausfüllen:

Abbildung 01

Abbildung 01 - Blockdiagramm der Implementierung

Ich weiß, dass viele dieses Bild als ziemlich seltsam empfinden werden. Wahrscheinlich haben sie noch nie jemanden gesehen, der so etwas nutzt, insbesondere Programmierer.

Abbildung 01 ist ein in der Programmierung und in anderen Bereichen weit verbreitetes Flussdiagramm. Aber da wir uns mit Programmierung beschäftigen, sollten wir uns auf diesen Punkt konzentrieren. Abbildung 01 zeigt, wie der Mechanismus funktionieren sollte, unabhängig davon, ob es sich um einen manuellen oder automatischen Mechanismus handelt. Jedes Programm hat seine eigene Karte, die in Abbildung 01 dargestellt ist. Wenn Sie alle Punkte richtig ausfüllen können, können Sie das Programm tatsächlich so erstellen, dass es perfekt funktioniert. Ein solches Flussdiagramm funktioniert auf der Grundlage von Fraktalen.

Aber wie ist das möglich? Wie kann ein Flussdiagramm ein Fraktal sein und darstellen, wie wir Dinge programmieren sollten? 😵😱 Lasst uns herausfinden, wie Abbildung 01 zu einem Fraktal wird, das alles bauen kann. Egal wie komplex eine Sache ist, wenn sie im Rahmen dieses Diagramms dargestellt werden kann, dann kann sie auch gebaut werden.

Jeder Prozess beginnt mit P1. Als Nächstes treffen wir am Punkt P2 eine Art Entscheidung. Es spielt keine Rolle, wie die Entscheidung ausfällt. Wir werden immer einen der beiden Wege nehmen: den, der zum Punkt P3 führt, oder den, der zu P4 führt. Der zu beschreitende Weg wird auf P2 festgelegt.

Sowohl P3 als auch P4 können ein Bild ähnlich wie in Abbildung 01 darstellen, bei dem der Prozess bis zum Ende wiederholt wird. Um die Erklärung zu vereinfachen, nehmen wir jedoch an, dass P3 und P4 einfache Berechnungen oder Aufrufe sind, die in Kürze zurückkehren werden. Am Ende werden beide auf P5 konvergieren.

Hier treffen wir eine neue Entscheidung auf der Grundlage dessen, was P3 oder P4 uns mitgeteilt haben. Je nachdem, was P5 entscheidet, können wir entweder zu P2 zurückkehren oder zu P6 gehen. Wenn wir zu P2 zurückkehren, wiederholt sich der Prozess, wodurch ein Rückkopplungssystem entsteht. Wenn wir zu P6 gehen, wird der Prozess beendet.

Dank dieser Dynamik, die bei P1 beginnt und in P6 ankommt, haben wir einen Nachrichten- oder Ausführungsfluss. Derselbe Fluss kann auch in P3 und P4 auftreten. In diesem Fall erscheint das Fraktal in P3 oder P4, aber nicht an anderer Stelle im Flussdiagramm.

Kommen wir zurück zur Programmierung. In MQL5 können P2 und P5 durch IF ELSE oder SWITCH CASE ersetzt werden. Es ist also möglich, alles ohne Programmierkenntnisse zu erstellen, solange Sie Ihre Idee in diesem Flussdiagramm darstellen und richtig erklären und beschreiben können.

P1 kann eine Reihe von Argumenten sein, die eine Funktion oder Prozedur erhält, oder der Punkt, an dem Sie mit der Ausführung des Codes beginnen, wenn er im Diagramm platziert wird. Es ist wichtig zu verstehen, dass wir alle anfänglichen und notwendigen Werte in P1 platzieren.

P6 kann der RETURN-Befehl oder etwas anderes sein, das eine Antwort auf der Grundlage der in P1 eingegebenen Werte liefert.

Bei P3 und P4 kann es sich entweder um ein weiteres Flussdiagramm handeln, das zeigt, wie zu entscheiden ist, oder um eine einfache Faktorisierung, bei der die P1-Werte verarbeitet werden. Unser Ziel ist es, das System in Abbildung 01 so zu beschreiben, dass es automatisiert werden kann.

Zum besseren Verständnis sehen wir uns einige Beispiele an. Beginnen wir mit einem 9-periodigen Exponential Moving Average. Wir werden die Beschreibung des Verfahrens in eine programmierbare Form umwandeln und sie in das Flussdiagramm einfügen. Bedenken Sie Folgendes:

Beispiel 01 - Kauf oder Verkauf unter Verwendung des 9-Perioden Exponential Moving Average:

  • In P1 geben wir den MA-Wert und den Schlusskurs des Balkens ein.
  • In P2 wird geprüft, ob der Kurs über oder unter dem angegebenen Durchschnitt geschlossen hat.
  • Wenn der Kurs höher schließt, gehen wir zu P4 (Kaufauftrag).
  • Wenn er tiefer schließt, gehen wir zu P3 (Verkaufsauftrag).
  • Nach dem Kauf oder Verkauf gehen wir zu Punkt P5.
  • Wenn der EA automatisiert ist, kehren wir zu P2 zurück, um das Verfahren beim nächsten Balken zu prüfen. Wenn es sich um einen manuellen EA handelt, gehen wir zu P6 über, da es keine anderen Aktionen gibt, die wir durchführen können.
Beispiel 02 - Trailing-Stop und Breakeven:

  • Geben Sie in P1 den gewünschten Gewinn und den aktuellen Barpreis an.
  • In P2 prüfen wir, ob die Position den gewünschten Gewinn erreicht hat: Wenn ja, führen wir P3 aus, wenn nicht, P4.
  • In P3 beginnen wir ein neues Flussdiagramm (P1 - wir geben den Wert des Stoppkurses an).
  • In diesem neuen Flussdiagramm wird in P2 geprüft, ob die Breakeven, die Gewinnschwelle, bereits erreicht wurde (wenn nicht, wird P3 ausgeführt; wenn ja, P4).
  • Wurde der Breakeven nicht erreicht, dann fahren wir fort. Fahren wir mit P5 und P6 fort, kehren wir zum vorherigen Flussdiagramm zurück und warten auf einen neuen Aufruf des Trailing-Stop- und Breakeven-Verfahrens.
  • Wir kehren zu P2 des verschachtelten Flussdiagramms zurück und prüfen, ob der Breakeven erreicht wurde. Wenn die Antwort ja lautet, führen Sie P4 (Trailing-Stop) aus.
  • Wenn P4 aufgerufen wird, öffnen wir ein neues Flussdiagramm, um zu prüfen, ob der Preis geändert werden kann, was auf verschiedene Weise mit anderen Flussdiagrammen geschehen kann. Am Ende kehren wir zum Hauptablaufdiagramm zurück und beenden die Prozedur, um auf einen neuen Aufruf zu warten.

Beispiel 03 - Arbeiten an RSI oder IFR:

Das Flussdiagramm ist ähnlich wie in Beispiel 01. Hier ist es:

  • In P1 erhalten wir den Indikatorwert.
  • In P2 prüfen wir, ob der Wert größer als 80 oder kleiner als 20 ist (Hinweis: Zur Veranschaulichung werden beliebige Werte angezeigt).
  • Wenn er über 80 liegt, führen wir P3 (Verkaufen) aus.
  • Wenn unter 20 liegt, dann P4 (kaufen).
  • Unabhängig vom Ergebnis fahren wir mit P5 fort; wenn das System automatisch arbeitet, kehren wir zu P2 zurück; andernfalls fahren wir mit P6 fort, da keine weiteren Maßnahmen erforderlich sind.

Ist es jetzt klar, wie es funktioniert 😁? Wenn Sie dies tun können, sind Sie auf dem besten Weg, einen automatisierten EA zu erstellen.

Ich verstehe, dass Sie wahrscheinlich ungeduldig sind, den Code zu sehen. Machen Sie sich keine Sorgen, denn der Code ist der einfachste Teil. Die Hauptsache ist, zu verstehen, wie dies erreicht wird und wie der eigene automatisierten EA erstellt werden kann. Ich möchte zeigen, dass jeder, ob professioneller Programmierer oder nicht, einen EA erstellen und das am besten geeignete Modell verwenden kann, ohne sich auf eine verwirrende und unsichere Programmierung zu verlassen.

Haben Sie also etwas Geduld, wir werden uns bald mit dem Code befassen. Ich werde Ihnen zeigen, wie man einen automatisierten EA erstellt, aber zuerst müssen Sie wissen, wie man das System nutzt. Andernfalls sind Sie auf den vorgelegten Code beschränkt, während das System viel mehr Möglichkeiten bietet. In dieser kurzen Serie gebe ich einen Teil meines Wissens weiter.


Verständnis und Umsetzung der Automatisierung

Wenn Sie das vorherige Thema verstanden haben, können Sie zum Code übergehen. Darauf soll in diesem Artikel jedoch nicht eingegangen werden: Ich werde später im Detail erklären, wie man den Code erstellt. Dieser Teil bedarf einer sehr ausführlichen Erklärung, da ich nicht die Verwendung eines bestimmten Modells vorschlage.

Der Zweck dieser Artikelserie ist es, zu zeigen, wie man ein bereits getestetes und manuell betriebenes Modell in ein automatisiertes System umwandelt, anstatt ein spezielles Betriebsmodell zu erstellen. In diesem Artikel zeige ich Ihnen, wie Sie mit dem Klassensystem arbeiten, das zur Erstellung eines Expert Advisors verwendet wird. Aus den oben genannten Gründen werden wir die tatsächliche Umsetzung jedoch für den nächsten Artikel aufheben.

Der in dieser Serie vorgestellte EA verfügt über eine knappe Liste von Funktionen, die jedoch nahezu 100% der Fälle abdecken kann. Nun, es kann unvorhersehbare Situationen geben, die eine Ergänzung des Codes erfordern, aber sie sind recht selten. Da die meisten Nutzer mit Indikatoren arbeiten werden, wird das vorgeschlagene Klassensystem deren Verwendung erleichtern und den Nutzer davon abhalten, größeren Code zu schreiben. Möglicherweise müssen Sie einige Alarme aktivieren, um sich über die Aktivitäten des EA zu informieren, da der Indikator nicht auf dem Chart sein muss, um Daten und Werte zu erhalten. Der Indikator kann im Chart laufen, sodass wir den Handel beobachten können, aber das spielt für den EA keine Rolle.

Ein weiterer wichtiger Fall ist, wenn wir zusätzlichen Code hinzufügen müssen, um ein bestimmtes Modell abzudecken. Dies sollte innerhalb eines Klassensystems geschehen, wobei die Konzepte der Kapselung und der Vererbung beibehalten werden sollten, um die Sicherheit des Codes nicht zu gefährden oder Probleme bei der Kompilierung zu verursachen. generierten Code.

Wie ich bereits in früheren Artikeln erwähnt habe, sollten wir auf die vom Compiler generierten Warnmeldungen achten. Wir sollten sie nicht ignorieren, außer in der Testphase vielleicht, wenn die Lösung noch nicht vollständig ist. Sobald der Code jedoch spezifischer wird, sollten die Compiler-Meldungen nicht ignoriert werden, auch wenn der Code bereits kompiliert wurde. Das Vorhandensein von Warnungen weist darauf hin, dass der Code möglicherweise nicht vollständig sicher ist oder nicht genügend Stabilität und Genauigkeit für eine 100%ige automatisierte Verwendung aufweist. Beachten Sie dies bei der Bearbeitung des Systems, das wir hier erstellen.

Sehen wir uns die in Abbildung 02 dargestellte Systemstruktur für den manuellen Betrieb an.

Abbildung 02

Abbildung 02 - Manueller Handel

In dieser Abbildung mag es so aussehen, als hätten wir es direkt mit dem EA oder einer seiner Klassen zu tun. Dies ist jedoch nicht der Fall. Der Händler hat es tatsächlich mit der Plattform zu tun, während der EA auf die von der Plattform generierten Befehle reagiert, nicht aber auf die Befehle des Nutzers.

Es ist sehr wichtig, dies im Hinterkopf zu behalten, da viele Leute denken, dass sie direkt mit einem EA interagieren, wenn sie mit ihm arbeiten. In Wirklichkeit findet die Interaktion mit der Plattform statt, die Befehle an den EA sendet. Dies wurde bereits in früheren Artikeln dieser Reihe erörtert und erläutert. Bevor Sie einen EA automatisieren, sollten Sie Abbildung 02 verstehen. Obwohl die Form je nach Programmierer unterschiedlich sein kann, ist das Prinzip dasselbe: Sie interagieren mit der Plattform, nicht mit dem EA.

Auf dieser Grundlage können wir überlegen, wo wir ein Auslösesystem platzieren. Beachten Sie, dass Abbildung 02 die Struktur der Dateien zeigt, nicht die interne Struktur der Klassen. Beachten Sie dies, wenn Sie das System in irgendeiner Weise verändern wollen. Ich versuche nur zu erklären, dass alle Änderungen mit Vorsicht vorgenommen werden müssen, um die Stabilität des Systems nicht zu gefährden und, was noch schlimmer ist, es nicht nach außen hin zuverlässig zu machen, während es in Wirklichkeit eine Zeitbombe ist, die jeden Moment explodieren kann.

Stellen wir uns vor, wie das System funktioniert: Sie als Händler informieren die MetaTrader 5-Plattform über Ihre Absicht, zu einem bestimmten Preis zu kaufen oder zu verkaufen, indem Sie mit der Klasse C_Mouse interagieren.

Diese Klasse ist mit dem EA verbunden, der Mausbewegungsereignisse empfängt und der Klasse C_Mouse mitteilt, wo die Kurslinie zu platzieren ist. Beim Mausklick wird der Punkt von C_Mouse an den EA weitergegeben, der analysiert, ob der Händler kauft oder verkauft. Der EA sendet dann eine Anfrage an die Klasse C_Manager, die die Bedingungen für die C_ControlOfTime-Zeit überprüft.

Je nach den Erstellungsparametern in der Klasse C_Manager kann der Antrag angenommen oder abgelehnt werden. Wird sie angenommen, wird der entsprechende Auftrag an die Klasse C_Orders gesendet, die ihrerseits die Anfrage an den Handelsserver weiterleitet. Wenn der Server auf die Anfrage antwortet, wird ein neues Ereignis in der MetaTrader 5-Plattform ausgelöst, das den EA über das OnTradeTransaction-Ereignis darüber informiert, was auf dem Server passiert ist.

Der EA analysiert diese Informationen und informiert, je nach Kontext, die Klassen C_Manager und C_Orders über das Ergebnis der Anfrage des Händlers. So wird eine Position durch Interaktion mit dem im EA vorhandenen Code eröffnet, geändert oder geschlossen. Ein Händler kann jedoch die Symbolleiste verwenden, um eine vom EA auf dem Server eröffnete Order oder Position zu schließen oder zu ändern. In diesem Fall generiert die MetaTrader 5 Plattform mit OnTradeTransaction ein Ereignis, das den Händler über die Änderung informiert. Der EA sollte dann die Informationen an die Klasse C_Manager weitergeben, falls zutreffend.

Wenn Sie verstehen, wie das funktioniert, können Sie sehen, dass das Automatisierungssystem die Klasse C_Mouse ersetzen sollte, die das gesamte Triggersystem initialisiert. Obwohl die Klasse C_Mouse bei der Automatisierung des Systems entfernt wird, findet die Automatisierung nicht statt, da C_Mouse weiterhin mit dem EA interagiert, der Aufrufe an die Klasse C_Manager erzeugt.

Die C_Mouse-Klasse kann sogar eine Verbindung zwischen dem EA und der C_Manager-Klasse herstellen. Da wir aber von vornherein wussten, dass die Klasse C_Mouse aus dem System entfernt werden würde, ist das gesamte System so konzipiert, dass sie leicht entfernt werden kann. In diesem Schritt erfolgt die Automatisierung.

Dennoch müssen wir uns mit den Problemen der Auslösung von Ereignissen befassen, die durch die Interaktion eines Händlers mit der MetaTrader 5-Plattform verursacht werden. In diesem Fall ignoriert der EA einfach alle Anfragen und informiert die C_Manager-Klasse nur über Ereignisse im Zusammenhang mit dem Auftragssystem, damit sie über die Aktionen des Händlers informiert ist. Dieser Prozess wird im nächsten Artikel deutlicher werden, in dem wir uns die Automatisierung genauer ansehen werden.


Schlussfolgerung

In diesem Artikel haben wir uns angesehen, wie man ein Flussdiagramm verwendet, um die Betriebsregeln festzulegen. Solche Fragen stellen sich oft, wenn es um künstliche Intelligenz geht. Aber die Idee selbst ist nicht neu. Ich sehe jedoch oft, dass die Leute von etwas Neuem sprechen. In jedem Fall ist das hier vorgestellte Material wertvoll, auch wenn es nur einen kleinen Teil des vorhandenen Potenzials darstellt.

Ich lade den Leser ein, sich die Zeit zu nehmen, diesen Artikel und verwandte Artikel zu lesen, um jeden der genannten Schritte zu verstehen. Im nächsten Artikel werden wir sehen, wie das System automatisch, wie von Zauberhand, auf der Grundlage dessen funktioniert, was wir hier erklärt haben, sodass ein gutes Verständnis dieses Materials Ihnen helfen wird, das Ergebnis der gesamten Artikelserie zu verstehen.

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

Mehrschichtiges Perzeptron und Backpropagation-Algorithmus (Teil 3): Integration mit dem Strategy Tester - Überblick (I). Mehrschichtiges Perzeptron und Backpropagation-Algorithmus (Teil 3): Integration mit dem Strategy Tester - Überblick (I).
Das mehrschichtige Perzeptron ist eine Weiterentwicklung des einfachen Perzeptrons, das nichtlineare separierbare Probleme lösen kann. Zusammen mit dem Backpropagation-Algorithmus kann dieses neuronale Netz effektiv trainiert werden. In Teil 3 der Serie Multilayer Perceptron und Backpropagation werden wir sehen, wie man diese Technik in den Strategy Tester integriert. Diese Integration ermöglicht die Nutzung komplexer Datenanalysen, um bessere Entscheidungen zur Optimierung Ihrer Handelsstrategien zu treffen. In diesem Artikel werden wir die Vorteile und Probleme dieser Technik erörtern.
Wie man einen nutzerdefinierten True Strength Index-Indikator mit MQL5 erstellt Wie man einen nutzerdefinierten True Strength Index-Indikator mit MQL5 erstellt
Hier ist ein neuer Artikel darüber, wie man einen nutzerdefinierten Indikator erstellt. Dieses Mal werden wir mit dem True Strength Index (TSI) arbeiten und einen darauf basierenden Expert Advisor erstellen.
Erstellen eines EA, der automatisch funktioniert (Teil 14): Automatisierung (VI) Erstellen eines EA, der automatisch funktioniert (Teil 14): Automatisierung (VI)
In diesem Artikel werden wir das gesamte Wissen aus dieser Serie in die Praxis umsetzen. Wir werden endlich ein 100%ig automatisiertes und funktionierendes System aufbauen. Aber vorher müssen wir noch ein letztes Detail klären.
Kategorientheorie in MQL5 (Teil 7): Mehrere, relative und indizierte Domänen Kategorientheorie in MQL5 (Teil 7): Mehrere, relative und indizierte Domänen
Die Kategorientheorie ist ein vielfältiger und expandierender Zweig der Mathematik, der erst seit kurzem in der MQL5-Gemeinschaft Beachtung findet. In dieser Artikelserie sollen einige der Konzepte und Axiome erforscht und untersucht werden, mit dem übergeordneten Ziel, eine offene Bibliothek einzurichten, die Einblicke gewährt und hoffentlich auch die Nutzung dieses bemerkenswerten Bereichs für die Strategieentwicklung von Händlern fördert.