SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5
SQLite: Natives Arbeiten mit SQL-Datenbanken in MQL5
Die Entwicklung von Handelsstrategien ist mit dem Umgang mit großen Datenmengen verbunden. Jetzt können Sie mit Datenbanken mit SQL-Abfragen auf der Basis von SQLite direkt in MQL5 arbeiten. Ein wichtiges Merkmal dieser Engine ist, dass die gesamte Datenbank in einer einzigen Datei auf dem PC des Benutzers abgelegt wird.
MQL-Parsing mit Hilfe von MQL
MQL-Parsing mit Hilfe von MQL
Der Artikel beschreibt einen Präprozessor, einen Scanner und einen Parser, die beim Parsen der MQL-basierten Quellcodes verwendet werden sollten. Die MQL-Implementierung ist beigefügt.
Kontinuierliche Walk-Forward-Optimierung (Teil 1): Arbeiten mit Optimierungsberichten
Kontinuierliche Walk-Forward-Optimierung (Teil 1): Arbeiten mit Optimierungsberichten
Der erste Artikel beschäftigt sich mit der Erstellung eines Toolkits für die Arbeit mit Optimierungsberichten, für den Import aus dem Terminal sowie für die Filterung und Sortierung der erhaltenen Daten. MetaTrader 5 ermöglicht das Laden von Optimierungsergebnissen, unser Ziel ist es jedoch, dem Optimierungsbericht unsere eigenen Daten hinzuzufügen.
Wie man nutzerdefinierte MOEX-Symbole in MetaTrader 5 erstellt und testet
Wie man nutzerdefinierte MOEX-Symbole in MetaTrader 5 erstellt und testet
Der Artikel beschreibt die Erstellung eines nutzerdefinierten Symbols einer Börse mit der Sprache MQL5. Insbesondere wird die Verwendung von Börsenkursen von der beliebten Finam-Website in Betracht gezogen. Eine weitere in diesem Artikel betrachtete Option ist die Möglichkeit, mit einem beliebigen Format von Textdateien zu arbeiten, die bei der Erstellung des nutzerdefinierten Symbols verwendet werden. Dies ermöglicht die Arbeit mit beliebigen Finanzsymbolen und Datenquellen. Nachdem wir ein benutzerdefiniertes Symbol erstellt haben, können wir alle Funktionen des Strategy Tester des MetaTrader 5 nutzen, um Handelsalgorithmen für Börseninstrumente zu testen.
Optimierungsmanagement (Teil II): Erstellen der Schlüsselobjekte und der Add-on-Logik
Optimierungsmanagement (Teil II): Erstellen der Schlüsselobjekte und der Add-on-Logik
Dieser Artikel ist eine Fortsetzung der vorherigen Veröffentlichung über das Erstellen einer grafischen Oberfläche für das Optimierungsmanagement. Der Artikel berücksichtigt die Logik des Add-ons. Es wird ein Wrapper für das MetaTrader 5 Terminal erstellt, der es ermöglicht, das Add-on als verwalteten Prozess über C# auszuführen. Darüber hinaus wird in diesem Artikel der Betrieb mit Konfigurationsdateien und Setup-Dateien betrachtet. Die Anwendungslogik ist in zwei Teile gegliedert: Der erste Teil beschreibt die Methoden, die nach dem Drücken einer bestimmten Taste aufgerufen werden, während der zweite Teil den Start und die Verwaltung der Optimierung umfasst.
Optimierungsmanagement (Teil I): Erstellen einer GUI
Optimierungsmanagement (Teil I): Erstellen einer GUI
Dieser Artikel beschreibt den Prozess der Erstellung einer Erweiterung für das MetaTrader-Terminal. Die vorgestellte Lösung hilft, den Optimierungsprozess zu automatisieren, indem Optimierungen in anderen Terminals durchgeführt werden. Es werden noch einige weitere Artikel zu diesem Thema geschrieben. Die Erweiterung wurde unter Verwendung der Sprache C# und der Designmuster entwickelt, was zusätzlich die Fähigkeit demonstriert, die Terminalfunktionen durch die Entwicklung benutzerdefinierter Module zu erweitern, sowie die Fähigkeit, benutzerdefinierte grafische Benutzeroberflächen mit der Funktionsvielfalt einer bevorzugten Programmiersprache zu erstellen.
Beurteilung der Fähigkeit des Fraktalindex und des Hurst-Exponenten, finanzielle Zeitreihen vorherzusagen.
Beurteilung der Fähigkeit des Fraktalindex und des Hurst-Exponenten, finanzielle Zeitreihen vorherzusagen.
Studien, die sich auf die Suche nach dem fraktalen Verhalten von Finanzdaten beziehen, deuten darauf hin, dass hinter dem scheinbar chaotischen Verhalten von ökonomischen Zeitreihen verborgene stabile Mechanismen des kollektiven Verhaltens der Teilnehmer stehen. Diese Mechanismen können zur Entstehung einer Preisdynamik an der Börse führen, die spezifische Eigenschaften von Preisreihen definieren und beschreiben kann. Im Handel könnte man von den Indikatoren profitieren, die effizient und zuverlässig die in der Praxis relevanten fraktalen Parameter in Umfang und Zeitrahmen schätzen können.
Eine DLL für MQL5 in 10 Minuten (Teil II): Erstellen mit Visual Studio 201
Eine DLL für MQL5 in 10 Minuten (Teil II): Erstellen mit Visual Studio 201
Der ursprüngliche Basisartikel hat seine Relevanz nicht verloren. Daher, wenn Sie an diesem Thema interessiert sind, sollten Sie unbedingt den ersten Artikel lesen. Es ist viel Zeit seitdem vergangen, und Visual Studio 2017 verfügt mittlerweile über eine aktualisierte Oberfläche. Auch der MetaTrader 5 hat neue Funktionen erhalten. Der Artikel enthält eine Beschreibung der Phasen der DLL-Projektentwicklung sowie das Einrichten und Interagieren mit dem MetaTrader 5.
Die rechnerische Fähigkeiten von MATLAB 2018 im MetaTrader 5 nutzen
Die rechnerische Fähigkeiten von MATLAB 2018 im MetaTrader 5 nutzen
Nach dem Upgrade des MATLAB-Pakets im Jahr 2015 ist es notwendig, auf eine moderne Art der Erstellung von DLL-Bibliotheken umzustellen. Der Artikel veranschaulicht anhand eines exemplarischen prädiktiven Indikators die Besonderheiten der Verknüpfung von MetaTrader 5 und MATLAB mit modernen 64-Bit-Versionen der Plattformen, die heute genutzt werden. Mit der gesamten Verbindungssequenz von MATLAB können MQL5-Entwickler Anwendungen mit erweiterten Rechenfunktionen viel schneller erstellen und so "Fallstricke" vermeiden.
Integration von MetaTrader 5 und Python: Daten senden und empfangen
Integration von MetaTrader 5 und Python: Daten senden und empfangen
Eine umfassende Datenverarbeitung erfordert umfangreiche Werkzeuge und geht oft über den Sandkasten (Sandbox) einer einzigen Anwendung hinaus. Für die Verarbeitung und Analyse von Daten, Statistiken und maschinellem Lernen werden spezielle Programmiersprachen verwendet. Eine der führenden Programmiersprachen für die Datenverarbeitung ist Python. Der Artikel enthält eine Beschreibung, wie man MetaTrader 5 und Python über Sockets verbindet und wie man Kurse über die Terminal-API erhält.
Extrahieren von strukturierten Daten aus HTML-Seiten mit Hilfe von CSS-Selektoren
Extrahieren von strukturierten Daten aus HTML-Seiten mit Hilfe von CSS-Selektoren
Der Artikel beschreibt eine universelle Methode zur Analyse und Konvertierung von Daten aus HTML-Dokumenten auf Basis von CSS-Selektoren. Handelsberichte, Testerberichte, Ihren bevorzugten Wirtschaftskalender, öffentliche Signale, Kontoüberwachung und zusätzliche Online-Kursquellen werden direkt mit MQL verfügbar gemacht.
Verwenden von OpenCL, um Kerzenmuster zu testen
Verwenden von OpenCL, um Kerzenmuster zu testen
Der Artikel beschreibt den Algorithmus, um die Kerzenmuster von OpenCL für den Tester im Modus "1 Minute OHLC" zu implementieren. Wir werden auch die Geschwindigkeiten des integrierten Strategietesters, gestartet in schnellen und langsamen Modi, vergleichen.
950 Webseiten offerieren den Wirtschaftskalender von MetaQuotes
950 Webseiten offerieren den Wirtschaftskalender von MetaQuotes
Mit dem Kalender bieten Webseiten einen detaillierten Zeitplan der Veröffentlichung von 500 Indikatoren und Indizes der größten Volkswirtschaften der Welt. So erhalten Händler schnell die aktuellen Informationen über alle wichtigen Ereignisse mit Erklärungen und Grafiken, zusätzlich zu den wichtigsten Inhalten der jeweiligen Webseite.
Integration von MQL-basierten Expert Advisors und Datenbanken (SQL Server, .NET und C#)
Integration von MQL-basierten Expert Advisors und Datenbanken (SQL Server, .NET und C#)
Der Artikel beschreibt die Möglichkeit, wie ein MQL5-basierter Expert Advisors mit dem Datenbankserver Microsoft SQL Server arbeiten kann. Es wird der Import von Funktionen aus einer DLL-Datei verwendet. Die DLL wird mit der Microsoft.NET-Plattform in der Sprache C# erstellt. Die im Artikel verwendeten Methoden eignen sich, mit kleinen Anpassungen, auch für Experten, die in MQL4 geschrieben sind.
Tiefe Neuronale Netzwerke (Teil VII). Ensembles von Neuronalen Netzen: Stacking
Tiefe Neuronale Netzwerke (Teil VII). Ensembles von Neuronalen Netzen: Stacking
Wir erstellen weitere Ensembles. Diesmal wird das zuvor mittels Bagging geschaffene Ensemble durch einen trainierbaren Kombinator (Combiner) - ein tiefes neuronales Netzwerk - ergänzt. Ein neuronales Netz kombiniert die 7 besten Ensemble-Ergebnisse nach der Bereinigung (pruning). Der zweite nimmt alle 500 Ausgänge des Ensembles als Input, bereinigt sie und kombiniert sie neu. Die neuronalen Netze werden mit dem keras/TensorFlow-Paket für Python aufgebaut. Die Eigenschaften des Pakets werden kurz erläutert. Es werden Tests durchgeführt und die Klassifizierungsqualität der Ensembles mit Bagging und Stacking verglichen.
Tiefe Neuronale Netzwerke (Teil VI). Gruppen von Klassifikatoren von Neuronalen Netzen: Bagging
Tiefe Neuronale Netzwerke (Teil VI). Gruppen von Klassifikatoren von Neuronalen Netzen: Bagging
Der Artikel beschreibt die Methoden des Aufbaus und Trainings von Gruppen von Neuronalen Netzen mit einer Struktur für das Bagging, einer Methode, um Vorhersagen aus verschiedenen Regressions- oder Klassifikationsmodellen zu kombinieren. Es bestimmt auch die Besonderheiten der Hyperparameter-Optimierung für einzelne Neuronale Netzwerk-Klassifikatoren, aus denen sich das Ensemble zusammensetzt. Die Qualität des optimierten Neuronalen Netzes, das im vorherigen Artikel der Serie erhalten wurde, wird mit der Qualität des erzeugten Ensembles Neuronaler Netze verglichen. Möglichkeiten, die Qualität der Klassifizierung des Ensembles weiter zu verbessern, werden geprüft.
LifeHack für Händler: ForEach mit #define zubereiten
LifeHack für Händler: ForEach mit #define zubereiten
Eine Zwischenstufe für diejenigen, die immer noch in MQL4 schreiben und nicht auf MQL5 umsteigen können. Wir suchen weiter nach den Möglichkeiten, Codes im MQL4-Stil zu schreiben. Diesmal betrachten wir die Makrosubstitution des Präprozessors #define.
Tiefe neuronale Netzwerke (Teil V). Bayes'sche Optimierung von DNN-Hyperparametern
Tiefe neuronale Netzwerke (Teil V). Bayes'sche Optimierung von DNN-Hyperparametern
Der Artikel beschäftigt sich mit der Möglichkeit, die Bayes'sche Optimierung auf Hyperparameter von tiefen neuronalen Netzen anzuwenden, die durch verschiedene Trainingsvarianten gewonnen werden. Die Klassifikationsqualität eines DNN mit den optimalen Hyperparametern in verschiedenen Trainingsvarianten wird verglichen. Die Tiefe der Effektivität der optimalen DNN-Hyperparameter wurde in Vorwärtstests überprüft. Die möglichen Richtungen zur Verbesserung der Klassifizierungsqualität wurden festgelegt.
Geschwindigkeitsvergleich von sich selbst speichernden Indikatoren
Geschwindigkeitsvergleich von sich selbst speichernden Indikatoren
Der Artikel vergleicht den klassischen MQL5-Zugriff auf Indikatoren mit alternativen MQL4-Methoden. Mehrere Varianten des Zugriffs auf Indikatoren im MQL4-Stil werden berücksichtigt: mit und ohne Speicherung (caching) der Handles der Indikatoren. Die Handles auf die Indikatoren innerhalb des MQL5-Kerns werden ebenfalls analysiert.
Wie erstellt man ein grafisches Panel beliebiger Komplexität?
Wie erstellt man ein grafisches Panel beliebiger Komplexität?
Der Artikel beschreibt ausführlich, wie ein Panel auf der Basis der CAppDialog-Klasse erstellt wird und wie ihm Steuerelemente hinzufügt werden können. Sie liefert die Beschreibung der Panelstruktur und ein Schema, das die Vererbung von Objekten zeigt. Der Artikel zeigt auch, wie Ereignisse behandelt werden und wie sie an abhängige Steuerelemente übergeben werden. Weitere Beispiele zeigen, wie die Parameter des Panels wie Größe und Hintergrundfarbe bearbeitet werden können.
Erstellen eines eigenen Newsfeeds für MetaTrader 5
Erstellen eines eigenen Newsfeeds für MetaTrader 5
In diesem Artikel untersuchen wir die Möglichkeit, einen flexiblen Newsfeed zu erstellen, der mehr Optionen in Bezug auf die Art der Nachrichten und auch deren Quelle bietet. Der Artikel zeigt, wie eine Web-API in das MetaTrader 5 Terminal integriert werden kann.
Kontrollierte Optimierung: Simuliertes Abkühlen
Kontrollierte Optimierung: Simuliertes Abkühlen
Der Strategy Tester in der Handelsplattform MetaTrader 5 bietet nur zwei Optimierungsoptionen: Die vollständige Suche nach Parametern oder den genetischen Algorithmus. Dieser Artikel schlägt eine neue Methode zur Optimierung von Handelsstrategien vor — Simuliertes Abkühlen (simulated annealing). Dabei werden der Algorithmus der Methode, ihre Implementierung und die Integration in jeden Expert Advisor besprochen. Der entwickelte Algorithmus wird mit dem Moving Average EA getestet.
LifeHack für Händler: Fast-Food aus Indikatoren
LifeHack für Händler: Fast-Food aus Indikatoren
Wenn Sie gerade erst auf MQL5 umgestiegen sind, dann wird Ihnen dieser Artikel helfen. Erstens erfolgt der Zugriff auf die Indikatorendaten und -serien im üblichen MQL4-Stil. Zweitens ist diese ganze Einfachheit in MQL5 implementiert. Alle Funktionen sind so übersichtlich wie möglich und eignen sich perfekt für ein schrittweise Debugging.
Automatische Auswahl vielversprechender Signale
Automatische Auswahl vielversprechender Signale
Der Artikel beschäftigt sich mit der Analyse von Handelssignalen für MetaTrader 5 mit der automatischen Ausführung von Trades auf dem Konto des Abonnenten. Darüber hinaus geht es um die Entwicklung von Werkzeugen für die Suche nach vielversprechenden Handelssignalen direkt im Terminal.
R-Quadrat als Gütemaß der Saldenkurve einer Strategie
R-Quadrat als Gütemaß der Saldenkurve einer Strategie
Dieser Artikel beschreibt die Konstruktion des benutzerdefinierten Optimierungskriterium R². Anhand dieses Kriteriums kann die Qualität der Saldenkurve einer Strategie abgeschätzt und die bestgeeignete Strategie ausgewählt werden. Die Arbeit diskutiert die Grundsätze der Konstruktion und die statistischen Methoden, die in der Schätzung der Eigenschaften und Qualität dieser Metrik.
Verwendung von Indikatoren in MetaTrader 5 mit dem Machine Learning Framework ENCOG für die Prognostizierung von Zeitreihen
Verwendung von Indikatoren in MetaTrader 5 mit dem Machine Learning Framework ENCOG für die Prognostizierung von Zeitreihen
In diesem Beitrag wird die Verbindung von MetaTrader 5 mit ENCOG, einem erweiterten neuronalen Netzwerk und Machine Learning Framework, vorgestellt. Er enthält die Beschreibung und Implementierung eines einfachen neuronalen Netzwerkindikators auf Basis technischer Standardindikatoren und eines Expert Advisors auf Basis eines neuronalen Indikators. Alle Quellcodes, kompilierten Binärdateien, DLLs und Beispiele für eingelernte Netzwerke sind an diesen Beitrag angehängt.
OpenCL: Vom naiven zum aufschlussreicheren Programmieren
OpenCL: Vom naiven zum aufschlussreicheren Programmieren
Dieser Beitrag konzentriert sich auf bestimmte Optimierungsmöglichkeiten, die sich eröffnen, wenn die zugrunde liegende Software, auf der das OpenCL-Kernel ausgeführt wird, zumindest ein bisschen berücksichtigt wird. Die Zahlen, die wir hier erhalten, sind alles andere als Spitzenwerte, doch auch sie lassen schon darauf schließen, dass mithilfe der hier und jetzt verfügbaren Ressourcen (die OpenCL-API in der Form, in der sie von den Entwicklern des Terminals implementiert wurde, erlaubt nicht die Steuerung bestimmter Parameter, die für die Optimierung wichtig sind, insbesondere die Größe von Arbeitsgruppen) der Performance-Gewinn über die Ausführung des Host-Programms beträchtlich ist.
Offenlegen von C#-Code in MQL5 mithilfe nicht gemanagter Exporte
Offenlegen von C#-Code in MQL5 mithilfe nicht gemanagter Exporte
In diesem Beitrag stelle ich verschiedene Interaktionsmethoden zwischen MQL5-Code und gemanagtem C#-Code vor. Ich habe auch mehrere Beispiele dafür bereitgestellt, wie MQL5-Strukturen gegen C# angeordnet werden können und wie sich exportierte DLL-Funktionen in MQL5-Scripts aufrufen lassen. Ich bin überzeugt, dass die hier bereitgestellten Beispiele als Basis für zukünftige Forschungen zum Schreiben von DLLs in gemanagtem Code dienen können. Dieser Beitrag bereitet auch Wege für die Nutzung bereits in C# implementierter Bibliotheken in MetaTrader.
Bidirektionaler Handel und Absicherung von Positions in MetaTrader 5 mit Hilfe des HedgeTerminal Panels - Teil 1
Bidirektionaler Handel und Absicherung von Positions in MetaTrader 5 mit Hilfe des HedgeTerminal Panels - Teil 1
Dieser Beitrag beschreibt einen neuen Ansatz zur Absicherung von Positions und zieht diesbezüglich einen klaren Schlussstrich in den Diskussionen zwischen MetaTrader 4- und MetaTrader 5-Anwendern. Die Algorithmen, die derartige Absicherungen zuverlässig machen, werden in für Laien leicht verständlichen Begriffen beschrieben und anhand von einfachen Charts und Diagrammen veranschaulicht. Dieser Beitrag widmet sich dem neuen HedgeTerminal Panel, im Grunde ein voll funktionsfähiges Handelsterminal in MetaTrader 5. Mit Hilfe des HedgeTerminal und der von ihm zur Verfügung gestellten Visualisierung des Handels, können Positions so verwaltet werden, wie man es bereits aus MetaTrader 4 kennt.
Der MQL5-Assistent: Platzierung von Order, Stop-Losses und Take Profits auf berechneten Kursen. Erweiterung der Standard-Library
Der MQL5-Assistent: Platzierung von Order, Stop-Losses und Take Profits auf berechneten Kursen. Erweiterung der Standard-Library
Dieser Artikel beschreibt die MQL5 Standard Library-Erweiterung, mit der Expert Advisors erzeugt und Order sowie Stop Losses und Take Profits mittels des MQL5-Assistenten nach Kursen, die von den mit aufgenommenen Modulen empfangen werden, platziert werden können. Dieser Ansatz bedeutet keinerlei zusätzliche Beschränkungen hinsichtlich der Menge an Modulen und führt auch zu keinerlei Konflikten bei ihrer gemeinsamen Arbeit.
Visualisierung! Eine grafische MQL5 Bibliothek ähnlich 'plot' der Sprache R
Visualisierung! Eine grafische MQL5 Bibliothek ähnlich 'plot' der Sprache R
Beim Studium der Handelslogik hat die visuelle Darstellung durch Grafiken eine großer Bedeutung. Eine Reihe von Programmiersprachen, die in der wissenschaftlichen Gemeinschaft weit verbreitet sind (wie R und Python), verfügen über eine spezielle "plot"-Funktion für die Visualisierung von Daten. Sie ermöglicht das Zeichnen von Linien, Gruppen von Punkten und Histogramme, um Muster darzustellen. In MQL5 können wir das Gleiche mit der Klasse CGraphics erreichen.
Erstellen einer Anzeigetafel unter Verwendung der Klassen aus der Standardbibliothek und Google Chart API
Erstellen einer Anzeigetafel unter Verwendung der Klassen aus der Standardbibliothek und Google Chart API
Die Programmiersprache MQL5 ist in erster Linie auf die Schaffung automatisierter Handelssysteme und komplexer Hilfsmittel für technische Aktienanalysen angelegt. Darüber hinaus ermöglicht es uns jedoch auch die Entwicklung interessanter Informationssysteme zur Verfolgung von Marktlagen und verschafft uns eine Rückkopplung mit dem Händler. Dieser Beitrag beschreibt die Bestandteile der Standardbibliothek von MQL5 und liefert Beispiele für ihre praktische Verwendung, um diese Ziele zu erreichen. Außerdem liefert er ein Beispiel für die Verwendung von Google Chart API zur Erstellung von Diagrammen.
Technische Indikatoren und digitale Filter
Technische Indikatoren und digitale Filter
In diesem Beitrag werden technische Indikatoren als digitale Filter behandelt. Es werden die Arbeitsprinzipien und die grundlegenden Eigenschaften von digitalen Filtern erklärt. Außerdem werden einige praktische Möglichkeiten, das Filter-Kernel im MetaTrader 5 Terminal zu empfangen und die Integration des vorgefertigten Spektrumanalysators aus dem Beitrag "Erstellen eines Spektrumanalysators" berücksichtigt. Die Impuls- und Spektrumeigenschaften typischer digitaler Filter werden als Beispiele verwendet.
Automatenbasierte Programmierung als neue Herangehensweise an die Erstellung automatisierter Handelssysteme
Automatenbasierte Programmierung als neue Herangehensweise an die Erstellung automatisierter Handelssysteme
Dieser Beitrag führt uns in eine ganz neue Richtung bei der Entwicklung von EAs, Indikatoren und Scripts in MQL4 und MQL5. In Zukunft wird dieses Programmierungsparadigma nach und nach zum Standard für alle Händler bei der Umsetzung von EAs. Mit dem automatenbasierten Programmierungsparadigma kommen die Entwickler von MQL5 und MetaTrader 5 der Entwicklung einer neuen Sprache – MQL6 – und einer neuen Plattform – MetaTrader 6 – sehr nahe.
Schutz von MQL5-Programmen: Passwörter, Schlüssel, Zeitbegrenzung, Berechtigungsfernabfrage
Schutz von MQL5-Programmen: Passwörter, Schlüssel, Zeitbegrenzung, Berechtigungsfernabfrage
Die Mehrzahl der Entwickler benötigt Schutz für ihren Programmcode. In diesem Beitrag werden einige unterschiedliche Möglichkeiten zum Schutz von in MQL5 geschriebenen Programmen vorgestellt, so etwa zur Ausstattung von MQL5-Skripten, automatischen Handelssystemen und Indikatoren mit Zugriffskontrollverfahren. Dazu zählen Passwortschutz, Schlüsselgeneratoren, Zugriffskonten, Zeitbegrenzungsprüfungen sowie der Schutz mittels MQL5-RPC-Aufrufen aus der Ferne.