Diskussion zum Artikel "MQL5 — Auch Sie können ein Meister dieser Sprache werden" - Seite 2

 

Ich selbst mache diese Reise gerade durch, daher gebe ich im Folgenden einige kurze Hinweise zum Thema des Artikels aus der Sicht eines Händlers, der mit Metatrader und eigenen Algos die Finanzmärkte handeln möchte. Denken Sie daran, dass das primäre Ziel des Traders der Handel ist, während das Ziel des Software-Ingenieurs die Programmierung ist.

1. Das größte Hindernis wird sein, durch den Schlamm der Irrelevanz zu waten, der heutzutage das Lernen im Internet zu einem echten Sumpf gemacht hat. Die Suche nach guten Quellen kostet mehr Zeit und Mühe als das Lernen von den richtigen Quellen, wenn man sie einmal gefunden hat.

2. Soweit ich weiß, gibt es keine gute, kostengünstige Quelle, um MQL zu lernen. Udemy-Kurse sind nicht so toll (ich spreche aus Erfahrung) und nur dann einen Kauf wert, wenn sie stark verbilligt sind (10 Euro oder weniger). Youtube-Videos: Es gibt einige Kanäle, die ziemlich gut sind - wenn man nach bestimmten Dingen sucht. Einige wenige vermitteln nur die allerersten Grundlagen. Keiner von ihnen bietet einen systematischen Kurs an, der Ihnen alles beibringt, was Sie wissen müssen - und das nicht kostenlos. Die meisten der kostenlosen guten Videos sind in der Regel ein Marketingtrichter für die kostenpflichtigen Kurse. Daran ist nichts auszusetzen, man muss sich nur dessen bewusst sein. Ichkann mich nicht zu den kostenpflichtigen Kursen äußern, da ich nie einen gemacht habe.

3. In der Softwareentwicklung im Allgemeinen gibt es MQL einfach nicht. Es gibt ein oder zwei Bücher, die die Sprache in ihrer Gesamtheit lehren. Sie sind für Programmierer geschrieben, nicht für Trader. Daher wird das Erlernen all dessen viele Monate, wenn nicht Jahre Ihrer Zeit in Anspruch nehmen, selbst wenn Sie die Geduld und die Zeit haben. Zeit, die Sie mit dem Handel verbringen könnten. Der tatsächliche Teil des Wissens, der erforderlich ist, um eigene EAs und Indikatoren zu erstellen, die anspruchsvoll genug sind, um auf Ihren eigenen Live-Konten vertrauenswürdig zu sein, ist wesentlich geringer. Viele Dinge sind für eigene Codes einfach nicht notwendig. Wenn Sie freiberuflich tätig sein oder vorgefertigte MQL-Codes verkaufen wollen, müssen Sie natürlich einen größeren Teil der Sprache beherrschen. Eine Randbemerkung:Selbst wenn Sie Trader sind, könnte es sich lohnen, Zeit und Mühe zu investieren, um nebenbei allgemeine Softwaretechnik (in einer der großen Sprachen wie C++ oder C#, aber nicht MQL) zu lernen. Wenn Sie Ihr Konto auffliegen lassen, können Sie mit dem Geld, das Sie als Programmierer verdienen, eine Hungersnot vermeiden und langsam Kapital aufbauen, um wieder in das Spiel einzusteigen.

4. Die MQL-Referenzseiten auf dieser Website sind eine Referenz, kein Lehrbuch. Es ist von unschätzbarem Wert, die spezifischen MQL-Sprachelemente in- und auswendig zu kennen. Es ist ein Alptraum, daraus zu lernen (ich weiß, ich habe es versucht).

5. Am besten ist es meiner Meinung nach, die Grundlagen mit C++ zu lernen. Es gibt viele exzellente C++-Kurse zu sehr niedrigen Kosten oder kostenlos. C# oder Java (NICHT JavaScript, JS ist wie Python, aber schlimmer!) sind ebenfalls geeignet, auch wenn sie etwas weiter entfernt sind. Außerdem ist es meiner Meinung nach nicht sinnvoll, C zu lernen. 2023 ist C eine Nischensprache für die Systemprogrammierung (Betriebssysteme, Treiber usw.). C++ enthält alles, was man an klassischem C braucht.

6. Die MQL-Kernfunktionalität ist praktisch C++. Zur Basissprache wird eine ganze Reihe von Aufzählungen, eingebauten Funktionen und Klassen hinzugefügt, die für den Handel auf der MT-Plattform spezifisch sind. Diese handelsspezifischen Elemente gibt es in C++ natürlich nicht. Sobald Sie wissen, wie sich Variablen, Konstanten, Datentypen, Funktionen und Objekte in C++ im Allgemeinen verhalten, ist es sehr einfach, diese zusätzlichen spezifischen MQL-Elemente zu erhalten. Sie müssen genug über OOP lernen, um zu wissen, was es ist, was es tut und wie Sie Objekte aus den eingebauten MT-Bibliotheksklassen in Ihren prozeduralen Codes neben Funktionen verwenden können. Die Verwendung vorhandener Klassen ist viel einfacher als das Programmieren eigener Klassen, das Erstellen von Bibliotheken, das Verwalten von Dutzenden oder Hunderten von Header-Dateien (.mqh), usw. Eigene OOP zu programmieren ist so, als würde man einen multinationalen Autohersteller gründen, nur um ein einziges Auto zu bauen, mit dem man jeden Tag von zu Hause zur Arbeit fahren kann.

7. Vergessen Sie Python. Ich könnte seitenweise darüber schreiben, aber nehmen Sie mich einfach beim Wort. Python vereinfacht einige Dinge, schafft aber in anderen Bereichen Komplikationen. Das eigentliche Problem von Python ist, dass es zu viele Freiheiten hat. Die starre Syntax von C++, die statischen Typen und vor allem Sergeant Compilator führen am Ende zu Codes, die sehr eindeutig und zuverlässig sind. Die Freiheit von Python ist oft die Freiheit, ins Wasser zu gehen und sich zu ertränken. Die "Schwierigkeiten" beim Erlernen von C++ sind eher ein Mythos als Realität. Bedenken Sie: C++'s {} und ; werden in Python durch : und obligatorische Einrückung ersetzt, am Ende ist der Aufwand in etwa derselbe. Sie müssen nicht die gesamte C++ Sprache lernen, um MQL5 zu beherrschen. Ich lernte Python bis hin zu OOP, stellte dann nach 16 Monaten fest, dass ich immer noch am Nullpunkt meiner Reise als Algo-Programmierer war, und lernte dann C++ neu (ich hatte 99 % des C++-Kurses vergessen, den ich vor fast 30 Jahren als MINT-Student belegt hatte). Danach war ich in der Lage, brauchbare MQL5 EAs und Indikatoren zu schreiben.

6. In vielerlei Hinsicht ist MQL5 näher an C++ als an MQL4. Das führt dazu, dass viele Dinge in MQL5 schwieriger sind als in MQL4. Dennoch ist es im Jahr 2023 für Neueinsteiger nicht empfehlenswert, MQL4 zu lernen. MQL4 wird durch seine installierte Benutzerbasis aus der Zeit, als es noch aktuell war, am Leben gehalten. Selbst wenn beide Sprachen gleich wären, bietet MT5 einen überlegenen Backtester und die Möglichkeit, eine eigenständige MT-Plattform mit einem nie ablaufenden, nicht mit einem Broker verbundenen Demokonto herunterzuladen, um nach Herzenslust zu spielen. Wenn Sie MQL5 beherrschen, können Sie Ihre MQL5-EAs bei Bedarf leicht auf MQL4 zurückübersetzen. Indikatoren sind etwas aufwendiger, aber durchaus machbar.

7. Hier ist also der Lernpfad, der für mich funktioniert hat:

- Lernen Sie die Grundlagen der Programmierung mit einer allgemeinen Programmiersprache, am einfachsten mit C++, weil es MQL am nächsten kommt. In allen Programmierkursen werden die Grundlagen mit einfachen Konsolenprogrammen vermittelt. MetaEditor hat keine Konsole. Das Ausdrucken von "Hallo Welt!" im Terminal Journal ist eine viel schlechtere Erfahrung als direkt auf einer Konsole mit "cout >>". Sie können mit einem MQL-Code nur indirekt über die Eingabeparameter interagieren, nicht in Echtzeit über "cin >>".

- Sobald Sie die Grundlagen der Programmierung beherrschen, gehen Sie auf youtube und suchen Sie nach Videos, die Schritt für Schritt einen funktionierenden EA oder Indikator aufbauen (zum Zeitpunkt des Schreibens gibt es viele davon). Schauen Sie sich zunächst das ganze Video an, am effizientesten, indem Sie den Ton ausschalten, die Untertitel einschalten und die Geschwindigkeit auf auf das 1,5- oder 2-fache erhöhen, um den Inhalt zu erfassen. Dann sehen Sie sich das Video noch einmal an und tippen den Code ein, wobei Sie das Video anhalten und bei Bedarf zurückspulen können, und zwar bei eingeschaltetem Ton.

- Belegen Sie nicht noch mehr Programmierkurse - schreiben Sie einfach Code-Code-Code-Code, backtest backtest backtest. Leider bietet MQL keine Unit-Testing-Funktion (unverzichtbar für eine ordentliche Softwareentwicklung), aber mit etwas Kreativität können Sie Ihre eigenen Wege entwickeln, um den Backtester dafür zu nutzen. Sehen Sie sich bei Bedarf weitere Videos zu spezifischen Themen an. Artikel/Beiträge auf dieser Website können ebenso hilfreich sein. Drücken Sie F1 im MetaEditor so oft wie nötig. Drücken Sie es auch, wenn Sie es nicht brauchen, nur um etwas Neues zu lernen oder das bereits Gelernte aufzufrischen.

 
Eric A. Kantchev einer noch nicht abgelaufenen und nicht an den Broker angeschlossenen Demoversion zu nutzen, um das gewünschte Ergebnis zu erzielen. Wenn Sie es wünschen, können Sie Ihre EAs von MQL5 auf MQL4 umstellen, nachdem Sie MQL5 beherrschen. Os indicadores exigem um pouco mais de esforço, ainda bastante factíveis.

7. Aqui está o caminho de aprendizado que funcionou para mim:

- Aprenda o básico de programação com uma linguagem de programação geral, mais fácil com C++ porque é o mais próximo do MQL. Todos os cursos de programação ensinam o básico com programas de console simples. O MetaEditor não possui um console. Imprimindo "Olá, Mundo!" no Terminal Journal é uma experiência muito inferior do que diretamente em um console com "cout >>". Sie können mit einem MQL-Datensatz nur indirekt über die Eingabeparameter interagieren, nicht in Echtzeit über "cin >>".

- Nachdem Sie die Grundlagen des Programms beherrschen, besuchen Sie youtube und sehen Sie sich Videos an, die den Aufbau eines vollständigen EA oder funktionalen Indikators Schritt für Schritt erklären (es gibt viele davon im Moment, in dem ich es schreibe). Zunächst helfen Sie bei der Wiedergabe von Videos, indem Sie den Bildschirm und die Legenden entfernen und um das 1,5- oder 2-fache beschleunigen, um den Inhalt zu vergrößern. Anschließend können Sie das Video neu starten und den Inhalt digitalisieren, pausieren und bei Bedarf neu starten, wobei Sie das Video mit dem Bild verknüpfen.

- Não faça mais cursos de programação - apenas codifique o código do código, backtect backtest backtest. Leider bietet MQL keine Möglichkeit des Einheitstests (unverzichtbar für eine angemessene Softwareentwicklung), aber mit etwas Geschick können Sie Ihre bevorzugten Methoden für die Verwendung des Backtesters entwickeln. Assista a mais vídeos em tópicos específicos quando você precisar. Artikel/Postings auf dieser Website können auch gelöscht werden. Drücken Sie F4 no MetaEditor sempre que precisar. Acerte mesmo que não, apenas para aprender algo novo ou aprimorar o que você já aprendeu todos os dias.

Danke für den Beweis. Das ist mehr oder weniger das, was ich in diesem Artikel schreiben wollte. Denn viele Menschen, die anfangen, wissen nicht, in welche Richtung sie gehen sollen, und brechen schließlich das Studium oder das Lernen ab, weil sie denken, dass es etwas sehr Schwieriges oder etwas Unpraktisches ist.

 
Guter Artikel.
 
Sehr hilfreich.
 
MetaQuotes:

Der neue Artikel MQL5 - Auch Sie können ein Meister der Sprache werden wurde veröffentlicht:

Von Daniel Jose

Ich möchte auch ein Meister werden

 
Wertvoller Artikel und noch bessere Einsichten von den Kommentatoren!
 
Das ist sehr hilfreich. Danke, dass Sie es mit uns teilen.
 
Toller Ratschlag. Ich dachte, es wird einfach sein, mit AI zu EAs erstellen, aber ich war falsch. Es ist besser, C, C++ von Chat GPT zu lernen. Ich bin neu im Algo-Handel und weiß nicht, jede Code-Sprache. aber immer noch ist es sehr interessante Sache wie ein Spiel. Ich bin sehr dankbar für diesen Rat und genieße das Spiel.
 

Sehr schöner Artikel. Er hat mich in meine Kindheit zurückversetzt, als ich auf einem Apple IIe primitive Grafiken mit DOS-Syntax gezeichnet habe.

Aus meiner späteren Erfahrung heraus war MQL4 leicht zu erlernen, weil es im Grunde eine abgespeckte Version von C war. Jahre später las ich die ersten 50 Seiten eines gedruckten MQL5 EA-Programmierbuchs (inzwischen vergriffen) und ging dann zur MQl5-Programmierung über. Jahre später steht dieses Buch immer noch im Regal mit einem Lesezeichen auf Seite 50. All dies bestätigt die Empfehlung des Artikelautors, durch eigenes Tun zu lernen.

Obwohl ich mich mit Easylanguage und Python und mehr als nur mit MS Excel herumgeschlagen habe, bleibe ich bei MQL5, weil nativer Code immer schneller ist als eine Pipe oder eine Bridge von außerhalb von MT5. Außerdem sind die "optionalen" objektorientierten Programmierungselemente (OOP) von MQL5 eine Notwendigkeit für den automatischen Handel an der Terminbörse, an der ich jetzt handle. Wenn Sie MQL5 lernen wollen, empfehle ich Ihnen, zunächst eine allgemeine Einführung in die OOP zu lesen.

Schlimmer als die Angst, eine neue Programmiersprache zu lernen, ist die Aussicht, zurückzubleiben.

 
Sergey Pavlov #:
Ein lobhudelnder Artikel über mich als Genie: so etwas wie, ich werde Ihnen beibringen, wie man von Grund auf ein Programmierguru wird, aber es stellt sich heraus, dass man dafür C++ kennen und 23 Jahre lang Erfahrung damit haben muss. Und das Erstaunliche ist, dass man mit diesem Gepäck (C/C++) 2 Jahre brauchte, um das Programmieren in MQL5 zu lernen. Am Ende, blah-blah-blah, ich bin ein Genie und Sie werden es in 25 Jahren können. Es ist schade, dass solche Artikel veröffentlicht werden....

Na und, ein Brasilianer hat 23 Jahre damit verbracht, "Hello World!" in C++ zu schreiben, nicht jeder hat so viel Geduld. Ich jedenfalls nicht. Vielleicht gießt man ihm in seinem Heimatland ein Denkmal in Bronze! Also beneiden wir ihn im Stillen.

Ich möchte darauf hinweisen, dass bei der impliziten Umwandlung von int-Typen in bool der Wert false in Wirklichkeit Null ist, während true ein beliebiger Wert ungleich Null ist. Bei der Umwandlung von bool->int ist alles auf 0 und 1 beschränkt.

    bool b1 = 0, b2 = -5, b3 = 5;
    Print(b1,", ", b2,", ", b3);
    Print((int)true,", ", (int)false);

2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        false, true, true
2025.04.15 01:48:32.862 BuySellStop (USDCAD,M15)        1, 0