Robustheitstests für Expert Advisors
Bei der Entwicklung von Strategien sind viele komplizierte Details zu berücksichtigen, von denen viele für Anfänger nicht besonders interessant sind. Infolgedessen mussten viele Händler, mich eingeschlossen, diese Lektionen auf die harte Tour lernen. Dieser Artikel basiert auf meinen Beobachtungen von häufigen Fallstricken, die den meisten Anfängern bei der Entwicklung von Strategien auf MQL5 begegnen. Es wird eine Reihe von Tipps, Tricks und Beispielen bieten, die dabei helfen, die Untauglichkeit eines EA zu erkennen und die Robustheit unserer eigenen EAs auf einfache Weise zu testen. Ziel ist es, die Leser aufzuklären und ihnen zu helfen, zukünftige Betrügereien beim Kauf von EAs zu vermeiden und Fehler bei der eigenen Strategieentwicklung zu verhindern.
DoEasy. Steuerung (Teil 8): Objektkategorien von Basis-WinForms zur Steuerung von GroupBox- und CheckBox
Der Artikel befasst sich mit der Erstellung von ‚GroupBox‘ und ‚CheckBox‘ WinForms Objekten, sowie der Entwicklung von Basisobjekten für WinForms Objektkategorien. Alle erstellten Objekte sind noch statisch, d.h. sie können nicht mit der Maus interagieren.
Kausalanalyse von Zeitreihen mit Hilfe der Transferentropie
In diesem Artikel wird erörtert, wie die statistische Kausalität zur Ermittlung prädiktiver Variablen eingesetzt werden kann. Wir werden die Verbindung zwischen Kausalität und Transferentropie untersuchen und einen MQL5-Code zur Erkennung von direktionalen Informationsübertragungen zwischen zwei Variablen vorstellen.
Umstellung auf MQL5 Algo Forge (Teil 1): Erstellen des Haupt-Repositorys
Bei der Arbeit an Projekten in MetaEditor stehen Entwickler oft vor der Notwendigkeit, Codeversionen zu verwalten. MetaQuotes kündigte kürzlich die Migration zu GIT und die Einführung von MQL5 Algo Forge mit Codeversionierung und Kollaborationsfunktionen an. In diesem Artikel wird erörtert, wie die neuen und bereits vorhandenen Tools effizienter genutzt werden können.
DoEasy. Steuerung (Teil 33): Vertikale Bildlaufleiste
In diesem Artikel werden wir die Entwicklung der grafischen Elemente der DoEasy-Bibliothek fortsetzen und das vertikale Scrollen von Formularobjekt-Steuerelementen sowie einige nützliche Funktionen und Methoden hinzufügen, die in Zukunft benötigt werden.
Einführung in Connexus (Teil 1): Wie verwendet man die WebRequest-Funktion?
Dieser Artikel ist der Beginn einer Reihe von Entwicklungen für eine Bibliothek namens „Connexus“, die HTTP-Anfragen mit MQL5 erleichtern soll. Das Ziel dieses Projekts ist es, dem Endnutzer diese Möglichkeit zu bieten und zu zeigen, wie man diese Hilfsbibliothek verwendet. Ich wollte sie so einfach wie möglich gestalten, um das Studium zu erleichtern und die Möglichkeit für künftige Entwicklungen zu schaffen.
Expert Advisor auf der Grundlage des universellen MLP-Approximators
In diesem Artikel wird eine einfache und zugängliche Methode zur Verwendung eines neuronalen Netzwerks in einem Handels-EA vorgestellt, für die keine tiefgreifenden Kenntnisse des maschinellen Lernens erforderlich sind. Die Methode eliminiert die Zielfunktionsnormalisierung und überwindet die Probleme der „Gewichtsexplosion“ und des „Netzwerkstaus“, indem sie intuitives Training und visuelle Kontrolle der Ergebnisse bietet.
MQL5-Assistenten-Techniken, die Sie kennen sollten (Teil 17): Handel mit mehreren Währungen
Der Handel mit mehreren Währungen ist nicht standardmäßig verfügbar, wenn ein Expertenberater über den Assistenten zusammengestellt wird. Wir untersuchen 2 mögliche Hacks, die Händler machen können, wenn sie ihre Ideen mit mehr als einem Symbol gleichzeitig testen wollen.
Klassische Strategien neu interpretieren (Teil III): Prognose von höhere Hochs und tiefere Tiefs
In dieser Artikelserie werden wir klassische Handelsstrategien empirisch analysieren, um zu sehen, ob wir sie mithilfe von KI verbessern können. In der heutigen Diskussion haben wir versucht, mithilfe des Modells der linearen Diskriminanzanalyse höhere Hochs und tiefere Tiefs vorherzusagen.
Entwicklung eines MQL5 RL-Agenten mit Integration von RestAPI (Teil 4): Organisieren von Funktionen in Klassen in MQL5
In diesem Artikel wird der Übergang von der prozeduralen Codierung zur objektorientierten Programmierung (OOP) in MQL5 mit Schwerpunkt auf der Integration mit der REST-API erörtert. Heute werden wir besprechen, wie HTTP-Anfragefunktionen (GET und POST) in Klassen organisiert werden können. Wir werden einen genaueren Blick auf das Refactoring von Code werfen und zeigen, wie isolierte Funktionen durch Klassenmethoden ersetzt werden können. Der Artikel enthält praktische Beispiele und Tests.
Hybridisierung von Populationsalgorithmen. Sequentielle und parallele Strukturen
Hier tauchen wir in die Welt der Hybridisierung von Optimierungsalgorithmen ein, indem wir uns drei Haupttypen ansehen: Strategiemischung, sequentielle und parallele Hybridisierung. Wir werden eine Reihe von Experimenten durchführen, in denen wir die relevanten Optimierungsalgorithmen kombinieren und testen.
Entwicklung eines Replay Systems (Teil 33): Auftragssystem (II)
Heute werden wir das Auftragssystem weiterentwickeln. Wie Sie sehen werden, werden wir in großem Umfang wiederverwenden, was bereits in anderen Artikeln gezeigt wurde. Dennoch werden Sie in diesem Artikel eine kleine Belohnung erhalten. Zunächst werden wir ein System entwickeln, das mit einem echten Handelsserver verwendet werden kann, sowohl von einem Demokonto als auch von einem echten Konto. Wir werden die Plattform MetaTrader 5 ausgiebig nutzen, die uns von Anfang an alle notwendige Unterstützung bietet.
MQL5 Handels-Toolkit (Teil 7): Erweitern der History Management EX5-Bibliothek um die Funktionen für den zuletzt stornierten, schwebenden Auftrag
Erfahren Sie, wie Sie das letzte Modul in der Bibliothek des History Manager EX5 erstellen, wobei Sie sich auf die Funktionen konzentrieren, die für die Bearbeitung des zuletzt stornierten, schwebenden Auftrags verantwortlich sind. Damit haben Sie die Möglichkeit, wichtige Details zu stornierten offenen Aufträgen mit MQL5 effizient abzurufen und zu speichern.
Erstellen von einem Trading Administrator Panel in MQL5 (Teil VI): Das Panel zur Handelsverwaltung (II)
In diesem Artikel erweitern wir das Trade Management Panel unseres multifunktionalen Admin Panels. Wir führen eine leistungsstarke Hilfsfunktion ein, die den Code vereinfacht und die Lesbarkeit, Wartbarkeit und Effizienz verbessert. Wir zeigen Ihnen auch, wie Sie zusätzliche Schaltflächen nahtlos integrieren und die Nutzeroberfläche erweitern können, um ein breiteres Spektrum von Handelsaufgaben zu bewältigen. Ob es um die Verwaltung von Positionen, die Anpassung von Aufträgen oder die Vereinfachung von Nutzerinteraktionen geht, dieser Leitfaden hilft Ihnen bei der Entwicklung eines robusten, nutzerfreundlichen Trade Management Panels.
Grafiken in der Bibliothek DoEasy (Teil 98): Verschieben von Angelpunkten erweiterter grafischer Standardobjekte
In diesem Artikel setze ich die Entwicklung erweiterter grafischer Standardobjekte fort und schaffe die Funktionen zum Verschieben von Angelpunkten zusammengesetzter grafischer Objekte unter Verwendung von Kontrollpunkten zur Verwaltung der Koordinaten der Angelpunkte des grafischen Objekts.
Nachrichtenhandel leicht gemacht (Teil 2): Risikomanagement
In diesem Artikel wird die Vererbung in unseren bisherigen und neuen Code eingeführt. Um die Effizienz zu erhöhen, wird ein neues Datenbankdesign eingeführt. Darüber hinaus wird eine Risikomanagementklasse eingerichtet, die sich mit der Berechnung des Volumens befasst.
Handelseinblicke durch Volumen: Mehr als OHLC-Charts
Ein algorithmisches Handelssystem, das die Volumenanalyse mit Techniken des maschinellen Lernens, insbesondere neuronalen LSTM-Netzen, kombiniert. Im Gegensatz zu traditionellen Handelsansätzen, die sich in erster Linie auf Preisbewegungen konzentrieren, legt dieses System den Schwerpunkt auf Volumenmuster und deren Ableitungen, um Marktbewegungen vorherzusagen. Die Methodik umfasst drei Hauptkomponenten: Analyse der Volumenderivate (erste und zweite Ableitung), LSTM-Vorhersagen für Volumenmuster und traditionelle technische Indikatoren.
DoEasy. Steuerung (Teil 5): Basisobjekt von WinForms, Paneel-Steuerelement, Parameter AutoSize
In diesem Artikel werde ich das Basisobjekt aller Bibliotheks-WinForms-Objekte erstellen und mit der Implementierung der AutoSize-Eigenschaft des Paneel-Objekts für WinForms beginnen – automatische Größenanpassung zum Anpassen des internen Inhalts des Objekts.
Wie man ein Handelsjournal mit MetaTrader und Google-Tabellen erstellt
Erstellen eines Handelsjournals mit MetaTrader und Google-Tabellen! Sie lernen, wie Sie Ihre Handelsdaten über HTTP POST synchronisieren und über HTTP-Anfragen abrufen können. Am Ende haben Sie ein Handelsjournal, das Ihnen hilft, Ihre Geschäfte effektiv und effizient zu überblicken.
Entwicklung eines Toolkit zur Analyse von Preisaktionen (Teil 2): Ein Script für analytische Kommentare
Im Einklang mit unserer Vision, das Preisgeschehen zu vereinfachen, freuen wir uns, Ihnen ein weiteres Tool vorstellen zu können, das Ihre Marktanalyse erheblich verbessern und Ihnen helfen kann, gut informierte Entscheidungen zu treffen. Dieses Tool zeigt wichtige technische Indikatoren an, wie z. B. die Kurse des Vortags, wichtige Unterstützungs- und Widerstandsniveaus und das Handelsvolumen, und generiert automatisch visuelle Hinweise auf dem Chart.
Der Kalman-Filter für Forex-Strategien der Rückkehr zur Mitte
Der Kalman-Filter ist ein rekursiver Algorithmus, der im algorithmischen Handel verwendet wird, um den wahren Zustand einer Finanzzeitreihe durch Herausfiltern von Rauschen aus den Preisbewegungen zu schätzen. Er aktualisiert die Vorhersagen dynamisch auf der Grundlage neuer Marktdaten, was ihn für adaptive Strategien wie Mean Reversion wertvoll macht. In diesem Artikel wird zunächst der Kalman-Filter vorgestellt und seine Berechnung und Anwendung erläutert. Als nächstes wenden wir den Filter auf eine klassische Devisenstrategie, der Rückkehr zur Mitte, als Beispiel an. Schließlich führen wir verschiedene statistische Analysen durch, indem wir den Filter mit einem gleitenden Durchschnitt für verschiedene Devisenpaare vergleichen.
Developing a Replay System (Part 37): Paving the Path (I)
In this article, we will finally begin to do what we wanted to do much earlier. However, due to the lack of "solid ground", I did not feel confident to present this part publicly. Now I have the basis to do this. I suggest that you focus as much as possible on understanding the content of this article. I mean not simply reading it. I want to emphasize that if you do not understand this article, you can completely give up hope of understanding the content of the following ones.
Entwicklung eines Toolkit zur Analyse von Preisaktionen (Teil 15): Einführung in die Quarters-Theorie (I) - Quarters Drawer Script
Unterstützungs- und Widerstandspunkte sind kritische Niveaus, die potenzielle Trendumkehr und -fortsetzungen signalisieren. Obwohl es schwierig sein kann, diese Niveaus zu identifizieren, sind Sie, wenn Sie sie einmal gefunden haben, gut vorbereitet, um sich auf dem Markt zurechtzufinden. Als weitere Hilfe können Sie das in diesem Artikel vorgestellte Tool „Quarters Drawer“ verwenden, mit dem Sie sowohl primäre als auch sekundäre Unterstützungs- und Widerstandsniveaus identifizieren können.
Brain Storm Optimierungsalgorithmus (Teil I): Clustering
In diesem Artikel befassen wir uns mit einer innovativen Optimierungsmethode namens BSO (Brain Storm Optimization), die von einem natürlichen Phänomen namens „Brainstorming“ inspiriert ist. Wir werden auch einen neuen Ansatz zur Lösung von multimodalen Optimierungsproblemen diskutieren, den die BSO-Methode anwendet. Es ermöglicht die Suche nach mehreren optimalen Lösungen, ohne dass die Anzahl der Teilpopulationen vorher festgelegt werden muss. Wir werden auch die Clustermethoden K-Means und K-Means++ betrachten.
SQLite-Fähigkeiten in MQL5: Beispiel für ein Dashboard mit Handelsstatistiken nach Symbolen und magischen Zahlen
In diesem Artikel werden wir einen Indikator erstellen, der Handelsstatistiken auf einem Dashboard nach Konto, Symbolen und Handelsstrategien anzeigt. Wir werden den Code anhand von Beispielen aus der Dokumentation und dem Artikel über die Arbeit mit Datenbanken implementieren.
Selbstoptimierende Expert Advisors in MQL5 (Teil 9): Kreuzen zweier gleitender Durchschnitte
Dieser Artikel beschreibt den Aufbau einer Strategie des Kreuzens zweier gleitender Durchschnitte, die Signale aus einem höheren Zeitrahmen (D1) verwendet, um Einstiege auf einem niedrigeren Zeitrahmen (M15) zu steuern, wobei die Stop-Loss-Niveaus aus einem Zeitrahmen mit mittlerem Risiko (H4) berechnet werden. Es werden Systemkonstanten, nutzerdefinierte Enumerationen und Logik für trendfolgende und zum Mittelwert rückkehrende Modi eingeführt, wobei der Schwerpunkt auf Modularität und künftige Optimierung mithilfe eines genetischen Algorithmus liegt. Der Ansatz ermöglicht flexible Einstiegs- und Ausstiegsbedingungen und zielt darauf ab, die Signalverzögerung zu verringern und das Handels-Timing zu verbessern, indem Einstiegsmöglichkeiten im unteren Zeitrahmen mit Trends im oberen Zeitrahmen abgestimmt werden.
Entwicklung eines Replay Systems (Teil 40): Beginn der zweiten Phase (I)
Heute werden wir über die neue Phase des Replay/Simulator-Systems sprechen. In dieser Phase wird das Gespräch wirklich interessant und sehr inhaltsreich. Ich empfehle Ihnen dringend, den Artikel sorgfältig zu lesen und die darin enthaltenen Links zu nutzen. Dies wird Ihnen helfen, den Inhalt besser zu verstehen.
DoEasy. Dienstfunktionen (Teil 3): Das Muster der „Outside Bar“
In diesem Artikel werden wir das Preismuster der „Outside Bar“ in der DoEasy-Bibliothek entwickeln und die Methoden des Zugriffs auf das Preismuster-Management optimieren. Außerdem werden wir Fehler und Unzulänglichkeiten beheben, die bei den Bibliothekstests festgestellt wurden.
Von der Grundstufe bis zur Mittelstufe: Variablen (I)
Vielen Programmieranfängern fällt es schwer zu verstehen, warum ihr Code nicht so funktioniert, wie sie es erwarten. Es gibt viele Dinge, die einen Code wirklich funktional machen. Es ist nicht nur ein Haufen verschiedener Funktionen und Operationen, die den Code zum Laufen bringen. Heute lade ich Sie dazu ein, zu lernen, wie man richtigen Code erstellt, anstatt Fragmente zu kopieren und einzufügen. Die hier vorgestellten Materialien sind ausschließlich für didaktische Zwecke bestimmt. Die Anwendung sollte unter keinen Umständen zu einem anderen Zweck als zum Erlernen und Beherrschen der vorgestellten Konzepte verwendet werden.
Die Grenzen des maschinellen Lernens überwinden (Teil 4): Überwindung des irreduziblen Fehlers durch mehrere Prognosehorizonte
Maschinelles Lernen wird oft durch die Brille der Statistik oder der linearen Algebra betrachtet, aber dieser Artikel betont eine geometrische Perspektive der Modellvorhersagen. Sie zeigt, dass sich die Modelle dem Ziel nicht wirklich annähern, sondern es auf ein neues Koordinatensystem abbilden, was zu einer inhärenten Fehlausrichtung führt, die irreduzible Fehler zur Folge hat. In dem Artikel wird vorgeschlagen, dass mehrstufige Vorhersagen, bei denen die Prognosen des Modells über verschiedene Zeithorizonte hinweg verglichen werden, einen effektiveren Ansatz darstellen als direkte Vergleiche mit dem Ziel. Durch die Anwendung dieser Methode auf ein Handelsmodell zeigt der Artikel erhebliche Verbesserungen der Rentabilität und Genauigkeit, ohne das zugrunde liegende Modell zu verändern.
Die Gruppenmethode der Datenverarbeitung: Implementierung des Kombinatorischen Algorithmus in MQL5
In diesem Artikel setzen wir unsere Untersuchung der Algorithmenfamilie Group Method of Data Handling mit der Implementierung des Kombinatorischen Algorithmus und seiner verfeinerten Variante, dem Kombinatorischen Selektiven Algorithmus in MQL5 fort.
Entwicklung eines Handelssystems auf der Grundlage des Orderbuchs (Teil I): Der Indikator
„Depth of Market“ ist zweifellos ein sehr wichtiges Element für die Ausführung von schnellen Handelsgeschäften, insbesondere bei den Algorithmen des Hochfrequenzhandels (HFT). In dieser Artikelserie werden wir uns mit dieser Art von Handelsereignissen befassen, die über einen Broker für viele handelbare Symbole erworben werden können. Wir beginnen mit einem Indikator, bei dem Sie die Farbpalette, die Position und die Größe des direkt im Chart angezeigten Histogramms anpassen können. Wir werden uns auch ansehen, wie man BookEvent-Ereignisse erzeugt, um den Indikator unter bestimmten Bedingungen zu testen. Weitere mögliche Themen für zukünftige Artikel sind die Speicherung von Preisverteilungsdaten und deren Verwendung in einem Strategietester.
Klassische Strategien neu interpretieren (Teil 12): EURUSD Ausbruchsstrategie
Begleiten Sie uns heute, wenn wir uns der Herausforderung stellen, eine profitable Ausbruchs-Handelsstrategie in MQL5 zu entwickeln. Wir haben das Währungspaar EURUSD ausgewählt und versucht, Kursausbrüche auf dem stündlichen Zeitrahmen zu handeln. Unser System hatte Schwierigkeiten, zwischen falschen Ausbrüchen und dem Beginn eines echten Trends zu unterscheiden. Wir haben unser System mit Filtern überlagert, die unsere Verluste minimieren und gleichzeitig unsere Gewinne erhöhen sollen. Am Ende haben wir unser System erfolgreich profitabel und weniger anfällig für falsche Ausbrüche gemacht.
Von der Grundstufe bis zur Mittelstufe: Operatoren
In diesem Artikel werden wir uns die wichtigsten Operatoren ansehen. Obwohl das Thema einfach zu verstehen ist, gibt es einige Punkte, die von großer Bedeutung sind, wenn es darum geht, mathematische Ausdrücke in das Codeformat aufzunehmen. Ohne ein angemessenes Verständnis dieser Details geben Programmierer mit wenig oder gar keiner Erfahrung schließlich den Versuch auf, ihre eigenen Lösungen zu entwickeln.
Analyse mehrerer Symbole mit Python und MQL5 (Teil I): NASDAQ für Hersteller von integrierten Schaltungen
Diskutieren Sie mit uns, wie Sie KI nutzen können, um Ihre Positionsgrößen und Ordermengen zu optimieren und so die Rendite Ihres Portfolios zu maximieren. Wir zeigen Ihnen, wie Sie algorithmisch ein optimales Portfolio ermitteln und Ihr Portfolio an Ihre Renditeerwartungen oder Ihre Risikotoleranz anpassen können. In dieser Diskussion werden wir die SciPy-Bibliothek und die MQL5-Sprache verwenden, um ein optimales und diversifiziertes Portfolio mit allen uns zur Verfügung stehenden Daten zu erstellen.
Entwicklung eines Toolkit zur Analyse von Preisaktionen (Teil 5): Volatilitätsnavigator EA
Die Marktrichtung zu bestimmen kann einfach sein, aber zu wissen, wann man einsteigen sollte, kann eine Herausforderung sein. Im Rahmen der Serie „Entwicklung eines Toolkit zur Analyse von Preisaktionen" freue ich mich, ein weiteres Tool vorzustellen, das Einstiegspunkte, Take-Profit-Levels und Stop-Loss-Platzierungen bietet. Um dies zu erreichen, haben wir die Programmiersprache MQL5 verwendet. In diesem Artikel wollen wir die einzelnen Schritte näher erläutern.
DoEasy. Steuerung (Teil 13): Optimierung der Interaktion von WinForms-Objekten mit der Maus, Beginn der Entwicklung des WinForms-Objekts TabControl
In diesem Artikel werde ich den Umgang mit dem Aussehen von WinForms-Objekte nach dem Bewegen des Mauszeigers weg von dem Objekt, sowie die Entwicklung der TabControl WinForms-Objekt korrigieren und optimieren.
Erstellen eines Administrator-Panels für den Handel in MQL5 (Teil III): Erweiterung der installierten Klassen für die Theme-Verwaltung (II)
In dieser Diskussion werden wir die bestehende Dialogbibliothek sorgfältig erweitern, um die Logik der Verwaltung der Farbmodi (Theme) zu integrieren. Darüber hinaus werden wir Methoden für den Theme-Wechsel in die Klassen CDialog, CEdit und CButton integrieren, die in unserem Admin-Panel-Projekt verwendet werden. Lesen Sie weiter für weitere aufschlussreiche Perspektiven.
Formulierung eines dynamischen Multi-Pair EA (Teil 1): Währungskorrelation und inverse Korrelation
Der dynamische Multi-Pair Expert Advisor nutzt sowohl Korrelations- als auch inverse Korrelationsstrategien zur Optimierung der Handelsperformance. Durch die Analyse von Echtzeit-Marktdaten werden die Beziehungen zwischen Währungspaaren identifiziert und genutzt.
Von der Grundstufe bis zur Mittelstufe: Die Direktive Include
Im heutigen Artikel werden wir eine Kompilierungsdirektive besprechen, die in verschiedenen Codes, die in MQL5 zu finden sind, häufig verwendet wird. Obwohl diese Direktive hier nur oberflächlich erklärt wird, ist es wichtig, dass Sie sich mit ihrer Verwendung vertraut machen, da sie bald unverzichtbar sein wird, wenn Sie sich auf höheren Ebenen der Programmierung bewegen. Der hier dargestellte Inhalt ist ausschließlich für Bildungszwecke bestimmt. Die Anwendung sollte unter keinen Umständen zu einem anderen Zweck als zum Erlernen und Beherrschen der vorgestellten Konzepte verwendet werden.