English Русский 中文 Español 日本語 Português
preview
MQL5 — Auch Sie können ein Meister dieser Sprache werden

MQL5 — Auch Sie können ein Meister dieser Sprache werden

MetaTrader 5Interview | 21 Juli 2023, 09:00
296 0
Daniel Jose
Daniel Jose

Einführung

In diesem Artikel werde ich etwas anderes tun, als ich es in früheren Artikeln getan habe. Grundsätzlich ist dieses Material für diejenigen gedacht, die wenig oder keine Kenntnisse über MQL5 oder Programmierung im Allgemeinen haben. Der Artikel wird also wie ein Interview mit mir selbst sein, in dem ich ein wenig erklären werde, wie man MQL5 von Grund auf lernt und ein Profi wird.


Eine kleine Geschichte

Seit ich angefangen habe, Artikel für die MQL5-Gemeinschaft zu schreiben, habe ich eine Menge Feedback erhalten. Viele Leute fragen mich, wie ich gelernt habe, in MQL5 zu programmieren, sodass ich die Dinge tun kann, die ich in den Artikeln beschreibe. Die meisten von ihnen sind Enthusiasten, die nach einem grundlegenden Leitfaden für ihre ersten Schritte in der Programmierung suchen. Dieser Artikel ist also allen Enthusiasten und MQL5-Anfängern gewidmet, die MQL5-Programmierung lernen möchten.

Bevor ich mit diesem Thema fortfahre, muss ich etwas sagen. Dieses Material soll Sie nicht demotivieren, sondern im Gegenteil, Ihre Motivation noch steigern.

Sie könnten denken, dass ich viele Jahre Erfahrung in der MQL5-Programmierung haben muss. Zum Zeitpunkt des Verfassens dieses Artikels habe ich die Sprache MQL5 jedoch erst seit eineinhalb Jahren verwendet. Das stimmt, ich habe weniger als zwei Jahre Erfahrung als MQL5-Programmierer. Sie fragen sich vielleicht, wie jemand mit so wenig MQL5-Programmiererfahrung es schaffen konnte, die in den Artikeln gezeigten Dinge für MetaTrader 5 zu tun.

Das liegt daran, dass die Entwickler der Programmiersprache MQL5 die großartige Idee hatten, die Sprache in vielen Aspekten wie C/C++ aussehen zu lassen. Wenn also ein Programmierer über umfangreiche C/C++-Erfahrung verfügt, wird es recht einfach sein, MQL5 zu erlernen, da es nicht notwendig ist, alle Konzepte, Syntax und Befehle neu zu lernen.

Warum sage ich das? Weil ich seit Anfang der 2000er Jahre ein professioneller C/C++-Programmierer bin, das heißt, ich programmiere seit über 23 Jahren in C/C++. Wenn ich eine neue Sprache lernen müsste, um etwas für MetaTrader 5 zu tun, würde ich wahrscheinlich endgültig aufgeben.

Viele Leute denken, dass man einige Kurse besuchen muss, um ein guter Programmierer zu werden. Um jedoch wirklich programmieren zu lernen, sollte man keine Angst haben, Fehler zu machen. Sie sollten sich niemals an einen Code oder eine Idee binden. Sie sollten immer experimentieren und neue Dinge ausprobieren.

Das mag etwas seltsam klingen, denn viele neue Leute wollen immer das Gleiche und auf die gleiche Weise tun. Aber wer ein guter Programmierer werden will, sucht immer nach anderen Wegen, um das Gleiche zu tun. Außerdem verstehen viele Menschen nicht, dass ein Programmierer sich immer von anderen inspirieren lässt. Sie können einen funktionierenden Quellcode nehmen, der von einem erfahreneren Programmierer entwickelt wurde, und ihn nach und nach ändern, experimentieren und das Ergebnis beobachten. Auf diese Weise lernen sie, wie das Programm tatsächlich aufgebaut ist.

Manche Leute denken, dass man, um MQL5 zu lernen, erst einmal etwas lernen muss. Wenn mich jemand, der keine Vorkenntnisse hat, fragt, wie er lernen kann, empfehle ich immer, mit dem Einfachsten zu beginnen. Mit anderen Worten: Lernen Sie ein wenig über C, um die Syntax und die Programmierlogik sowie die Befehle wirklich zu kennen. Sobald Sie die Grundlagen der Sprache C verstanden haben, können Sie mit dem Studium von C++ beginnen und gleichzeitig mit dem Üben von MQL5. Die einfache Tatsache, dass Sie bereits über Grundkenntnisse in C verfügen, wird Ihnen den Einstieg in die Programmierung von MQL5 sehr erleichtern.

Einige Leute mögen denken, dass C veraltet ist, aber die Wahrheit ist, dass C eine sehr gut dokumentierte und weit verbreitete Sprache ist. Bitte beachten Sie, dass ich nicht sage, dass Sie sich in C vertiefen sollten. Ganz im Gegenteil, wenn Sie einige grundlegende Befehle, Syntax und Befehle lernen, wird das für Sie ausreichen, um mit MQL5 zu beginnen.

Das mag ein wenig entmutigend erscheinen: C lernen, um in MQL5 voranzukommen? Wenn Sie sich viel Mühe geben und jemanden finden, der Sie unterrichtet, können Sie vielleicht direkt mit MQL5 beginnen. Aber aus meiner ersten Erfahrung und den Meinungen anderer Leute kann ich sagen, dass die Aufgabe nicht so einfach sein wird. Fast das gesamte Qualitätsmaterial ist hier, in der MQL5-Community, konzentriert. Im übrigen Internet ist das Material verstreut und kann von schlechter Qualität sein, was mehr schadet als nützt. Zu den Sprachen C und C++ gibt es eine riesige Menge an hervorragendem und sehr zugänglichem Material. Es liegt also an Ihnen zu entscheiden, wo Sie anfangen wollen.


Mein erster Code in MQL5

Viele Leute denken, dass ich, da ich bereits in C/C++ programmieren kann, sofort mit komplizierten und aufwendigen Projekten in MQL5 begonnen habe. Ich wünschte, ich könnte sagen, dass alles so angefangen hat. Die Realität sah jedoch ganz anders aus.

Wenn wir die ersten Schritte zur Entwicklung unserer eigenen Lösungen unternehmen, beginnen wir oft mit dem, was wir bereits zu wissen glauben. Als ich anfing, MQL5 zu verwenden, hatte ich nur die Sprachdokumentation zur Hand. Ich wusste nicht einmal, dass es eine Gemeinschaft gibt, die anderen interessierten Programmierern hilft.

Nach dem Studium der Dokumentation und der Untersuchung der Quellcodes, die mit MetaEditor geliefert werden, begann ich also zu experimentieren. Nachfolgend finden Sie meinen ersten echten Code, den ich auf der Grundlage dessen, was ich verstanden habe, erstellt habe.

01. //+------------------------------------------------------------------+
02. #property copyright "Daniel Jose"
03. #property version   "1.00"
04. #property description "Modify special chart properties"
05. #property script_show_inputs
06. //+------------------------------------------------------------------+
07. enum eWhat  {
08.                eScaleDate  = CHART_SHOW_DATE_SCALE,   //Time scale
09.                eScalePrice = CHART_SHOW_PRICE_SCALE   //Price scale
10.             };
11. enum eOp    {
12.                eFalse,                                //Makes hidden
13.                eTrue                                  //Makes visible
14.             };
15. //+------------------------------------------------------------------+
16. input eWhat user00 = eScaleDate;                      //Graphic property
17. input eOp   user01 = eFalse;                          //What to do?
18. //+------------------------------------------------------------------+
19. void OnStart()
20. {
21.    ChartSetInteger(0, (ENUM_CHART_PROPERTY_INTEGER) user00, user01);
22. }
23. //+------------------------------------------------------------------+

Quellcode meines ersten MQL5-Programms

Es gibt nichts Außergewöhnliches oder Innovatives. Dabei handelt es sich in erster Linie um Code, mit dem ich überprüfen wollte, ob ich die Dokumentation richtig verstanden habe und wie Elemente definiert und verwendet werden können. Das folgende Video zeigt das Ergebnis der Codeausführung.


Demo-Video

Dies ist etwas sehr Grundlegendes. Aber die Tatsache, dass ich in der Lage war, diesen Code auf völlig autonome Weise zu erstellen, ohne die Hilfe anderer, mit Ausnahme der Dokumentation und des Quellcodes von MetaEditor, hat mir gezeigt, dass ich etwas anderes tun kann. Alles, was ich tun musste, war, meine vorhandenen Kenntnisse in C und C++ an MQL5 anzupassen. Hier begannen die Dinge wirklich voranzukommen.

Wenn Sie sich diesen einfachen Code ansehen, finden Sie vielleicht nichts Wertvolles darin. Aber wie üblich besteht die erste Aufgabe eines jeden Anfängers in einer Programmiersprache darin, einen Code zu erstellen, der als „HELLO WORLD“ zu erstellen, bei dem es darum geht, eine Nachricht auf dem Bildschirm anzuzeigen.

Aber ich bin schon weit über die Phase der Codierung von „HELLO WORLD“ hinaus. Also habe ich etwas etwas Komplizierteres ausprobiert. Da ich jedoch nicht so viel Erfahrung und Verständnis für die Funktionsweise von MQL5 hatte, begann ich mit der Entwicklung eines Skripts. Das war etwas, was für mich viel einfacher war, da ich wenig Erfahrung und Wissen darüber hatte, wie die Dinge tatsächlich abliefen.

Erst nach einiger Zeit wurde mir klar, dass MQL5 eigentlich keine prozedurale Sprache ist, sondern eine ereignisbasierte. Diese Entdeckung hat meine Herangehensweise an die Programmierung und die Codeanalyse radikal verändert. Da ich meine Fähigkeiten verbessern wollte, begann ich, Artikel hier in der MQL5-Gemeinschaft zu lesen und zu studieren, und mir wurde klar, dass viele zwar ihren Code zum Laufen bringen konnten, aber MQL5 auf relativ einfache Weise lernten, zumindest meiner Meinung nach. Daher begann ich mit der Entwicklung und dem Experimentieren mit komplexeren Lösungen, die die Möglichkeiten der MetaTrader 5-Plattform und der MQL5-Sprache eingehender untersuchen sollten.

Und irgendwann habe ich beschlossen, die Ergebnisse meiner Experimente mitzuteilen. So ist mein erster Artikel entstanden. Es ist eine Sache, einen Code zu erstellen, und eine andere, zu erklären, wie er erstellt und konzipiert wurde. Ich wusste, dass sowohl erfahrene als auch Anfänger diese Artikel lesen würden.

Die Artikel wurden sowohl in ihrer Form als auch in ihrem Inhalt geändert. Ich habe das so gemacht, dass auch diejenigen, die wenig Erfahrung haben, die Informationen verstehen können. Und selbst wenn Sie nicht sofort alles Wissen, das in diesem Material präsentiert wird, aufnehmen können, werden Sie mit der Zeit, wenn Sie Ihre Programmierfähigkeiten verbessern, in der Lage sein, das, was ich in einem bestimmten Artikel zu vermitteln versuche, richtig zu assimilieren.

Wissen muss geteilt werden. Ich sehe keinen Ruhm darin, mit all meiner Weisheit zu sterben, ohne etwas Wertvolles zu hinterlassen, etwas, das die Weltanschauung von jemandem verändern könnte, etwas, das viele nicht erkennen, weil sie immer den Kopf einziehen.

Aber kommen wir zurück zum Code. Ich möchte Ihnen zeigen, dass selbst ein paar Zeilen Code viel mehr Informationen und Wissen enthalten können als tausend Zeilen Code. Ursprünglich waren jedoch alle Informationen, die nicht Teil der C/C++-Syntax und damit von MQL5 sind, nicht in Englisch. Aber das ist nur ein kleines Detail. Schauen wir uns diesen kleinen Code an, um zu verstehen, wie er funktioniert. Und vor allem: Warum es funktioniert.


Analysieren des Codes

Die Zeilen zwei, drei und vier könnten aus dem Code gestrichen werden. Sie dienen MetaTrader 5 eigentlich nur dazu, den Nutzer über den Zweck des Codes zu informieren. Als Nutzer können Sie diese Zeilen einfach aus Ihrem Lerncode entfernen.

Zeile fünf ist sehr wichtig, denn ohne sie versteht MetaTrader 5 nicht, dass das Skript vom Nutzer durch eine Art von Eingabestruktur angepasst werden kann, die in diesem Fall „inputs“ in den Zeilen 16 und 17 ist. Das werden wir bald erreichen.

Jetzt kommt etwas, das viele vielleicht nicht verstehen. Vor allem, wenn sie nur MQL5 gelernt haben oder wenn sie von einer anderen Sprache kommen, die sich von C/C++ stark unterscheidet. Ich spreche von den Enumerationen, die in den Zeilen 07 und 11 zu finden sind.

Höchstwahrscheinlich sind Sie verwirrt, wenn Sie sich solche Konstruktionen ansehen. Sie können sich sogar vorstellen, dass sie etwas zu kompliziert für Sie sind. Aber gerade weil MQL5 gebaut wurde, um C/C++-Programmierer einzubinden, ist es so angenehm für diejenigen, die bereits ein wenig Erfahrung in C/C++ haben. Aber lassen Sie uns die Enumerationen verstehen, zumindest oberflächlich.

Eine Enumeration kann grob als eine Folge von Daten verstanden werden, denen Sie einen Wert zuweisen können oder nicht. Wenn Sie keinen Wert zuweisen, beginnt die Zählung immer mit dem ersten möglichen Wert, der in diesem Fall Null ist. Daher folgt die in Zeile 11 definierte Enumeration demselben Prinzip wie der Wert 0 oder 1. In C / C++, wie auch in MQL5, wird der Wert Null als falsch und der Wert Eins als wahr angesehen.

Daher haben wir in Zeile 12, wo der Wert eFalse definiert ist, die Angabe Null, und in Zeile 13, dem zweiten Wert der Enumeration, den Wert Eins. Hätten wir mehr Dinge definiert, würden sie der Reihenfolge folgen, d. h. die nächsten wären zwei, drei und so weiter. Dies ist der einfachste Fall.

Ich möchte Ihre Aufmerksamkeit auf etwas anderes lenken. Am Ende von Zeile 12 steht etwas, das in C/C++ ein Kommentar wäre. Wir haben die gleiche Art von Dingen auch in anderen Linien. Wir konzentrieren uns auf die Zeile 12, aber das gilt auch für alle anderen Stellen.

Wenn wir uns das Skript ansehen, wenn es im Chart gestartet wird, sehen wir Abbildung 01. Darin hebe ich hervor, was genau mit dem Kommentar in Zeile 12 übereinstimmt.

Abbildung 01

Abbildung 01 - Nutzerinteraktionsfenster


Solche Dinge vereinfachen die MQL5-Kodierung erheblich. In anderen Sprachen müssten wir einige Dinge tun, um das, was hier in MQL5 gemacht wird, auf so einfache und praktische Weise zu erreichen. Deshalb sollten Sie verstehen, dass es richtig ist, einen Kommentar zum Code zu schreiben, denn so können Sie nicht nur den Code verständlicher machen, sondern auch die Meldung, die dem Nutzer angezeigt wird, anpassen.

Gehen wir nun einen Schritt zurück zu Zeile 07, wo wir eine weitere Enumeration haben. Diese Enumeration unterscheidet sich jedoch von der, die ich gerade erklärt habe. Das sind keine völlig unterschiedlichen Dinge: Der Unterschied besteht darin, dass wir jetzt jedem der Elemente Werte zuweisen. Das heißt, der Compiler verwendet die von uns angegebenen Werte, die in diesem Fall in MQL5 definierte Konstanten sind. Das könnten Sie fragen: Warum nicht direkt Konstanten verwenden, anstatt sie einer Enumeration zuzuordnen? Der Grund dafür ist die Einfachheit der Umsetzung. Wenn wir Konstanten direkt verwenden würden, müssten wir etwas anderes erstellen, z. B. ein Array oder eine Struktur, und das ist viel schwieriger. Mit meinem Ansatz können Sie jeden Wert an jeder Position oder in jeder Reihenfolge einfügen. Und wenn eine Konstante von Interesse in der von mir deklarierten Sequenz auftaucht, muss ich diese Konstante nicht wirklich zuweisen oder deklarieren; ich muss der Enumeration nur mehr Inhalt hinzufügen, und die Sprache sorgt dafür, dass die richtigen Werte verwendet und entsprechend zugewiesen werden.

Sehen Sie, wie eine solide, gut aufgebaute Grundlage in einer Sprache wie C/C++ uns beim Schreiben von MQL5-Code hilft. Was wir hier zeigen, findet man nicht oft in MQL5-Code. In der Tat habe ich festgestellt, dass viele auf viel komplexere und zeitaufwändigere Konstruktionen zurückgreifen, um das Gleiche zu erreichen, was sie hier erreicht haben. Und beachten Sie, dass ich am Ende nur eine Zeile Code geschrieben habe (Zeile 21).

Achten Sie nun auf Folgendes: In Zeile 21 selbst, die eigentlich die einzige ist, die ausgeführt wird, müssen wir eine explizite Typumwandlung vornehmen. Dies ist notwendig, damit der Compiler sie versteht und dementsprechend den endgültigen Code korrekt erzeugen kann. Aber warum ist die explizite Umstellung so wichtig? Der Grund liegt im Compiler. Für den Prozessor spielt das keine Rolle, denn wir verwenden nur Zahlen, und das ist das, was der Prozessor tatsächlich sieht. Typen sind für den Prozessor nicht von Interesse, er beobachtet nur die Zahlen. Das zweite Argument in Zeile 21 ist zwar ein numerischer Wert, entspricht aber nicht genau dem, was von der Funktion ChartSetInteger erwartet wird. Diese Funktion erwartet einen bestimmten Typ, nicht einen numerischen Wert. Selbst wenn der Wert dem erwarteten Typ entspricht, d.h. der Wert ist genau die Konstante, die wir verwenden, wird der Compiler dies als Fehler ansehen. Um dies zu beheben, wird der numerische Wert explizit in einen von der Funktion ChartSetInteger erwarteten Typ konvertiert. So kann der Compiler erkennen, dass wir uns der Werte bewusst sind, die wir an die Funktion übergeben.


Ein paar Gedanken zu Python

Bevor ich unser Gespräch beende, möchte ich Ihnen, lieber Leser und Programmieranfänger, noch einige abschließende Gedanken mitteilen, die sich aus meinen Erfahrungen und Kenntnissen ergeben, die ich im Laufe mehrerer Jahre bei der Arbeit mit verschiedenen Programmiersprachen gesammelt habe. Mein Ziel ist es, zukünftige Frustrationen zu vermeiden, die beim Versuch, bestimmte Aktionen in MetaTrader 5 durchzuführen, auftreten können.

Obwohl unser Hauptthema MQL5 ist, wird oft die Frage gestellt, ob man Python lernen soll oder nicht. Insbesondere für diejenigen, die mit dem Programmieren beginnen, um an den Finanzmärkten zu handeln, stellt sich die Frage, ob es sich lohnt, ihre Python-Kenntnisse zu vertiefen, um mit MetaTrader 5 zu arbeiten. Diese Frage ist sehr wichtig, da das Erlernen von Python viel einfacher und schneller ist als das mühsame Erlernen von C, dann von C++ und schließlich das Erlangen einer soliden und konsolidierten Grundlage für die professionelle Arbeit mit MQL5. Es gibt jedoch einen Punkt, den Sie beachten sollten, damit Sie nicht denken, dass Sie Ihre Zeit mit dem Erlernen (oder Nicht-Erlernen) von Python verschwendet haben.

Die Programmiersprache Python (auch wenn manche sie lieber als Skriptsprache bezeichnen) ist nicht mit dem vergleichbar, was in MQL5 möglich ist - vielleicht betrachten manche sie deshalb nicht als Programmiersprache, aber auf diese Debatte wollen wir hier nicht eingehen. Wenn Ihr Ziel darin besteht, zu lernen und in der Lage zu sein, Codes zu erzeugen, um etwas auf rein mathematische Weise zu testen, zu überprüfen und zu analysieren, dann ist die kürzeste und einfachste Lösung, Python zu lernen. Das liegt daran, dass es einfacher ist, Backtests und ähnliches in Python durchzuführen und dabei direkt mit MetaTrader 5 zu interagieren, als zu versuchen, dasselbe mit MQL5 zu tun.

Es mag manchen seltsam vorkommen, aber mit ein wenig Training und viel Engagement können Sie ganz einfach ein Python-Skript erstellen, das dasselbe kann, was ein Programmierer mit viel mehr Erfahrung mit MQL5 tun kann. In vielen Fällen muss der Programmierer Indikatoren, Expert Advisors, erstellen und den Strategietester konfigurieren, um zu überprüfen, ob ein bestimmtes Betriebssystem, das so genannte SETUP, profitabel ist oder nicht. Ganz zu schweigen von dem Risiko, alles zu gefährden, wenn man nicht alles richtig einrichtet.

Man könnte meinen, dass wir bei der Verwendung von MetaTrader 5 Zugang zu Charts und einer schönen Präsentation der Ergebnisse haben, was uns die Analyse erleichtern wird. Bedenken Sie jedoch, wie viel Wissen Sie benötigen, um alle Funktionen zu programmieren, die zur Durchführung eines einfachen Backtests direkt in MetaTrader 5 erforderlich sind.

Wenn Sie mit Python arbeiten, können Sie das Paket verwenden, um auf MetaTrader 5-Daten zuzugreifen. Mit allem, was man in Python tun kann, ist es einfacher, die gleiche Forschung zu betreiben wie ein MQL5-Programmierer. Sobald die Recherche abgeschlossen ist, können Sie die Daten alternativ in Excel oder ein anderes Programm exportieren, um alle grafischen Darstellungen zu erstellen, die in MetaTrader 5 möglich sind, und so die Analyse der Ergebnisse zu erleichtern.

Ich muss hier eine kurze Erklärung hinzufügen. Warum sollte man Python anstelle von Excel verwenden, wenn die Ergebnisse in Excel aufgezeichnet werden würden? Der Grund dafür ist einfach: Mit VBA (Visual Basic for Application) haben wir keinen direkten Zugriff auf die gleichen Daten wie mit Python, da wir die Daten des MetaTrader 5 verwenden. Um dies in Excel zu tun, sollten Sie entweder eine DLL erstellen, die solche Dinge unterstützt, oder viele Dateien im CVS-Format exportieren, um die gleichen Daten zu erhalten.

In Excel haben Sie vielleicht sogar noch mehr Arbeit, um alle Berechnungen zu erstellen, die in Python durchgeführt werden würden. Der Nachteil ist, dass Sie, wenn Sie die Datenbank ändern wollen, die gesamte Arbeit in Excel erneut durchführen müssen. Wenn Sie jedoch Python verwenden, brauchen Sie Python nur anzuweisen, die Datenbank zu ändern, und es wird dies direkt an den MetaTrader 5 weitergeben, ohne dass Sie einen zusätzlichen Aufwand betreiben müssen.

Mein Rat ist also, sich so viel wie möglich anzueignen, denn jedes Werkzeug hat seine Vor- und Nachteile. Obwohl Python sehr nützlich ist, erlaubt es Ihnen nicht, einen Indikator zu erstellen, der auf einem Chart angezeigt wird, oder einen Expert Advisor, der Sie beim Handel unterstützt. Dies kann nur durch MQL5 realisiert werden. Daher gibt es hier kein besseres oder schlechteres Werkzeug. Sie ergänzen sich gegenseitig und dienen unterschiedlichen Zwecken. Lernen Sie auf jeden Fall beides, denn Sie wissen nie, wann Sie das eine oder das andere brauchen werden.


Schlussfolgerung

Trotz aller Einfachheit müssen Sie immer Folgendes beachten: Sie stehen noch am Anfang. Versuchen Sie nicht, etwas Kompliziertes sofort zu tun. Versuchen Sie, etwas zu schaffen, das funktioniert. Auch wenn es auf den ersten Blick völlig sinnlos erscheinen mag, fangen Sie mit etwas Einfachem an.

Experimentieren Sie nach und nach mit den Funktionen. Lernen Sie die Sprache C/C++, um Ihre MQL5-Programmierfähigkeiten zu erweitern. Üben Sie immer und versuchen Sie, die Dinge auf Ihre eigene Art und Weise zu tun, anders als viele es immer tun, denn egal wie kompliziert eine Aufgabe erscheinen mag, es gibt immer einen Weg, sie besser zu machen.

Lernen Sie, Ihre Codes zu vereinfachen, seien Sie geduldig und beharrlich. Geben Sie nicht auf, wenn Sie auf ein Problem stoßen, das Ihr Wissen ein wenig übersteigt. In einer solchen Situation sollten Sie noch mehr lernen und versuchen, eine Lösung auf der Grundlage des bereits vorhandenen Wissens zu finden. Wenn Sie ein Problem bereits gelöst haben, suchen Sie nach einer besseren Lösung für dieses Problem. Ihr endgültiger Lohn wird ein umfangreiches und tiefes Wissen sein, ein Reichtum, den Ihnen niemand wegnehmen kann. Wissen kann geliehen werden, aber es kann niemals gestohlen werden.

Seien Sie bescheiden und versuchen Sie, Ihr Wissen mit anderen zu teilen. Auf diese Weise lernen Sie neue Dinge und zeigen auch neue Möglichkeiten für diejenigen auf, die sich auf andere Lösungen konzentrieren. Das war's für heute.


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

Rebuy-Algorithmus: Handelssimulation mit mehreren Währungen Rebuy-Algorithmus: Handelssimulation mit mehreren Währungen
In diesem Artikel werden wir ein mathematisches Modell zur Simulation der Preisbildung in mehreren Währungen erstellen und die Untersuchung des Diversifizierungsprinzips als Teil der Suche nach Mechanismen zur Steigerung der Handelseffizienz abschließen, die ich im vorherigen Artikel mit theoretischen Berechnungen begonnen habe.
Entwicklung eines Replay-Systems — Marktsimulation (Teil 02): Erste Versuche (II) Entwicklung eines Replay-Systems — Marktsimulation (Teil 02): Erste Versuche (II)
Diesmal wollen wir einen anderen Ansatz wählen, um das 1-Minuten-Ziel zu erreichen. Diese Aufgabe ist jedoch nicht so einfach, wie man vielleicht denkt.
Frequenzbereichsdarstellungen von Zeitreihen: Das Leistungsspektrum Frequenzbereichsdarstellungen von Zeitreihen: Das Leistungsspektrum
In diesem Artikel erörtern wir Methoden zur Analyse von Zeitreihen im Frequenzbereich. Hervorhebung des Nutzens der Untersuchung der Leistungsspektren von Zeitreihen bei der Erstellung von Vorhersagemodellen. In diesem Artikel werden wir einige der nützlichen Perspektiven erörtern, die sich aus der Analyse von Zeitreihen im Frequenzbereich unter Verwendung der diskreten Fourier-Transformation (dft) ergeben.
Entwicklung eines Replay-Systems — Marktsimulation (Teil 01): Erste Versuche (I) Entwicklung eines Replay-Systems — Marktsimulation (Teil 01): Erste Versuche (I)
Wie wäre es, ein System zu schaffen, das es uns ermöglicht, den Markt zu studieren, wenn er geschlossen ist, oder sogar Marktsituationen zu simulieren? Wir beginnen hier eine neue Artikelserie, in der wir uns mit diesem Thema beschäftigen werden.