Artikel über das Testen von Strategien in MQL5

icon

Wie wird eine Handelsstrategie entwickelt, geschrieben und getestet, wie findet man optimale Systemparameter und analysiert Ergebnisse? Die Plattform MetaTrader bietet den Programmierern von Handelsrobotern viele Möglichkeiten, Handelideen schnell und präzise zu testen.  Erfahren Sie, wie Handelsroboter für mehrere Währungspaare getestet werden und wie man MQL5 Cloud Network für Optimierung nutzen kann.

Die Programmierer automatischer Handelssysteme können mit den Grundlagen des Testens und den Algorithmen der Tickgenerierung im Strategietester beginnen.

Neuer Artikel
letzte | beste
preview
MetaTrader 5 und der MQL5-Wirtschaftskalender: Wie sich News in ein reproduzierbares Handelssystem umwandeln lassen

MetaTrader 5 und der MQL5-Wirtschaftskalender: Wie sich News in ein reproduzierbares Handelssystem umwandeln lassen

Der Artikel stellt einen systematischen Ansatz für den Handel mit Nachrichten in MetaTrader 5 unter Verwendung des integrierten Wirtschaftskalenders vor: Datenstruktur, API-Funktionen, Zeitsynchronisationsregeln und Ereignisfilterung. Es werden Methoden zur Zwischenspeicherung und inkrementellen Aktualisierung ohne Überlastung des Servers beschrieben. Der Artikel beschreibt außerdem einen funktionsfähigen Mechanismus für den Export historischer Ereignisse in eine .EX5-Ressource für deterministische Tests mit demselben Algorithmus.
preview
Entwicklung eines Replay Systems (Teil 55): Steuermodul

Entwicklung eines Replay Systems (Teil 55): Steuermodul

In diesem Artikel werden wir einen Kontrollindikator implementieren, damit er in das von uns entwickelte Nachrichtensystem integriert werden kann. Obwohl es nicht sehr schwierig ist, gibt es einige Details, die bei der Initialisierung dieses Moduls beachtet werden müssen. Das hier vorgestellte Material dient ausschließlich zu Bildungszwecken. Es sollte auf keinen Fall als Anwendung für einen anderen Zweck als das Lernen und Beherrschen der gezeigten Konzepte betrachtet werden.
preview
Entwicklung eines Replay-Systems (Teil 62): Abspielen des Dienstes (III)

Entwicklung eines Replay-Systems (Teil 62): Abspielen des Dienstes (III)

In diesem Artikel befassen wir uns mit dem Problem eines Übermaßes an Ticks, der die Anwendungsleistung bei der Verwendung echter Daten beeinträchtigen kann. Dieses Übermaß beeinträchtigt häufig das korrekte Timing, das erforderlich ist, um einen einminütigen Balken im entsprechenden Fenster zu erstellen.
preview
Entwicklung eines Expert Advisors für mehrere Währungen (Teil 21): Vorbereitungen für ein wichtiges Experiment und Optimierung des Codes

Entwicklung eines Expert Advisors für mehrere Währungen (Teil 21): Vorbereitungen für ein wichtiges Experiment und Optimierung des Codes

Um weitere Fortschritte zu erzielen, wäre es gut zu sehen, ob wir die Ergebnisse verbessern können, indem wir die automatische Optimierung in regelmäßigen Abständen erneut durchführen und einen neuen EA erstellen. Der Stolperstein in vielen Debatten über den Einsatz der Parameteroptimierung ist die Frage, wie lange die erhaltenen Parameter für den Handel in der Zukunft verwendet werden können, während die Rentabilität und der Drawdown auf dem vorgegebenen Niveau bleiben. Und ist das überhaupt möglich?
preview
Marktsimulation: Positionsdarstellung (III)

Marktsimulation: Positionsdarstellung (III)

In früheren Artikeln haben wir erwähnt, dass wir manchmal einen Wert für die Eigenschaft ZOrder festlegen müssen. Aber warum? Der Grund dafür ist, dass viele Codeteile, die Objekte in einem Chart hinzufügen, einfach keinen Wert für diese Eigenschaft verwenden oder, genauer gesagt, nicht definieren. Es geht mir nicht darum, zu sagen, was Programmierer tun oder lassen sollen und wie sie ihren Code schreiben sollten. Ich bin hier, um Ihnen, lieber Leser, und jedem, der wirklich verstehen will, wie diese Prozesse intern funktionieren, zu zeigen, was tatsächlich hinter den Kulissen passiert.
preview
Marktsimulation (Teil 19): Erste Schritte mit SQL (II)

Marktsimulation (Teil 19): Erste Schritte mit SQL (II)

Wie wir im ersten Artikel über SQL erklärt haben, ist es sinnlos, Zeit in die Programmierung von Prozeduren zu investieren, um das zu tun, was bereits in SQL integriert ist. Ohne die Grundlagen zu kennen, werden Sie jedoch nicht in der Lage sein, irgendetwas mit SQL zu tun oder die Vorteile dieses Tools voll auszuschöpfen. In diesem Artikel werden wir uns daher ansehen, wie man grundlegende Aufgaben in Datenbanken durchführt.
preview
Entwicklung eines Multi-Currency Expert Advisors (Teil 26): Informer für Handelsinstrumente

Entwicklung eines Multi-Currency Expert Advisors (Teil 26): Informer für Handelsinstrumente

Bevor wir mit der Entwicklung von Mehrwährungs-EAs fortfahren, wollen wir versuchen, ein neues Projekt mit der entwickelten Bibliothek zu erstellen. In diesem Beispiel wird gezeigt, wie man die Speicherung von Quellcode am besten organisiert und wie das neue Code-Repository von MetaQuotes uns dabei helfen kann.
preview
Marktsimulation (Teil 15): Sockets (IX)

Marktsimulation (Teil 15): Sockets (IX)

In diesem Artikel besprechen wir eine der möglichen Lösungen für das, was wir versucht haben zu demonstrieren, nämlich wie man es einem Excel-Nutzer ermöglicht, eine Aktion in MetaTrader 5 auszuführen, ohne Aufträge zu senden oder Positionen zu öffnen oder zu schließen. Die Idee ist, dass der Nutzer Excel verwendet, um eine fundamentale Analyse eines bestimmten Symbols durchzuführen. Und allein mit Excel lässt sich ein in MetaTrader 5 laufender Expert Advisor anweisen, eine bestimmte Position zu eröffnen oder zu schließen.
preview
Battle Royale Optimizer (BRO)

Battle Royale Optimizer (BRO)

Der Artikel untersucht den Algorithmus Battle Royale Optimizer – eine Metaheuristik, bei der Lösungen mit ihren nächsten Nachbarn konkurrieren, „Schaden“ anhäufen, ersetzt werden, wenn ein Schwellenwert überschritten wird, und den Suchraum um die aktuell beste Lösung herum regelmäßig verkleinern. Es werden sowohl Pseudocode als auch eine MQL5-Implementierung der Klasse C_AO_BRO vorgestellt, einschließlich Nachbarschaftssuche, Bewegung in Richtung der besten Lösung und eines adaptiven Delta-Intervalls. Die Testergebnisse für die Funktionen „Hilly“, „Forest“ und „Megacity“ zeigen die Stärken und Grenzen des Ansatzes auf. Der Leser erhält eine gebrauchsfertige Grundlage für Experimente und die Einstellung wichtiger Parameter wie popSize und maxDamage.
preview
Marktsimulation (Teil 18): Erste Schritte mit SQL (I)

Marktsimulation (Teil 18): Erste Schritte mit SQL (I)

Es spielt keine Rolle, welches SQL-Programm wir verwenden: MySQL, SQL Server, SQLite, OpenSQL oder andere. Allen gemeinsam ist die Sprache SQL. Auch wenn wir nicht vorhaben, Workbench zu verwenden, können wir die Datenbank direkt in MetaEditor oder über MQL5 manipulieren oder mit ihr arbeiten, um Aktionen in MetaTrader 5 auszuführen, aber dazu benötigen Sie SQL-Kenntnisse. Hier werden wir also zumindest die Grundlagen lernen.
preview
Marktsimulation (Teil 16): Sockets (X)

Marktsimulation (Teil 16): Sockets (X)

Wir sind kurz davor, diese Herausforderung abzuschließen. Bevor wir jedoch beginnen, möchte ich, dass Sie versuchen, diese beiden Artikel zu verstehen – diesen und den vorherigen. Auf diese Weise werden Sie den nächsten Artikel wirklich verstehen, in dem ich ausschließlich den Teil behandeln werde, der mit der MQL5-Programmierung zusammenhängt. Aber ich werde auch versuchen, es verständlich zu machen. Wenn Sie diese beiden letzten Artikel nicht verstehen, wird es Ihnen schwer fallen, den nächsten zu verstehen, denn der Stoff häuft sich. Je mehr Dinge es zu tun gibt, desto mehr muss man schaffen und verstehen, um das Ziel zu erreichen.
preview
Marktsimulation (Teil 17): Sockets (XI)

Marktsimulation (Teil 17): Sockets (XI)

Die Implementierung des Teils des Codes, der in MetaTrader 5 ausgeführt werden soll, ist unproblematisch. Es gibt jedoch einige Punkte, die berücksichtigt werden müssen. Das ist notwendig, damit das System korrekt funktioniert. Denken Sie an einen wichtigen Punkt: Es läuft nicht nur ein einziges Programm. Tatsächlich müssen drei Programme gleichzeitig ausgeführt werden. In Wirklichkeit müssen drei Programme gleichzeitig laufen. Es ist wichtig, sie so zu implementieren und zu strukturieren, dass sie miteinander interagieren und kommunizieren können und dass jedes von ihnen versteht, was die anderen tun oder beabsichtigen.
preview
Entwicklung des Price Action Analysis Toolkit (Teil 57): Ein Modul zur Klassifizierung von Marktzuständen in MQL5

Entwicklung des Price Action Analysis Toolkit (Teil 57): Ein Modul zur Klassifizierung von Marktzuständen in MQL5

In diesem Artikel wird ein Modul zur Klassifizierung von Marktzuständen für MQL5 entwickelt, das das Preisverhalten anhand abgeschlossener Preisdaten interpretiert. Durch die Analyse von Volatilitätskontraktion, -expansion und struktureller Konsistenz klassifiziert das Tool die Marktbedingungen als Kompression, Transition, Expansion oder Trend und bietet so einen klaren kontextuellen Rahmen für die Price-Action-Analyse.
preview
Entwicklung des Price Action Analysis Toolkit (Teil 58): Modul zur Analyse der Spannenverengung und Reifegradklassifizierung

Entwicklung des Price Action Analysis Toolkit (Teil 58): Modul zur Analyse der Spannenverengung und Reifegradklassifizierung

Aufbauend auf dem vorangegangenen Artikel, in dem das Modul zur Klassifizierung des Marktzustands vorgestellt wurde, konzentriert sich dieser Teil auf die Implementierung der Kernlogik zur Identifizierung und Bewertung von Kompressionszonen. Vorgestellt wird ein MQL5-System zur Erkennung von Range-Kontraktionen und zur Einstufung ihres Reifegrads, das Marktkompression ausschließlich anhand des Kursverlaufs analysiert.
preview
Vom Neuling zum Experten:  Erweiterung einer Liquiditätsstrategie mit Trendfiltern

Vom Neuling zum Experten: Erweiterung einer Liquiditätsstrategie mit Trendfiltern

Der Artikel erweitert eine liquiditätsbasierte Strategie um einen einfachen Trendfilter: Liquiditätszonen sollen nur in Richtung des EMA(50) gehandelt werden. Darin werden Filterregeln erläutert, die wiederverwendbare Klasse „TrendFilter.mqh“ sowie die EA-Integration in MQL5 vorgestellt und Tests mit und ohne Filter miteinander verglichen. Die Leser profitieren von einer klaren Trendorientierung, weniger übermäßigen Handelsaktivitäten in Gegentrendphasen und einsatzbereiten Quelldateien.
preview
Der MQL5 Standard Library Explorer (Teil 6): Optimierung eines generierten Expert Advisors

Der MQL5 Standard Library Explorer (Teil 6): Optimierung eines generierten Expert Advisors

In dieser Diskussion knüpfen wir an den zuvor entwickelten Multi-Signal-Expert Advisor an, mit dem Ziel, verfügbare Optimierungsmethoden zu erforschen und anzuwenden. Ziel ist es, festzustellen, ob die Handelsleistung des EA durch systematische Optimierung auf Basis historischer Daten sinnvoll verbessert werden kann.
preview
Chaos-Optimierungsalgorithmus (COA): Fortsetzung

Chaos-Optimierungsalgorithmus (COA): Fortsetzung

Wir setzen die Untersuchung des chaotischen Optimierungsalgorithmus fort. Der zweite Teil des Artikels befasst sich mit den praktischen Aspekten der Implementierung des Algorithmus, seinen Tests und Schlussfolgerungen.
preview
Marktsimulation (Teil 13): Sockets (VII)

Marktsimulation (Teil 13): Sockets (VII)

Wenn wir etwas in xlwings oder einem anderen Paket entwickeln, das das Lesen und Schreiben direkt in Excel ermöglicht, müssen wir beachten, dass alle Programme, Funktionen oder Prozeduren ausgeführt werden und dann ihre Aufgabe beenden. Sie bleiben nicht in einer Schleife, egal wie sehr wir uns bemühen, die Dinge anders zu machen.
preview
Swing-Extreme und Pullbacks in MQL5 (Teil 2): Automatisierung der Strategie mit einem Expert Advisor

Swing-Extreme und Pullbacks in MQL5 (Teil 2): Automatisierung der Strategie mit einem Expert Advisor

Der Indikator basiert auf der Marktstruktur niedrigerer Zeitrahmen und wird anschließend im höheren Zeitrahmen eingeordnet. Er erkennt Swing-Extreme, bei denen der Kurs statistisch gesehen anfällig für eine Trendumkehr wird. Er visualisiert Überdehnungs- und Rücksetzerbereiche und bietet so einen frühen Einblick in das Mean-Reversion-Verhalten.
preview
Marktsimulation (Teil 20): Erste Schritte mit SQL (III)

Marktsimulation (Teil 20): Erste Schritte mit SQL (III)

Obwohl wir Operationen mit einer Datenbank mit etwa 10 Datensätzen durchführen können, lässt sich das Thema deutlich besser verstehen, wenn wir mit einer Datei arbeiten, die mehr als 15 Tausend Datensätze enthält. Das heißt, wenn wir versuchen würden, eine solche Datenbank manuell zu erstellen, wäre dies ein enormer Aufwand. Es ist jedoch selbst zu Lernzwecken schwierig, eine solche Datenbank zum Download zu finden. Aber in Wirklichkeit müssen wir nicht darauf zurückgreifen – wir können MetaTrader 5 verwenden, um eine Datenbank für uns zu erstellen. Im heutigen Artikel werden wir uns ansehen, wie man das macht.
preview
Marktsimulation (Teil 23): Erste Schritte mit SQL (VI)

Marktsimulation (Teil 23): Erste Schritte mit SQL (VI)

In diesem Artikel werden wir sehen, wie man eine Datenbank visualisiert und daraus ihre Struktur versteht. Dies geschieht durch die Analyse ihrer internen Struktur. Auch wenn dies auf den ersten Blick unnötig erscheinen mag, ist es durchaus gerechtfertigt, wenn wir wirklich Datenbankadministratoren werden wollen. Schließlich verdienen manche Menschen ihren Lebensunterhalt damit, Datenbanken zu pflegen und zu entwerfen.
preview
Implementierung des Truncated-Newton-Conjugate-Gradient-Algorithmus in MQL5

Implementierung des Truncated-Newton-Conjugate-Gradient-Algorithmus in MQL5

Dieser Artikel implementiert einen Truncated-Newton-Conjugate-Gradient (TNC) Optimierer mit Box-Beschränkungen in MQL5 und beschreibt detailliert seine Kernkomponenten: Skalierung, Projektion auf Grenzen, Liniensuche und Hessematrix-Vektor-Produkte mittels finiter Differenzen. Es stellt eine Zielfunktions-Wrapperklasse bereit, die analytische oder numerische Ableitungen unterstützt, und validiert die Implementierung am Rosenbrock-Benchmark. Ein Beispiel für eine logistische Regression veranschaulicht, wie TNC als weitgehend austauschbare Alternative zu LBFGS eingesetzt werden kann.
preview
Marktsimulation (Teil 24): Erste Schritte mit SQL (VII)

Marktsimulation (Teil 24): Erste Schritte mit SQL (VII)

Im vorherigen Artikel haben wir die notwendige Einführung in SQL abgeschlossen. Und meiner Meinung nach haben wir klar dargelegt, was wir über SQL zeigen und erklären wollten. Dies geschah, damit sich jeder, der sich das derzeit im Aufbau befindliche Markt-Replay-/Simulationssystem ansieht, zumindest ein Bild davon machen kann, was dort vor sich geht. Der Punkt ist, dass es keinen Sinn ergibt, Funktionen selbst zu programmieren, die SQL bereits perfekt übernimmt.
preview
Marktsimulation (Teil 23): Positionsansicht (I)

Marktsimulation (Teil 23): Positionsansicht (I)

Der Inhalt, den wir ab diesem Punkt behandeln werden, ist in Bezug auf Theorie und Konzepte weitaus komplexer. Ich werde versuchen, den Stoff so einfach wie möglich zu gestalten. Der Programmierteil selbst ist recht einfach und unkompliziert. Aber wenn Sie die Theorie dahinter nicht verstehen, werden Sie überhaupt keine praktische Grundlage haben, um das Replay-/Simulationssystem für andere Aufgaben als die, die ich zeigen werde, zu verfeinern oder anzupassen. Ich möchte nicht, dass Sie den von mir präsentierten Code lediglich kompilieren und verwenden. Ich möchte, dass Sie lernen, verstehen und, wenn möglich, in der Lage sind, etwas noch Besseres zu schaffen.
preview
Marktsimulation (Teil 24): Positionsansicht (II)

Marktsimulation (Teil 24): Positionsansicht (II)

In diesem Artikel zeige ich, wie man einen Indikator verwendet, um offene Positionen auf dem Handelsserver auf die einfachste und praktischste Weise zu verfolgen. Ich mache dies Schritt für Schritt, um zu zeigen, dass man nicht unbedingt all dies in einen Expert Advisor verschieben muss. Viele von Ihnen haben sich wahrscheinlich aus dem einen oder anderen Grund daran gewöhnt, dies zu tun. Tatsächlich ist das nicht wirklich gerechtfertigt, denn im Laufe der Entwicklung dieser Implementierung wird deutlich werden, dass man für diesen Zweck verschiedene Arten von Indikatoren erstellen oder implementieren kann.
preview
Die MQL5-Standardbibliothek im Überblick (Teil 8): Ein hybrides Handelsjournal mit CFileTxt

Die MQL5-Standardbibliothek im Überblick (Teil 8): Ein hybrides Handelsjournal mit CFileTxt

In diesem Artikel befassen wir uns mit den Dateiverarbeitungsklassen der MQL5-Standardbibliothek, um ein robustes Reporting-Modul zu entwickeln, das automatisch Excel-kompatible CSV-Dateien generiert. Dabei unterscheiden wir klar zwischen manuell ausgeführten Trades und algorithmisch ausgeführten Orders und schaffen damit die Grundlage für ein zuverlässiges, auditierbares Trade-Reporting.
preview
Marktsimulation: Erste Schritte mit SQL in MQL5 (IV)

Marktsimulation: Erste Schritte mit SQL in MQL5 (IV)

Viele Menschen neigen dazu, SQL zu unterschätzen oder es gar nicht zu verwenden, weil sie nicht vollständig verstehen, wie es tatsächlich funktioniert. Wenn wir Abfragen an eine SQL-Datenbank richten, suchen wir nicht immer nach einer universellen Antwort; in einigen Fällen benötigen wir eine sehr spezifische und praktische Antwort. Wenn eine Datenbank mit einer geeigneten Struktur und einem geeigneten Datenmodell erstellt wird, kann fast jede Art von Information darin integriert werden.
preview
Marktsimulation: Positionsansicht (IV)

Marktsimulation: Positionsansicht (IV)

Hier werden wir beginnen, verschiedene Komponenten oder Anwendungen zusammenzuführen, die zuvor völlig voneinander isoliert waren. Chart Trade, der Mausindikator und der Expert Advisor waren bereits miteinander verknüpft, aber es gab immer noch keine Möglichkeit, die auf dem Handelsserver offenen Positionen, die oft über ein Cross-Order-System verwaltet werden, direkt im Chart anzuzeigen. Ab diesem Punkt wird dies möglich, was den Weg für verschiedene Ideen und zukünftige Implementierungen ebnet. Obwohl wir erst am Anfang stehen, diese Komponenten in Betrieb zu nehmen, haben wir bereits eine Richtung für die weitere Entwicklung.
preview
Marktsimulation: Positionsansicht (V)

Marktsimulation: Positionsansicht (V)

Trotz dessen, was im vorherigen Artikel gezeigt wurde, mag all dies zunächst einfach erscheinen. In Wirklichkeit gibt es jedoch noch einige Probleme, und viele Aufgaben sind noch offen. Sie, lieber Leser, Sie denken vielleicht, dass alles einfach und unkompliziert ist. Aus Unerfahrenheit akzeptieren Sie vielleicht einfach alles, was Ihnen präsentiert wird. Und das ist ein Fehler, den Sie zu vermeiden versuchen sollten. Noch schlimmer ist es, etwas zu verwenden, ohne wirklich zu verstehen, was genau Sie da verwenden. Anfänger durchlaufen oft eine Copy-and-Paste-Phase. Wenn Sie nicht für immer in dieser Phase stecken bleiben wollen, sollten Sie lernen, wie man bestimmte Werkzeuge verwendet. Eines der am häufigsten von Programmierern verwendeten Werkzeuge ist die Dokumentation. Das zweite ist das Testen, unterstützt durch Protokolldateien. Hier werden wir uns ansehen, wie man dabei vorgeht.