Die Sprache MQL5 von Grund auf selbst erlernen - Seite 27

 
Vasiliy Sokolov:

Dies ist ein kugelförmiges Pferd in einem Vakuum, kein Flussdiagramm eines funktionierenden EA. Einige Blöcke sind möglicherweise gar nicht vorhanden. Die Blöcke können neu angeordnet werden. Jedes MCL-Programm ist ein Ereignisbehandler. Dies ist das wichtigste Postulat, das in dem Schema nicht enthalten ist, was bedeutet, dass es die Leser in die Irre führt. Mein Rat an Sie: Lesen Sie dieses alte Zeug nicht. Kovalevs Lehrbuch ist veraltet. Viele der darin enthaltenen Informationen sind nicht korrekt, insbesondere in Bezug auf das Auftragssystem von MT5. Kovalev bietet im Wesentlichen an, dieses lächerliche Schema auswendig zu lernen, dann eine Reihe von Ereignissen auswendig zu lernen und dann die Eule auf den Globus zu ziehen: wo angeblich dieses Schema im Expert Advisor-Programm implementiert ist. In MKL gibt es keine Programme. Es gibt typische Muster für die Nutzung der Handelsumgebung. Aber es gibt kein allgemeingültiges Schema, das man verstehen und sich merken muss. Alle "Schemata" sind aus Funktionen und Reaktionen dieser Funktionen auf Ereignisse zusammengesetzt. Außerdem gibt es Daten, die angefordert werden... wieder durch Funktionen.

Mit allem nötigen Respekt. So etwas gibt es dort nicht. Es ist nur wichtig, dass die Studenten verstehen, dass es sich um einen Expert Advisor für den Unterricht handelt und es nicht erlaubt ist, damit zu handeln. Und um handeln zu können, müssen Sie Handelsstrategien lernen... Aber das ist nach dem Erlernen der Sprache. Übrigens, die Erklärung ist gut und klar. Was wir hier oft vermissen, vor allem in Kommentaren in der kodobase. Manchmal ist es schwer zu verstehen, was geschrieben ist)))) Ich stimme zu, dass es so etwas in einem guten Code nicht gibt.)

 
MrBrooklin:

Im MQL4-Lehrbuch von Sergei Kovalev fand ich, was ich suchte. Hier ein Auszug aus dem Buch:"Structure of a Simple Expert Advisor ". Nachfolgend ist die Grundstruktur eines einfachen Expert Advisors dargestellt, der aus mehreren Funktionsblöcken besteht, wobei jeder Block einen bestimmten unabhängigen Teil der Berechnungen durchführt".


In diesem Zusammenhang benötige ich einige Experten Rat, ist dieses strukturierte Schema anwendbar auf das Schreiben eines Expert Advisor in MQL5, oder sollte ich einige andere Blöcke hinzufügen?

Mit freundlichen Grüßen, Vladimir.

Ja, diese Regelung wird Ihnen gefallen. Sie ist einfach und übersichtlich. Sobald Sie die Sprache beherrschen, können Sie die Blöcke nach Belieben erweitern/ändern/hinzufügen, aber Sie können mit diesem einen beginnen. Das richtige Schema.
 
Vasiliy Sokolov:

Dies ist ein kugelförmiges Pferd in einem Vakuum, kein Flussdiagramm eines funktionierenden EA. Einige Blöcke sind möglicherweise gar nicht vorhanden. Die Blöcke können neu angeordnet werden. Jedes MCL-Programm ist ein Ereignisbehandler. Dies ist das wichtigste Postulat, das nicht in dem Schema enthalten ist, was bedeutet, dass es die Leser in die Irre führt. Mein Rat an Sie: Lesen Sie dieses alte Zeug nicht. Kovalevs Lehrbuch ist veraltet. Viele der darin enthaltenen Informationen sind nicht korrekt, insbesondere in Bezug auf das Auftragssystem von MT5. Kovalev bietet im Wesentlichen an, dieses lächerliche Schema auswendig zu lernen, dann eine Reihe von Ereignissen auswendig zu lernen und dann die Eule auf den Globus zu ziehen: wo angeblich dieses Schema im Expert Advisor-Programm implementiert ist. In MKL gibt es keine Programme. Es gibt typische Muster für die Nutzung der Handelsumgebung. Aber es gibt kein allgemeingültiges Schema, das man verstehen und sich merken muss. Alle "Schemata" sind aus Funktionen und Reaktionen dieser Funktionen auf Ereignisse zusammengesetzt. Außerdem gibt es Daten, die angefordert werden... wieder durch Funktionen.

Ich verstehe Ihre Kritik nicht. Das Schema ist logisch, alle Aktionen sind der Reihe nach angeordnet. Vermittelt einen Eindruck von der korrekten Struktur des EA. Natürlich kann man die Dinge mischen, einige Dinge weglassen und andere hinzufügen, aber die Stabilität eines solchen Programms würde dadurch dramatisch beeinträchtigt werden. Im Allgemeinen sehe ich nicht, was es an der Regelung zu beanstanden gibt.
 
Реter Konow:
Ich verstehe Ihre Kritik nicht. Das Schema ist logisch, alle Aktionen sind der Reihe nach angeordnet. Vermittelt eine Vorstellung von der korrekten Struktur eines EA. Natürlich können wir einiges durcheinanderbringen und wegwerfen, aber die Stabilität dieses Programms wird sich dramatisch verändern. Im Allgemeinen sehe ich nicht, was es an der Regelung zu beanstanden gibt.

Okay, in Ordnung. Lassen Sie mich versuchen, das zu erklären.

1) Hier ist ein Schema. Es werden einige Blöcke angegeben (was ein Block ist, wird in Bezug auf das mql-Programm nicht erklärt. Vielleicht ist es eine Funktion, vielleicht eine Reihe von Prozeduren, vielleicht auch etwas anderes, aber lassen Sie uns intuitiv verstehen, was ein Block auf der gleichen Ebene wie der Autor ist.)

2) Die Blöcke bilden eine Kette vom Anfang des Programms bis zu seinem Ende. In einigen Blöcken ist die Programmausführungskette in zwei geteilt (aber warum eigentlich nur in zwei? Können die drei nicht in vier geteilt werden? Und wenn vier erforderlich sind, wie kann man das in einem Diagramm darstellen? Sollen wir zum A1-Format wechseln?). Offenbar ist das eine Möglichkeit, Verzweigungen darzustellen.

3) Es gibt einige sehr merkwürdige Blöcke, wie z. B. "Nachrichten". Was ist das für ein Block? Wahrscheinlich eine Art Benachrichtigung des Programms, dass es keine geeigneten Bedingungen gibt: Bei jedem Ticken kommt eine Meldung: "Zu teuer zum Kaufen, zu teuer zum Kaufen, zu...". - Natürlich ist das cool, aber es ist alles nur eine Vermutung.

4) Der seltsamste Block ist der Block "Fehlerbehandlung". Man kann hineingehen, aber man kann nicht wieder herauskommen. Das Programm hat sich einen Fehler eingefangen und sitzt in diesem Block (hängt wahrscheinlich bis zu einem kompletten Neustart, besser noch, macht es so, dass das Terminal dauerhaft hängt, was keine weiteren Fehler machen würde - das ist die Idee!)

5) Wenn wir das Programm zum ersten Mal starten oder es keine offenen Positionen im Konto gibt, was macht dann der Orderschließungsblock? Nichts. Aber dieses logische Schema sollte uns immer noch zum Auftragsabschlussblock führen. Wir kommen dorthin, weil das System streng und hierarchisch strukturiert ist. Alle Blöcke müssen nacheinander abgearbeitet werden, auch wenn dies eine sinnlose und rücksichtslose Abarbeitung einer leeren Liste von Positionen ist.

6) Der Block für die Berechnung des Auftragswerts wird unter den Block für den Auftragsabschluss gesetzt. Wie kann das sein? Vielleicht schließen wir einen Auftrag auf der Grundlage seines "Wertes". Es ist nicht klar, was hier vor sich geht.

Und wenn ich mir dieses Schema ansehe, verstehe ich nicht wirklich, wie man dieses "Ding" zur Untersuchung empfehlen kann? Wie kann sie als gut, großartig und lehrreich angesehen werden?

 
Vasiliy Sokolov:

Okay, in Ordnung. Lassen Sie mich versuchen, das zu erklären.

1) Hier ist ein Schema. Es werden einige Blöcke angegeben (was ein Block ist, wird in Bezug auf das mql-Programm nicht erklärt. Vielleicht ist es eine Funktion, vielleicht eine Reihe von Prozeduren, vielleicht auch etwas anderes, aber lassen Sie uns intuitiv verstehen, was ein Block auf der gleichen Ebene wie der Autor ist).

2) Die Blöcke bilden eine Kette vom Anfang des Programms bis zu seinem Ende. In einigen Blöcken ist die Programmausführungskette in zwei geteilt (aber warum eigentlich nur in zwei? Können die drei nicht in vier geteilt werden? Und wenn vier erforderlich sind, wie kann man das in einem Diagramm darstellen? Sollen wir zum A1-Format wechseln?). Offenbar ist das eine Möglichkeit, Verzweigungen darzustellen.

3) Es gibt sehr merkwürdige Blöcke, wie z. B. "Nachrichten". Was ist das für ein Block? Wahrscheinlich eine Art Benachrichtigung durch das Programm, dass es keine geeigneten Bedingungen gibt: bei jedem Ticken kommt eine Meldung: "Zu teuer zum Kaufen, zu teuer zum Kaufen, zu...". - Natürlich ist das cool, aber es ist alles nur eine Vermutung.

4) Der seltsamste Block ist der Block "Fehlerbehandlung". Man kann hineingehen, aber man kann nicht wieder herauskommen. Das Programm hat sich einen Fehler eingefangen und sitzt in diesem Block (hängt wahrscheinlich bis zu einem kompletten Neustart, besser noch, macht es so, dass sich das Terminal permanent aufhängt, was keine weiteren Fehler machen würde - das ist die Idee!)

5) Wenn wir das Programm zum ersten Mal starten oder es keine offenen Positionen im Konto gibt, was macht dann der Orderschließungsblock? Nichts. Aber dieses logische Schema sollte uns immer noch zum Auftragsabschlussblock führen. Wir gelangen dorthin, weil das System streng und hierarchisch strukturiert ist. Alle Blöcke müssen nacheinander abgearbeitet werden, auch wenn dies eine sinnlose und rücksichtslose Abarbeitung einer leeren Liste von Positionen ist.

6) Der Block für die Berechnung des Auftragswerts wird unter den Block für den Auftragsabschluss gesetzt. Wie kann das sein? Vielleicht schließen wir einen Auftrag auf der Grundlage seines "Wertes". Es ist nicht klar, was hier vor sich geht.

Und wenn ich mir dieses Schema ansehe, verstehe ich nicht wirklich, wie man dieses "Ding" zur Untersuchung empfehlen kann? Wie kann man das als gut, wunderbar und lehrreich bezeichnen?

GUT. Jetzt ist die Kritik deutlicher. Nun, in vielerlei Hinsicht kann man dem zustimmen, wenn man es "unter der Lupe" betrachtet, aber es hat keinen Sinn, dies zu tun. Ein Anfänger sollte eine schnelle, allgemeine und vereinfachte Vorstellung von der häufigsten und korrekten (im globalen Sinne) EA-Zusammensetzung bekommen.

Ein Block ist ein logisch isolierter Satz von Bedingungen, Prüfungen, Funktionen und Programmen.

Der Entwurf der Programmbausteine sorgt für die korrekte Ausführung des Programms.

Die Verzweigungen und die tiefe Hierarchie der Blockverbindungen werden im Diagramm nicht dargestellt, um den Schüler nicht zu verwirren. Alles wird absichtlich vereinfacht, und das ist aus pädagogischer Sicht auch richtig so. Wäre es besser gewesen, wenn Kovalev 20 Seiten lang eine "Galerie" möglicher Strukturhierarchien beschrieben hätte? Wahrscheinlich doch nicht...) Aber ja, im Leben ist tatsächlich alles komplizierter und vielfältiger als auf dem Diagramm. Aber man muss mit einer einfachen Sache anfangen.
 
Реter Konow:
Ein Anfänger muss eine grundlegende, verallgemeinerte und vereinfachte Vorstellung von der häufigsten und korrekten (im globalen Sinne) Zusammensetzung des EA bekommen.

Aha, also global gesehen hat Kovalev recht, was ist mit Fehlern im Schema - ein Anfänger wird verstehen, wo diese Fehler sind und wo es richtig gezeichnet ist. Er ist ein Anfänger, um die Essenz der verallgemeinerten Darstellung der Vorrichtung des Beraters zu erhalten. Und was ist ein Block, was sind Pfeile, und warum muss ich nach der Bearbeitung von Fehlern einfrieren - ein Anfänger wird sich das mit seinem scharfen Verstand überlegen.

 
Реter Konow:
Gut. Jetzt ist die Kritik deutlicher. Nun, man kann in vielerlei Hinsicht zustimmen, wenn man die Sache "unter die Lupe" nimmt, aber das hat keinen Sinn. Ein Anfänger sollte eine schnelle, verallgemeinerte und vereinfachte Vorstellung von der am weitesten verbreiteten und korrekten (im globalen Sinne) EA-Zusammensetzung bekommen.

Ein Block ist ein logisch isolierter Satz von Bedingungen, Prüfungen, Funktionen und Programmen.

Die Blockstruktur sorgt für die korrekte Ausführung des Programms.

Die Verzweigungen und hierarchischen Verknüpfungen der Blöcke sind im Diagramm nicht dargestellt, um den Schüler nicht zu verwirren. Alles wird absichtlich vereinfacht, und das ist aus pädagogischer Sicht auch richtig so. Wäre es besser gewesen, wenn Kovalev 20 Seiten lang eine "Galerie" von Hierarchien möglicher Strukturen beschrieben hätte? Wahrscheinlich doch nicht...) Aber ja, im Leben ist tatsächlich alles komplizierter und vielfältiger als auf dem Diagramm. Aber man muss mit einer einfachen Sache anfangen.

Hallo Peter! Ich fasse die Informationen aus allen Nachrichten zusammen. In der Programmiersprache MQL5 gibt es keinen klar definierten BASE-Algorithmus für die Erstellung und Ausführung eines Programms (Skript, Expert Advisor). Alle Algorithmen sind auf ihre Weise einzigartig und können keinen sogenannten "Kern" haben, der dann erweitert werden kann. Dann stellt sich heraus, dass mein Selbstlernprogramm in einer Sackgasse steckt? Falls es jemandem aufgefallen ist, folgen alle meine bisher geschriebenen Skripte einem Komplikationsschema, d.h. von einfach bis komplex. Im Grunde genommen muss ich das Konzept der Organisation von Gedanken in meinem Kopf durchbrechen. Funktioniert das so?

Hochachtungsvoll, Vladimir.

 
MrBrooklin:

Hallo Peter! Ich werde die Informationen aus allen Nachrichten zusammenfassen. In der Programmiersprache MQL5 gibt es keinen klar definierten BASE-Algorithmus zur Erstellung und Ausführung eines Programms (Skript, Expert Advisor). Alle Algorithmen sind auf ihre Weise einzigartig und können keinen sogenannten "Kern" haben, der dann erweitert werden kann. Dann stellt sich heraus, dass mein Selbstlernprogramm in einer Sackgasse steckt? Falls es jemandem aufgefallen ist, folgen alle meine bisher geschriebenen Skripte einem Komplikationsschema, d.h. von einfach bis komplex. Im Grunde genommen muss ich das Konzept der Organisation von Gedanken in meinem Kopf durchbrechen. Funktioniert das so?

Hochachtungsvoll, Vladimir.

Nein, ganz und gar nicht. Die Kritik von Vassily hat die logische Richtigkeit des EA-Schemas in keiner Weise geschmälert. Ja, man kann einige Fehler finden und sie "verstehen", aber im Allgemeinen ist es korrekt, und das ist das Wichtigste. Dieses Schema wird Ihnen helfen, Ihre eigenen EAs zu schreiben, wenn Sie dort ankommen. Im Großen und Ganzen gibt es keinen Unterschied zwischen mql4 und mql5. Die Details sind anders, aber sie sind leicht zu verstehen. Lernen Sie weiter wie bisher.
 
Vasiliy Sokolov:

Aha, also global gesehen hat Kovalev recht, was ist mit Fehlern im Schema - ein Anfänger wird verstehen, wo diese Fehler sind und wo es richtig gezeichnet ist. Er ist ein Anfänger für das, um das Wesen der verallgemeinerten Darstellung der Vorrichtung des Beraters zu erhalten. Was ist ein Block, was sind Pfeile, und warum muss man nach der Bearbeitung von Fehlern einfrieren - ein Anfänger wird das mit seinem starken Verstand durchdenken.

Ein besseres Lehrbuch haben wir sowieso nicht, also....

Kleine Fehler sind keine Entschuldigung dafür, dass man aufhört und Teile des Codes anderer Leute "zusammenklebt", wie es viele tun. Außerdem ignorieren Sie die grundsätzliche Korrektheit der Darstellung des Materials, von dem es sehr viel gibt.
 
MrBrooklin:

Hallo Peter! Ich werde die Informationen aus allen Nachrichten zusammenfassen. In der Programmiersprache MQL5 gibt es keinen klar definierten BASE-Algorithmus zur Erstellung und Ausführung eines Programms (Skript, Expert Advisor). Alle Algorithmen sind auf ihre Weise einzigartig und können keinen sogenannten "Kern" haben, der dann erweitert werden kann. Dann stellt sich heraus, dass mein Selbstlernprogramm in einer Sackgasse steckt? Falls es jemandem aufgefallen ist, folgen alle meine bisher geschriebenen Skripte einem Komplikationsschema, d.h. von einfach bis komplex. Im Grunde genommen muss ich das Konzept der Organisation von Gedanken in meinem Kopf durchbrechen. Funktioniert das so?

Hochachtungsvoll, Vladimir.

Genau! Jeder versucht, das Programmieren zu erlernen, wobei er falsche Vorstellungen vom Programm hat, die auf Lebenserfahrung beruhen. Zum Beispiel, dass ein Programm wie ein Text in einem Buch ist, mit einem Inhaltsverzeichnis, einer Einleitung, einem Inhaltsverzeichnis und einem Schluss. Das heißt, dass das Programm eine Art sequentielles Schema vom Anfang bis zum Ende ist. In den ersten Phasen funktioniert diese Idee, aber wenn das Programm komplexer wird, treten Schwierigkeiten auf, und es ist nicht mehr möglich, ein zuverlässig funktionierendes Programm zu schreiben. Kovalev ist sehr gut darin, bärische Leistungen zu erbringen: Er versucht, dem Leser mit Hilfe seines zugänglichen begrifflichen Apparats zu erklären, dass das Programm dasselbe Buch mit einem solchen und jenem Schema ist. Aber es gibt keine Pläne! Das Skript hat ein grundlegend anderes "Schema" als der Expert Advisor, und der Expert Advisor hat ein anderes Schema als der Indikator.