Fragen zu OOP in MQL5

 

Gestern kam eine Frage auf, und ich beschloss, mich mit meinen Brüdern zu beraten)

Am Samstag, den 21.05.2016, habe ich einem Mann die Grundlagen von OOP am Beispiel einer Standardbibliothek erklärt. Er programmierte früher in MQL4, machte dann 5 Jahre lang eine Pause und beschloss, wieder zurückzukommen. Ich habe begonnen, ihn in das MT5-Hedging einzuführen, denn ich selbst mache dort alles neu.

So seltsam es auch erscheinen mag, diese Person (Maxim, ich meine Sie, wenn Sie diesen Artikel lesen :)) hat die Grundlagen von OOP verstanden und wir haben es sogar geschafft, die wichtigsten Teile am Beispiel einer Standardbibliothek unter dem Debugger durchzugehen.

Aber!!! Ich habe eine Aufnahme versprochen, und aus technischen Gründen ist alles im Sande verlaufen((

Ich habe versprochen, dass ich Video-Spickzettel genau auf OOP machen werde, ich denke, 10 Minuten pro Stück

Frage:

Schlagen Sie ein Thema über OOP in MQL5 für 10 Minuten vor. Ich werde es auf YouTube veröffentlichen, es wird für alle nützlich sein.

------------------

Schreiben Sie alles, was interessant ist, ich werde es sortieren, ich werde versuchen, Ihre Wünsche in meiner Freizeit zu erfüllen

Viel Glück ))

 
Alexey Volchanskiy:

Gestern kam eine Frage auf, und ich beschloss, mich mit meinen Brüdern zu beraten)

Am Samstag, den 21.05.2016, habe ich einem Mann die Grundlagen von OOP am Beispiel einer Standardbibliothek erklärt. Er programmierte früher in MQL4, machte dann 5 Jahre lang eine Pause und beschloss, wieder zurückzukommen. Ich habe begonnen, ihn in das MT5-Hedging einzuführen, denn ich selbst mache dort alles neu.

So seltsam es auch erscheinen mag, diese Person (Maxim, ich meine Sie, wenn Sie diesen Artikel lesen :)) hat die Grundlagen von OOP verstanden und wir haben es sogar geschafft, die wichtigsten Teile am Beispiel einer Standardbibliothek unter dem Debugger durchzugehen.

Aber!!! Ich habe eine Aufnahme versprochen, und aus technischen Gründen ist alles in die Hose gegangen((

Ich habe versprochen, dass ich Video-Spickzettel genau auf OOP machen werde, ich denke, 10 Minuten pro Stück

Frage:

Schlagen Sie ein Thema über OOP in MQL5 für 10 Minuten vor. Ich werde es auf YouTube veröffentlichen, es wird für jeden nützlich sein.

------------------

Schreiben Sie alles, was interessant ist, ich werde es sortieren, ich werde versuchen, Ihre Wünsche in meiner Freizeit zu erfüllen

Viel Glück ))

Alexey, machen Sie Beispiele zu den am wenigsten behandelten Stellen in der Hilfe - Zeiger, Funktionszeiger, Arbeit mit Vorlagenklassen usw. Obwohl, ehrlich gesagt, meiner Meinung nach, ein solches Video über C++ in Hülle und Fülle und es wird das Wissen nicht erhöhen, um das Wissen zu erhöhen, brauchen Sie Literatur, Webinare und Fleiß.
 
coderex:
Alexey, machen Sie Beispiele zu den am wenigsten behandelten Stellen in der Hilfe - Zeiger, Funktionszeiger, Arbeit mit Vorlagenklassen usw. Obwohl, ehrlich gesagt, meiner Meinung nach ein solches Video über C++ reichlich vorhanden ist und das Wissen in keiner Weise erweitert, braucht man Literatur, Webinare und Fleiß, um es zu erweitern.
Es gibt keine Zeiger in MQL, es gibt Deskriptoren) Vor kurzem wurden (bedingte) Zeiger auf Funktionen eingeführt, eine Art Krücke, um dem allgemeinen Konzept "alle Algo-Händler sind selbstmörderisch, gebt ihnen keine Zeiger" gerecht zu werden.
 
Alexey Volchanskiy:
In MQL gibt es keine Zeiger, sondern nur Handles)) Zeiger (bedingt) auf Funktionen wurden vor kurzem eingeführt, es ist eine Art Krücke, um dem allgemeinen Konzept "alle Algo-Händler sind selbstmörderisch, sie dürfen keine Zeiger verwenden" zu entsprechen.

Alexej, klammere dich nicht an Worte :) Wenn ich "Deskriptoren" geschrieben hätte, würden Sie mich aus irgendeinem Grund sicher nicht sofort verstehen. Was das betrifft, was vor kurzem eingeführt wurde und was vor langer Zeit eingeführt wurde, so ändert das nichts an der Essenz, diese Fragen zur Hilfe hängen in der Luft, es gibt kein Wort oder ein bisschen über sie. Und diese Namen, egal wie unterschiedlich sie sich in Bezug auf C++ und MQL verhalten mögen, sehen alle gleich aus, zumindest versuchen die Entwickler, es so zu machen. Ich habe sogar gesehen, dass sie bereits einen Zeigervergleich eingeführt haben :) Obwohl ich mir ehrlich gesagt nicht vorstellen kann, wo man es für MT verwenden könnte.

Dennoch denke ich, dass viele Programmieranfänger Ihnen dankbar sein werden, wenn Sie diese Fragen behandeln. Ich habe Ihr Video neulich gesehen; Sie wissen, wie man Dinge so klar erklärt :)

 
coderex:

Alexej, klammere dich nicht an Worte :) Wenn ich "Deskriptoren" geschrieben hätte, würden Sie mich aus irgendeinem Grund sicher nicht sofort verstehen. Was das betrifft, was vor kurzem eingeführt wurde und was vor langer Zeit eingeführt wurde, so ändert das nichts an der Essenz, diese Fragen zur Hilfe hängen in der Luft, es gibt kein Wort oder ein bisschen über sie. Und diese Namen, egal wie unterschiedlich sie sich in Bezug auf C++ und MQL verhalten mögen, sehen alle gleich aus, zumindest versuchen die Entwickler, es so zu machen. Ich habe sogar gesehen, dass sie bereits einen Zeigervergleich eingeführt haben :) Obwohl ich mir ehrlich gesagt nicht vorstellen kann, wo man es für MT verwenden könnte.

Dennoch denke ich, dass viele Programmieranfänger Ihnen dankbar sein werden, wenn Sie diese Fragen behandeln. Ich habe mir einmal Ihr Video angesehen, Sie wissen, wie man Menschen klar erklärt :)

Imho sollte man auf keinen Fall ein Lehrvideo zu einer erweiterten Version der Hilfe machen. Das Ziel ist es, zu erziehen, nicht die unwürdigen Details zu beleuchten.
 
Alexey Volchanskiy:

Frage:

Schlagen Sie ein Thema über OOP in MQL5 für 10 Minuten vor, ich werde es auf YouTube stellen, das heißt, es wird für jeden nützlich sein

OOP sollte ohne Code und all die abstruse Nomenklatur wie Klassen, Objekte, Zeiger etc. etc. erklärt werden.

Wie funktioniert ein klassischer Programmierkurs? Zunächst versucht ein Schüler mühsam, vom menschlichen Denken zu den Grundlagen der Programmierung überzugehen (Schleifen, Funktionen, Variablen und andere Dinge, die man als "Wissensgepäck" benötigt). Wenn dann das Durcheinander von Funktionen, Variablen und Wenns eine mehr oder weniger geordnete Struktur bildet, wird dem Schüler gesagt: "Schauen Sie, es gibt so etwas wie OOP. Vergessen Sie, was man Ihnen früher beigebracht hat, und fangen Sie wieder an, wie ein Mensch zu denken". Was folgt, ist ein Bruch der Schablonen, das soeben mühsam errungene "Gepäck des Wissens" wird auf den Müllhaufen geworfen, und der Mensch findet sich irgendwo zwischen Himmel und Erde wieder. Natürlich bleibt diese "PLO" dann mehrere Jahre lang als böser Traum in Erinnerung, mit Schaudern und Schmerzen in den verbleibenden Teilen des Gehirns (die anderen sind von der neuen Erkenntnis verbrannt worden).

Nein, ich sage kategorisch, dass man nicht programmieren lernen sollte. Im Gegenteil, sie ist schädlich und gefährlich. Stattdessen ist es notwendig, das Denken zu lehren. Und damit ist die klassische Lernmethode völlig gescheitert.

 
Vasiliy Sokolov:
Meiner Meinung nach kann man aus einem Schulungsvideo auf keinen Fall eine erweiterte Version von Help machen. Die Aufgabe besteht darin, aufzuklären, nicht die unwürdigen Details zu beleuchten.

Alexej fragte nach der Meinung der Forumsnutzer, ich schrieb ihm meine Meinung, und was daraus wird, weiß nur Alexej :)

Übrigens, wie kann man lernen, wenn es nirgendwo Informationen darüber gibt? Ich weiß darüber Bescheid, da ich in C++ schreibe, und diejenigen, die nur MQL5 lernen, werden über diese Details nicht Bescheid wissen, da die Referenz kein Wort darüber verliert :)

 
Möchten Sie OOP kompetent erlernen? - UML lernen
 

Vasiliy Sokolov:

Wenn dann das Durcheinander von Funktionen, Variablen und Wenns in Ihrem Kopf eine mehr oder weniger geordnete Struktur bildet, wird dem Schüler gesagt: "Sehen Sie, es gibt so etwas wie OOP. Vergessen Sie, was man Ihnen früher beigebracht hat, und fangen Sie wieder an, wie ein Mensch zu denken". Dann kommt der Bruch der Schablonen, das soeben mühsam errungene "Gepäck des Wissens" wird auf den Müll geworfen und der Mensch findet sich irgendwo zwischen Erde und Himmel wieder.

Nun, Sie sind zu viel. Ein Mann hat sich zunächst nur mit OOP beschäftigt. Zumindest, indem man einfach eine Tasse Kaffee aufbrüht. Woher kommen die Muster? IMHO ist es Unsinn, dass unintelligente Lehrer ihre Probleme auf die Schüler abwälzen.
 

Erschrecken Sie die Leute nicht mit OOP.

Sie brauchen keine OOP-Kenntnisse, um gute EAs oder andere Dinge in MQL5 zu erstellen. Sie müssen nicht einmal das Wort "Klasse" oder "Zeiger" kennen.

OOP wird meist zur Erstellung großer Aufgaben und Komplexe verwendet, vor allem, wenn es um Teamarbeit geht.

Und in MQL5 können Sie auf OOP verzichten.

Ich muss hinzufügen, dass ich seit mehr als 10 Jahren an der Ausbildung von Programmierern beteiligt bin, die in ausländischen Unternehmen arbeiten wollen, in denen die Hauptanforderung die Kenntnis von OOP ist.

Das sage ich, damit Sie nicht denken, dass ich ein Gegner von OOP bin. Man muss sie nur bestimmungsgemäß verwenden und das Leben nicht verkomplizieren.

 

Das Verständnis für OOP ergibt sich von selbst, wenn die Programme komplexer werden. Der Programmierer beginnt, das Codeblatt in mehrere Funktionen aufzuteilen, es besteht die Notwendigkeit, Ergebnisse verschiedener Funktionen untereinander zu übertragen, bald beginnt er zu ahnen, dass die Übertragung über Funktionsargumente nicht die beste Lösung ist, höchstwahrscheinlich wird er anfangen, globale Variablen zu erstellen, eine Person ist fast reif für OOP, das Einzige, was bleibt, ist die Isolierung logisch zusammenhängender Funktionen und ihrer privaten Daten. Meine Erfahrung: Schon in mcl4 habe ich angefangen, so etwas zu erstellen:

// file_1.mqh
int name1_counter = 0;
int name1_data = 0;
double name1_value = 0;
void name1_action() {name1_counter++; name1_data = ;}
int name1_get() {return }

// file_2.mqh
int name2_counter = 0;
int name2_data = 0;
double name2_value = 0;
void name2_action() {}
int name2_get() {}


Ich wusste nicht einmal etwas über OOP, aber es war fast fertig (ja, nur eine Instanz, aber das Skelett war fertig). Ich würde die Auszubildenden durch diese Schritte führen. Beginnen Sie mit einem Blatt voller int's und if's und strukturieren Sie den Code nach und nach. Am Ende wird eine Person das OOP fast von selbst erreichen, und die Hauptsache ist, dass sie versteht, wie sie dorthin gekommen ist.

Ich erinnere mich, vor langer Zeit ein Buch über dieses "magische" OOP gelesen zu haben. Der Höhepunkt des Buches war eine Demonstration virtueller Funktionen, in der er sagte, dass dies die Stärke von OOP sei. Solchen Autoren sollte ich die Hände abreißen. Ich habe bisher noch kein vernünftiges Buch gefunden.