

Erweiterung der MQL5-Standardbibliothek und Wiederverwendung von Code
Die MQL5-Standardbibliothek erleichtert Ihnen das Leben als Entwickler. Dennoch geht sie nicht auf die Bedürfnisse aller Entwickler auf der Welt ein. Wenn Sie also das Gefühl haben, dass Sie mehr benutzerdefinierte Funktionen brauchen, können Sie einen Schritt weitergehen und die Bibliothek erweitern. Dieser Beitrag begleitet Sie durch die Integration des technischen Indikators ZigZag von MetaQuotes in die Standardbibliothek. Wir lassen uns durch die Designphilosophie von MetaQuotes inspirieren, um unser Ziel zu erreichen.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XI). Kompatibilität mit MQL4 - Ereignisse des Schließens von Positionen
Wir setzen die Entwicklung einer großen plattformübergreifenden Bibliothek fort, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im zehnten Teil haben wir unsere Arbeit an der Bibliothekskompatibilität mit MQL4 fortgesetzt und die Ereignisse der Eröffnung von Positionen und der Aktivierung von offenen Orders definiert. In diesem Artikel werden wir die Ereignisse des Schließens von Positionen definieren und die nicht verwendeten Auftragseigenschaften beseitigen.


Optimierung. Einige simple Ideen
Der Optimierungsprozess kann erhebliche Ressourcen Ihres Computers oder sogar die Testagenten des MQL5 Cloud Network erfordern. Dieser Beitrag liefert einige simple Ideen, die ich zur Erleichterung der Arbeit und zur Verbesserung des Strategietesters von MetaTrader 5 nutze. Auf diese Ideen brachten mich die Dokumentation, das Forum und diverse Beiträge.


Graphisches Interface XI: Gezeichnete Steuerelemente (build 14.2)
In der neuen Version der Bibliothek werden alle Steuerelemente als eigenständige Grafikobjekte des Typs OBJ_BITMAP_LABEL gezeichnet. Der Code wird auch weiterhin optimiert: die Änderungen in den Kernklassen werden beschrieben.


Grafische Interfaces VI: Die Slider und Dual-Slider Controls (Kapitel 2)
In dem vorherigen Artikel haben wir unsere Bibliothek um die vier sehr häufig verwendeten Controls: Checkbox, Edit, Edit mit Checkbox und Check-Combobox erweitert. Das zweite Kapitel des sechsten Teils widmet sich den Slider (Schieberegler) und Dual-Slider Controls.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil II). Erhebung (Collection) historischer Aufträge und Deals
Im ersten Teil begannen wir mit dem Erstellen einer großen plattformübergreifenden Bibliothek, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Wir haben das abstrakte Objekt COrder angelegt, das als Basisobjekt für die Speicherung von Daten zu historischen Aufträgen und Deals sowie zu Marktorders und Positionen dient. Jetzt werden wir alle notwendigen Objekte entwickeln, um die Daten der Kontenhistorie in "Collections" (Sammlungen bzw. Listen) zu speichern.

Neuronale Netze leicht gemacht (Teil 6): Experimentieren mit der Lernrate des neuronalen Netzwerks
Wir haben zuvor verschiedene Arten von neuronalen Netzen zusammen mit ihren Implementierungen betrachtet. In allen Fällen wurden die neuronalen Netze mit der Gradientenverfahren trainiert, für die wir eine Lernrate wählen müssen. In diesem Artikel möchte ich anhand von Beispielen zeigen, wie wichtig eine richtig gewählte Rate ist und welchen Einfluss sie auf das Training des neuronalen Netzes hat.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XV): Kollektion von Symbolobjekten
In diesem Artikel werden wir die Erstellung einer Symbolsammlung auf der Grundlage des im vorherigen Artikel entwickelten abstrakten Symbolobjekts in Betracht ziehen. Die abstrakten, abgeleiteten Symbole sollen Symboldaten verdeutlichen und die Verfügbarkeit der grundlegenden Eigenschaften der Symbolobjekte in einem Programm definieren. Solche Symbolobjekte sind durch ihre Zugehörigkeit zu Gruppen zu unterscheiden.


Grafische Interfaces V: Die vertikale und horizontale Scrollbar (Kapitel 1)
Wir besprechen weiterhin die Entwicklung der Bibliothek für die Erzeugung von grafischen Interfaces innerhalb der Metatrader-Umgebung. In dem ersten Artikel des fünften Teils dieser Serie, werden wir Klassen für die Erzeugung von vertikalen und horizontalen Scrollbars besprechen.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVIII): Schließen, Entfernen und Ändern von schwebenden Handelsanfragen
Dies ist der dritte Artikel über das Konzept der schwebenden Anfragen. Wir werden die Tests von schwebenden Anfragen abschließen, indem wir die Methoden für das Schließen von Positionen, die Entfernung von schwebenden Anfragen und die Änderung der Parameter von Positionen und den Parametern von Pending-Orders erstellen.


Grafische Interfaces I: Testen der Bibliothek in unterschiedlichen Programmen und in dem MetaTrader 4 Terminal (Kapitel 5)
In dem vorherigen Kapitel des ersten Teils der Serie über grafische Interfaces, haben wir die Formularklasse mit Methoden für das Verwalten der Form über das Anklicken von Controls ergänzt. In diesem Teil wollen wir unsere Arbeit in verschiedenen Typen von MQL Programmen, wie zum Beispiel Indikatoren und Skripten, testen. Da unsere Bibliothek darauf ausgelegt ist, plattformübergreifend zu funktionieren, werden wir Sie in allen Metatrader-Plattformen testen, so wie zum Beispiel im MetaTrader 4.


Grafische Interfaces VII: Das Tab-Control (Kapitel 2)
Das erste Kapitel des siebten Teils befasste sich mit drei Klassen von Controls für die Erzeugung der folgenden Tabellen: Text-Label-Tabelle (CLabelsTable), Edit-box-Tabelle (CTable) und die gerenderte Tabelle (CCanvasTable). In diesem Artikel(Kapitel 2) werden wir das Tabs-Control besprechen.


Erzeugung eines Indikators mit graphischen Kontrolloptionen
All diejenigen, die sich mit Stimmungen auf dem Markt auskennen, kennen den MACD Indikator (seiner voller Name lautet Gleitender Durchschnitt Konvergenz/Divergenz) -das leistungsstarke Tool zur Analyse von Kursbewegungen, das von Händlers seit dem ersten Auftauchen von Computer-gestützten Analysemethoden verwendet wird. Dieser Beitrag beschäftigt sich mit möglichen Veränderungen des MACD und ihrer Implementierung in einen Indikator mit der Möglichkeit, zwischen den Veränderungen graphisch hin- und her zu wechseln.

Multilayer-Perzeptron und Backpropagation-Algorithmus (Teil II): Implementierung in Python und Integration mit MQL5
Für die Entwicklung von Integrationen mit MQL steht ein Python-Paket zur Verfügung, das eine Fülle von Möglichkeiten wie Datenexploration, Erstellung und Nutzung von maschinellen Lernmodellen ermöglicht. Die eingebaute Python-Integration in MQL5 ermöglicht die Erstellung verschiedener Lösungen, von der einfachen linearen Regression bis hin zu Deep-Learning-Modellen. Werfen wir einen Blick darauf, wie man eine Entwicklungsumgebung einrichtet und vorbereitet und wie man einige der Bibliotheken für maschinelles Lernen verwendet.


Grafische Interfaces X: Algorithmus für den Zeilenumbruch im mehrzeiligen Textfeld (build 12)
Wir fahren fort mit der Entwicklung eines mehrzeiligen Textfeldes. Diesmal ist es unsere Aufgabe einen Algorithmus für den Fall, dass der Text die Breite des Textfeldes überschreitet, zu entwickeln oder, umgekehrt, einen Zeilenumbruch zu entfernen, wenn die möglich ist.


Automatisch generierte Dokumentation für den MQL5-Code
Die meisten Personen, die Codes in Java anlegen, kennen bestimmt die automatisch generierte Dokumentation, die zusammen mit JavaDocs erstellt werden kann. Hierbei geht es um die Ergänzung des Codes durch Anmerkungen auf semi-strukturierte Weise, die dann in eine leicht zu navigierende Hilfe-Datei extrahiert werden können. In der C++ Welt gibt es ebenfalls einige automatische Dokumentations-Generatoren, von denen SandCastle und Doxygen von Microsoft die beiden Spitzenreiter sind. Dieser Beitrag beschreibt die Verwendung von Doxygen zur Erzeugung einer HTML Hilfe-Datei auf Basis strukturierter Anmerkungen im MQL5-Code. Der Versuch hat prima funktioniert und ich glaube, dass die Hilfs-Dokumentation, die Doxygen aus dem MQL5-Code liefert ganz erheblichen Mehrwert mit sich bringt.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil X): Kompatibilität mit MQL4 - Ereignisse der Positionseröffnung und der Aktivierung von Pending-Orders
In den vorherigen Artikeln haben wir begonnen, eine große plattformübergreifende Bibliothek zu erstellen, die die Entwicklung von Programmen für MetaTrader 5 und MetaTrader 4 Plattformen vereinfacht. Im neunten Teil haben wir begonnen, die Bibliotheksklassen für die Arbeit mit MQL4 zu verbessern. Hier werden wir die Bibliothek weiter verbessern, um ihre volle Kompatibilität mit MQL4 zu gewährleisten.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXVI): Arbeiten mit schwebenden Handelsanfragen - erste Implementation (Positionseröffnung)
In diesem Artikel werden wir einige Daten im Wert der Magicnummer der Aufträge und Positionen speichern und mit der Umsetzung der schwebenden Anträge beginnen. Um das Konzept zu überprüfen, erstellen wir die erste Testanforderung zur Eröffnung von Marktpositionen, wenn ein Serverfehler auftritt, der ein Warten und das Senden einer wiederholten Anfrage erfordert.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXX): Schwebende Handelsanfragen - die Verwaltung der Anfrageobjekte
Im vorigen Artikel haben wir die Klassen der schwebenden Anfrageobjekte erstellt, die dem allgemeinen Konzept der Bibliotheksobjekte entsprechen. Dieses Mal werden wir uns mit der Klasse befassen, die die Verwaltung von schwebenden Anfrageobjekten ermöglicht.


Der universell Oszillator mit dem graphischen Interface
Im Artikel wird die Erstellung des universellen Indikators aufgrund aller Oszillators des Terminalen mit dem eigenen graphischen Interface beschrieben. Es ermöglicht schnell und bequem die Parameter jedes separaten Oszillators aus dem Chart-Fenster zu wechseln (und ohne Öffnung des Fensters der Eigenschaften), ihre Messwerte zu vergleichen und für sich die optimale Variante für eine konkrete Aufgabe zu wählen.

Wie man jede Art von Trailing-Stop entwickelt und mit einem EA verbindet
In diesem Artikel werden wir uns Klassen für die bequeme Erstellung verschiedener Trailing-Stops ansehen und lernen, wie man sie mit einem beliebigen EA verbindet.


Benutzerdefinierte grafische Bedienelemente. Teil 3. Formen
Dies ist der letzte der drei Beiträge, die sich grafischen Bedienelementen widmen. Er behandelt die Erstellung der Hauptkomponente der grafischen Oberfläche – der Form – und ihre Verwendung in Kombination mit anderen Bedienelementen. Zusätzlich zu den Formklassen wurden die Klassen CFrame, CButton und CLabel der Bibliothek von Bedienelementen hinzugefügt.


Die Verwendung von MetaTrader5 als Signalgeber für MetaTrader4
Analyse und Beispiele, wie eine Handelsanalyse auf der Plattform MetaTrader5 gemacht, aber von MetaTrader4 ausgeführt wird. In diesem Artikel wird besprochen, wie man einen einfachen Signalgeber in MetaTrader5 entwirft und mehrere Clients verbindet, auch wenn man MetaTrader4 laufen lässt. Sie werden auch herausfinden, wie Sie den Teilnehmern der Automated Trading Championship mit Ihrem realen MetaTrader4-Account folgen können.


Grafische Interfaces X: Updates für die Easy And Fast Bibliothek (Build 3)
In diesem Artikel wird die nächste Version der Easy And Fast-Bibliothek (Version 3) vorgestellt. Es wurden Fehler behoben und neue Features hinzugefügt. Mehr Details dazu finden Sie in dem Artikel.


Statistische Schätzungen
Die Schätzung der statistischen Parameter einer Sequenz ist sehr wichtig, weil die meisten mathematischen Modelle und Methoden auf unterschiedlichen Annahmen basieren, beispielsweise dem Normalverteilungsgesetz oder dem Streuungswert oder anderen Parametern. Beim Analysieren und Prognostizieren von Zeitreihen brauchen wir deshalb ein einfaches und bequemes Werkzeug, das es uns ermöglicht, die wichtigsten statistischen Parameter schnell und deutlich zu schätzen. Dieser Beitrag beschreibt kurz die einfachsten statistischen Parameter einer zufälligen Sequenz und mehrere Methoden für die visuelle Analyse. Er liefert die Umsetzung dieser Methoden in MQL5 und die Methoden der Visualisierung des Ergebnisses der Berechnung mithilfe der Anwendung Gnuplot.

Kontinuierliche Walk-Forward-Optimierung (Teil 3): Eine Roboters für Autoadaptierung anpassen
Der dritte Teil dient als Brücke zwischen den beiden vorhergehenden Teilen: Er beschreibt den Mechanismus der Interaktion mit der DLL, der im ersten Artikel besprochen wurde, und die Objekte zum Laden von Berichten, die im zweiten Artikel beschrieben wurden. Wir werden den Prozess der Wrapper-Erstellung für eine Klasse analysieren, die aus der DLL importiert wird und die eine XML-Datei mit der Handelshistorie bildet. Wir werden auch eine Methode für die Interaktion mit diesem Wrapper in Betracht ziehen.


Wie erstelle ich MetaTrader 5-Angebote für andere Applikationen
Dieser Artikel widmet sich Beispielen, die u.a. folgende Dinge veranschaulichen sollen: Verzeichnisse anlegen, Daten kopieren und ablegen, via Market Watch oder mittels der allgemeinen Liste mit Symbolen hantieren, mit Fehlern umgehen, usw. All diese Elemente können letztendlich mit einem Skript erfasst werden, das Daten in einem nutzerfreundlichen Format ablegt.


Die Verwendung von Layout und Containern für GUI Controls: Die CGrid Klasse
Dieser Artikel präsentiert eine alternative Methode für die Erzeugung eines GUI, basierend auf Layouts und Containern und der Verwendung eines Layout-Managers — die CGrid Klasse. Die CGrid Klasse ist ein externes Control, welches wie ein Container für andere Container und Controls agiert und ein Grid-Layout verwendet.


Test-Performance der Berechnung von gleitenden Mittelwerten in MQL5
Seit der Erstellung des ersten Moving-Average-Indikators ist eine Vielzahl von Indikatoren erschienen. Viele von ihnen nutzen ähnliche Glättungsmethoden, doch die Glättung der unterschiedlichen Algorithmen von gleitenden Mittelwerten wurde nie eingehend studiert. In diesem Beitrag betrachten wir Möglichkeiten zur Nutzung der gleitenden Mittelwerte in MQL5 und vergleichen ihre Performance.


Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Bildlaufleiste
Wir setzen das Studium der Steuerelemente fort und kommen diesmal zur Bildlaufleiste, dem Scrollbar. Genauso wie schon in dem vorhergehenden Beitrag „Das MQL5-Kochbuch: Steuerelemente des Indikatorunterfensters - Die Schaltflächen“ arbeiten wir in dem Unterfenster für den Indikator. Den genannten Beitrag sollte man gelesen haben, da in ihm die Arbeit mit Ereignissen in der Funktion OnChartEvent() ausführlich dargelegt wird, während diese hier nur oberflächlich gestreift wird. Als Beispiel wird in diesem Beitrag eine senkrechte Bildlaufleiste für eine lange Aufstellung aller mit den Möglichkeiten der Programmiersprache MQL5 zu beziehenden Kenngrößen eines Finanzinstrumentes angelegt.


Graphische Interfaces III: Gruppen von einfachen und multifunktionalen Buttons (Kapitel 2)
In dem ersten Kapitel dieser Serie ging es um einfache und multifunktionelle Buttons. Der zweite Artikel handelt über Gruppen von interagierenden Buttons, mit denen der Programmierer Elemente erzeugen kann, bei der der Anwender ein Element aus der Gruppe auswählen kann.


Berechnung wesentlicher Merkmale von Indikator-Emissionen
Indikator-Emissionen sind ein eher selten untersuchter Bereich der Markterforschung. Dies liegt hauptsächlich an ihrer schwierigen Analyse aufgrund der Verarbeitung sehr umfangreicher Arrays von zeitlich variablen Daten. Die existierende grafische Analyse ist zu Ressourcen-intensiv und hat demzufolge dazu geführt, dass ein sparsamer Algorithmus entwickelt wurde, der mit Zeitreihen von Emissionen arbeitet. Dieser Beitrag zeigt, wie die visuelle Analyse (intuitives Bild) durch das Studium wesentlicher Merkmale von Emissionen ersetzt werden kann. Dies kann sowohl für Händler als auch Entwickler von automatischen Handelssystemen interessant sein.


Das MQL5-Kochbuch: Entwicklung eines Indikators mit mehreren Symbolen für die Analyse von Preisunterschieden
In diesem Beitrag betrachten wir die Entwicklung eines Indikators mit mehreren Symbolen für die Analyse von Preisunterschieden in einem bestimmten Zeitraum. Die wichtigsten Themen wurden bereits im vorhergehenden Beitrag zur Programmierung mehrwährungsfähiger Indikatoren besprochen, "Das MQL5-Kochbuch: Entwicklung eines Indikators für die Volatilität mehrerer Symbole in MQL5". Diesmal gehen wir also nur auf jene neuen Features und Funktionen ein, an denen wesentliche Änderungen vorgenommen wurden. Wenn Sie ein Neuling in der Programmierung von mehrwährungsfähigen Indikatoren sind, empfehle ich Ihnen, zuerst den vorherigen Beitrag zu lesen.


Selbst-organisierende Feature Maps (Kohonen Maps) - Wiederaufgreifen des Themas
Dieser Artikel beschreibt Techniken für die Arbeit mit Kohonen-Maps. Das Thema wird sowohl für Marktforscher mit Grundkenntnisse der Programmierung in MQL4 und MQL5 als auch erfahrene Programmierer, die Schwierigkeiten mit der Verbindung von Kohonen-Maps mit ihren Projekten haben, von Interesse sein.

Kontinuierliche Rolloptimierung (Teil 2): Mechanismus zur Erstellung eines Optimierungsberichts für einen beliebigen Roboter
Der erste Artikel innerhalb der rollenden Optimierungsreihe beschrieb die Erstellung einer DLL, die in unserem Autooptimierer verwendet werden soll. Diese Fortsetzung ist vollständig der Sprache MQL5 gewidmet.

Ein manuelles Chart- und Handelswerkzeug (Teil III). Optimierungen und neue Werkzeuge
In diesem Artikel werden wir die Idee des Zeichnens von grafischen Objekten auf Charts mit Hilfe von Tastenkombinationen weiterentwickeln. Der Bibliothek wurden neue Werkzeuge hinzugefügt, darunter eine gerade Linie, die durch beliebige Scheitelpunkte gezeichnet wird, und eine Reihe von Rechtecken, die die Auswertung der Umkehrzeit und des Levels ermöglichen. Außerdem zeigt der Artikel die Möglichkeit, den Code zu optimieren, um die Leistung zu verbessern. Das Implementierungsbeispiel wurde umgeschrieben, sodass Shortcuts neben anderen Handelsprogrammen verwendet werden können. Erforderliche Code-Kenntnisse: etwas höher als die eines Anfängers.


Grafische Interfaces II: Die Trennlinien und Context-Menüelemente (Kapitel 2)
In diesem Artikel erzeugen wir das Trendlinien-Element Es kann nicht nur als unabhängiges Interface-Element verwendet werden, sondern auch als ein Teil von vielen anderen Elementen. Anschließend haben wir alles, was für die Entwicklung der Kontextmenü Klasse benötigt wird. Diese Klasse werden wir in diesem Artikel im Detail besprechen. Zudem werden wir alle notwendigen Ergänzungen dieser Klasse hinzufügen, die für das Abspeichern von Pointern aller Elemente des grafischen Interfaces dieser Anwendung benötigt werden.


Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXII): Handelsklassen - Basisklasse des Handels, Verifikation der Einschränkungen
In diesem Artikel beginnen wir mit der Entwicklung der Bibliothek der Basisklasse des Handels und fügen die erste Überprüfung der Berechtigungen zur Durchführung von Handelsoperationen der ersten Version hinzu. Außerdem werden wir die Funktionen und Inhalte der Basishandelsklasse leicht erweitern.


Grafische Interfaces X: Das Standard Chart-Steuerelement (Build 4)
Diesmal betrachten wir das Standard Chart-Steuerelement. Dieses erlaubt es uns, eine ganze Serie von Unter-Charts zu erzeugen, mit der Möglichkeit, diese beim Scrollen horizontal zu synchronisieren. Darüber hinaus werden wir weiterhin den Bibliothekscode für eine Reduzierung der CPU-Last optimieren.


Vergleich von MQL5 und QLUA - warum sind Transaktionen in MQL5 bis zu 28 Mal schneller?
Viele Trader machen sich keine Gedanken darüber, wie schnell ihre Order die Börse erreicht, wie schnell sie da ausgeführt wird und wie viel Zeit das Terminal braucht, um das Ergebnis zu erhalten. Wir uns vorgenommen, die Geschwindigkeit der Ausführung von Transaktionen zu vergleichen, denn noch keiner hat vor uns solche Messungen mithilfe von MQL5- und QLUA-Programmen durchgeführt.