Artikel mit Beispielen für das Programmieren in MQL5

icon

Unterschiedlichste Artikel mit Beispielen über die Erstellung von Indikatoren und Robotern für die Handelsplattform MetaTrader in MQL5 warten auf Sie. Jeder Artikel hat Quellcodes, die Sie im MetaEditor öffnen und selbst starten können.

Diese Artikel sind hilfsreich sowohl für Anfänger im automatischen Handel, als auch für fortgeschritte Händler mit Erfahrungen im Programmieren und Handel. Hier finden Sie nicht nur Beispiele, sondern auch neue Ideen.

Neuer Artikel
letzte | beste
preview
Indikatoren mit Hintergrund: Kanäle mit Transparenz

Indikatoren mit Hintergrund: Kanäle mit Transparenz

In diesem Artikel stelle ich eine Methode zur Erstellung von nutzerdefinierten Indikatoren vor, deren Zeichnungen mit der Klasse CCanvas aus der Standardbibliothek erstellt werden, und zeige die Eigenschaften von Charts für die Koordinatenkonvertierung. Ich werde speziell auf Indikatoren eingehen, die den Bereich zwischen zwei Linien mit Transparenz füllen müssen.
preview
Entwicklung einer DLL für eine Machbarkeitsstudie mit C++ Multi-Threading-Unterstützung für MetaTrader 5 unter Linux

Entwicklung einer DLL für eine Machbarkeitsstudie mit C++ Multi-Threading-Unterstützung für MetaTrader 5 unter Linux

Wir beginnen die Reise, um die Schritte und den Arbeitsablauf zu erforschen, wie man die Entwicklung für die MetaTrader 5 Plattform ausschließlich auf einem Linux-System basiert, in dem das Endprodukt nahtlos sowohl auf Windows- als auch auf Linux-Systemen funktioniert. Wir werden Wine und Mingw kennenlernen; beides sind die wichtigsten Werkzeuge für die plattformübergreifende Entwicklung. Vor allem Mingw für seine Threading-Implementierungen (POSIX und Win32), die wir bei der Auswahl der Software berücksichtigen müssen. Anschließend erstellen wir eine Proof-of-Concept-DLL und verwenden sie in MQL5-Code, um schließlich die Leistung der beiden Threading-Implementierungen zu vergleichen. Alles als eine Grundlage, die Sie selbst weiter ausbauen können. Nach der Lektüre dieses Artikels sollten Sie mit der Erstellung von MT-bezogenen Tools unter Linux vertraut sein.
preview
ONNX-Modelle in Klassen packen

ONNX-Modelle in Klassen packen

Die objektorientierte Programmierung ermöglicht die Erstellung eines kompakteren Codes, der leicht zu lesen und zu ändern ist. Hier sehen wir uns das Beispiel für drei ONNX-Modelle an.
Die Verwendung der Behauptung (assertions) bei der Entwicklung der Programme in MQL5
Die Verwendung der Behauptung (assertions) bei der Entwicklung der Programme in MQL5

Die Verwendung der Behauptung (assertions) bei der Entwicklung der Programme in MQL5

In diesem Artikel wird Behauptung (assertions) im Rahmen der Sprache MQL5 betrachtet. Es werden zwei Beispiele für die Realisierung des Behauptungsmechanismus geben, sowie allgemeine Empfehlungen für die Verwendung der Behauptungen.
Andere Klassen in der Bibliothek DoEasy (Teil 70): Erweiterte Funktionalität und automatisches Aktualisieren der Kollektion der Chartobjekte
Andere Klassen in der Bibliothek DoEasy (Teil 70): Erweiterte Funktionalität und automatisches Aktualisieren der Kollektion der Chartobjekte

Andere Klassen in der Bibliothek DoEasy (Teil 70): Erweiterte Funktionalität und automatisches Aktualisieren der Kollektion der Chartobjekte

In diesem Artikel werde ich die Funktionalität von Chartobjekten erweitern und die Navigation durch Charts, die Erstellung von Screenshots sowie das Speichern und Anwenden von Vorlagen auf Charts einrichten. Außerdem werde ich die automatische Aktualisierung der Kollektion von Chartobjekten, ihrer Fenster und der Indikatoren darin implementieren.
Andere Klassen in der Bibliothek DoEasy (Teil 69): Kollektionsklasse der Chart-Objekte
Andere Klassen in der Bibliothek DoEasy (Teil 69): Kollektionsklasse der Chart-Objekte

Andere Klassen in der Bibliothek DoEasy (Teil 69): Kollektionsklasse der Chart-Objekte

Mit diesem Artikel beginne ich die Entwicklung der Kollektionsklasse der Chart-Objekt. Die Klasse wird die Kollektionsliste der Chart-Objekte mit ihren Unterfenstern und Indikatoren speichern und die Möglichkeit bieten, mit beliebigen ausgewählten Charts und ihren Unterfenstern oder mit einer Liste von mehreren Charts gleichzeitig zu arbeiten.
Überlagerung und Interferenz bei Finanztiteln
Überlagerung und Interferenz bei Finanztiteln

Überlagerung und Interferenz bei Finanztiteln

Je mehr Faktoren das Verhalten eines Währungspaares beeinflussen, desto schwieriger ist es, dessen Verhalten zu bewerten und zukünftige Prognosen zu bilden. Wenn wir also die Komponenten eines Währungspaares, die Werte einer nationalen Währung, die sich mit der Zeit ändern, extrahieren könnten, könnten wir den möglichen Bewegungsraum einer nationalen Währung verglichen mit dem Währungspaar mit dieser Währung, sowie die Anzahl der Faktoren, die ihr Verhalten beeinflussen, stark eingrenzen. Als Ergebnis würden wir die Genauigkeit hinsichtlich des erwarteten Verhaltens sowie zukünftiger Prognosen erhöhen können. Wie können wir das machen?
preview
Zeitreihen in der Bibliothek DoEasy (Teil 52): Plattformübergreifende Eigenschaft für Standardindikatoren mit einem Puffer für mehrere Symbole und Perioden

Zeitreihen in der Bibliothek DoEasy (Teil 52): Plattformübergreifende Eigenschaft für Standardindikatoren mit einem Puffer für mehrere Symbole und Perioden

In diesem Artikel wird das Erstellen des Standardindikators Akkumulation/Distribution mehrere Symbole und Perioden behandelt. Wir verbessern die Bibliotheksklassen in Bezug auf die Indikatoren ein wenig, damit die für die veraltete Plattform MetaTrader 4 entwickelten Programme, die auf dieser Bibliothek basieren, beim Umstieg auf MetaTrader 5 normal funktionieren können.
preview
Hinzufügen von Trailing-Stop mit Parabolic SAR

Hinzufügen von Trailing-Stop mit Parabolic SAR

Wenn wir eine Handelsstrategie entwickeln, müssen wir verschiedene Optionen für einen schützenden Stopp testen. Hier bietet sich ein dynamisches Nachziehen des dem Kurs folgenden Stop-Loss-Levels an. Der beste Kandidat dafür ist der Parabolic SAR-Indikator. Es ist schwierig, sich etwas Einfacheres und visuell Klareres vorzustellen.
preview
Zeitreihen in der Bibliothek DoEasy (Teil 55): Die Kollektionsklasse der Indikatoren

Zeitreihen in der Bibliothek DoEasy (Teil 55): Die Kollektionsklasse der Indikatoren

Der Artikel setzt die Entwicklung von Objektklassen für die Indikatoren und deren Kollektionen fort. Für jedes Indikatorobjekt erstellen wir seine Beschreibung und die richtige Kollektionsklasse für die fehlerfreie Speicherung und das Abrufen von Indikatorobjekten aus der Kollektionsliste.
preview
Sentiment-Analyse und Deep Learning für den Handel mit EA und Backtesting mit Python

Sentiment-Analyse und Deep Learning für den Handel mit EA und Backtesting mit Python

In diesem Artikel werden wir die Sentiment-Analyse und ONNX-Modelle mit Python vorstellen, die in einem EA verwendet werden können. Ein Skript führt ein trainiertes ONNX-Modell aus TensorFlow für Deep Learning-Vorhersagen aus, während ein anderes Nachrichtenschlagzeilen abruft und die Stimmung mithilfe von KI quantifiziert.
Grafiken in der Bibliothek DoEasy (Teil 73): Das Formularobjekt eines grafischen Elements
Grafiken in der Bibliothek DoEasy (Teil 73): Das Formularobjekt eines grafischen Elements

Grafiken in der Bibliothek DoEasy (Teil 73): Das Formularobjekt eines grafischen Elements

Der Artikel erschließt einen neuen großen Bereich der Bibliothek für die Arbeit mit Grafiken. Im aktuellen Artikel werde ich das Mausstatusobjekt, das Basisobjekt aller grafischen Elemente und die Klasse des Formularobjekts der Bibliothek grafische Elemente erstellen.
Grafik in der Bibliothek DoEasy (Teil 77): Objektklasse der Schatten
Grafik in der Bibliothek DoEasy (Teil 77): Objektklasse der Schatten

Grafik in der Bibliothek DoEasy (Teil 77): Objektklasse der Schatten

In diesem Artikel werde ich eine separate Klasse für das Schattenobjekt erstellen, das ein Nachkomme des grafischen Elementobjekts ist, und die Möglichkeit hinzufügen, den Objekthintergrund mit einem Farbverlauf zu füllen.
preview
Mehrere Indikatoren in einem Chart (Teil 03): Entwicklung von Definitionen für die Nutzer

Mehrere Indikatoren in einem Chart (Teil 03): Entwicklung von Definitionen für die Nutzer

Heute werden wir zum ersten Mal die Funktionsweise des Indikatorensystems aktualisieren. Im vorangegangenen Artikel "Mehrere Indikatoren in einem Chart" haben wir uns mit dem grundlegenden Code befasst, der die Verwendung von mehr als einem Indikator in einem Chart-Subfenster ermöglicht. Was wir dort vorgestellt haben, war jedoch nur die Ausgangsbasis für ein viel größeres System.
Grafiken in der Bibliothek DoEasy (Teil 87): Grafische Kollektion - Verwaltung der Änderungen von Eigenschaften von Objekten auf allen offenen Charts
Grafiken in der Bibliothek DoEasy (Teil 87): Grafische Kollektion - Verwaltung der Änderungen von Eigenschaften von Objekten auf allen offenen Charts

Grafiken in der Bibliothek DoEasy (Teil 87): Grafische Kollektion - Verwaltung der Änderungen von Eigenschaften von Objekten auf allen offenen Charts

In diesem Artikel werde ich meine Arbeit an der Kontrolle von Standardereignissen für grafische Objekte fortsetzen und eine Funktionalität schaffen, die es den Nutzern ermöglicht, Änderungen der Eigenschaften von grafischen Objekten zu kontrollieren, die auf beliebigen im Terminal geöffneten Charts platziert sind.
Gruppierte Dateioperationen
Gruppierte Dateioperationen

Gruppierte Dateioperationen

Manchmal ist es erforderlich, identische Operationen mit einer Gruppe an Dateien durchzuführen. Wenn Sie eine Liste mit in einer Gruppe enthaltenen Dateien haben, dann ist es kein Problem. Wenn Sie die Liste jedoch selber erstellen müssen, kommt eine Frage auf: "Wie kann ich das machen?" Der Artikel schlägt vor, dies mit den in der kernel.23.dll enthaltenen Funktionen FindFirstFile() und FindNextFile() zu machen.
Grafiken in der Bibliothek DoEasy (Teil 86): Grafische Objektkollektion - Verwaltung der Eigenschaftsänderungen
Grafiken in der Bibliothek DoEasy (Teil 86): Grafische Objektkollektion - Verwaltung der Eigenschaftsänderungen

Grafiken in der Bibliothek DoEasy (Teil 86): Grafische Objektkollektion - Verwaltung der Eigenschaftsänderungen

In diesem Artikel geht es um die Kontrolle der Änderung von Eigenschaften sowie um das Entfernen und Umbenennen grafischer Objekte in der Bibliothek.
Preise in der DoEasy-Bibliothek (Teil 63): Markttiefe und deren abstrakte Anforderungsklasse
Preise in der DoEasy-Bibliothek (Teil 63): Markttiefe und deren abstrakte Anforderungsklasse

Preise in der DoEasy-Bibliothek (Teil 63): Markttiefe und deren abstrakte Anforderungsklasse

In diesem Artikel werde ich mit der Entwicklung der Funktionalität für die Arbeit mit der Markttiefe (Depth of Market, DOM) beginnen. Ich werde auch die Klasse des abstrakten Objekts der Markttiefe und seine Nachkommen erstellen.
preview
Algorithmen zur Optimierung mit Populationen: Der Algorithmus intelligenter Wassertropfen (IWD)

Algorithmen zur Optimierung mit Populationen: Der Algorithmus intelligenter Wassertropfen (IWD)

Der Artikel befasst sich mit einem interessanten, von der unbelebten Natur abgeleiteten Algorithmus - intelligente Wassertropfen (IWD), die den Prozess der Flussbettbildung simulieren. Die Ideen dieses Algorithmus ermöglichten es, den bisherigen Spitzenreiter der Bewertung - SDS - deutlich zu verbessern. Der neue Führende (modifizierter SDSm) befindet sich wie üblich im Anhang.
preview
Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 26): Der Zukunft entgegen (I)

Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 26): Der Zukunft entgegen (I)

Heute werden wir unser Auftragssystem auf die nächste Stufe bringen. Aber vorher müssen wir noch einige Probleme lösen. Jetzt haben wir einige Fragen, die sich darauf beziehen, wie wir arbeiten wollen und welche Dinge wir während des Handelstages tun.
preview
DoEasy. Steuerung (Teil 27): Arbeiten am WinForms Objekt der ProgressBar

DoEasy. Steuerung (Teil 27): Arbeiten am WinForms Objekt der ProgressBar

In diesem Artikel werde ich die Entwicklung des ProgressBar-Steuerelements fortsetzen. Insbesondere werde ich die Funktionen zur Verwaltung des Fortschrittsbalkens und der visuellen Effekte erstellen.
preview
DoEasy. Steuerung (Teil 21): SplitContainer-Steuerung. Paneel-Trennlinie

DoEasy. Steuerung (Teil 21): SplitContainer-Steuerung. Paneel-Trennlinie

In diesem Artikel werde ich die Klasse eines Hilfstrennlinie für das Paneelobjekt des Steuerelements des SplitContainers erstellen.
preview
DoEasy. Steuerung (Teil 25): Das WinForms-Objekt Tooltip

DoEasy. Steuerung (Teil 25): Das WinForms-Objekt Tooltip

In diesem Artikel werde ich mit der Entwicklung des Steuerelements Tooltip (Schnellinfo) sowie neuer grafischer Primitive für die Bibliothek beginnen. Natürlich hat nicht jedes Element eine Tooltip, aber jedes grafische Objekt kann ein solches besitzen.
Preise in der DoEasy-Bibliothek (Teil 60): Listen von Serien mit Symbol-Tickdaten
Preise in der DoEasy-Bibliothek (Teil 60): Listen von Serien mit Symbol-Tickdaten

Preise in der DoEasy-Bibliothek (Teil 60): Listen von Serien mit Symbol-Tickdaten

In diesem Artikel werde ich eine Liste zur Speicherung von Tickdaten eines einzelnen Symbols erstellen und deren Erstellung und Abruf der benötigten Daten in einem EA überprüfen. Tickdatenlisten, die für jedes verwendete Symbol individuell sind, werden weiterhin eine Kollektion von Tickdaten darstellen.
preview
MQL5 Kochbuch — Datenbank für makroökonomische Ereignisse

MQL5 Kochbuch — Datenbank für makroökonomische Ereignisse

Der Artikel behandelt die Möglichkeiten des Umgangs mit Datenbanken, die auf der SQLite-Engine basieren. Die Klasse CDatabase wurde aus Gründen der Bequemlichkeit und der effizienten Nutzung von OOP-Prinzipien entwickelt. Anschließend ist sie an der Erstellung und Verwaltung der Datenbank für makroökonomische Ereignisse beteiligt. Der Artikel enthält Beispiele für die Verwendung mehrerer Methoden der CDatabase-Klasse.
preview
Automatisierte Parameter-Optimierung für Handelsstrategien mit Python und MQL5

Automatisierte Parameter-Optimierung für Handelsstrategien mit Python und MQL5

Es gibt mehrere Arten von Algorithmen zur Selbstoptimierung von Handelsstrategien und Parametern. Diese Algorithmen werden zur automatischen Verbesserung von Handelsstrategien auf der Grundlage historischer und aktueller Marktdaten eingesetzt. In diesem Artikel werden wir uns eine davon mit Python und MQL5-Beispielen ansehen.
preview
Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 29): Die sprechende Plattform

Einen handelnden Expert Advisor von Grund auf neu entwickeln (Teil 29): Die sprechende Plattform

In diesem Artikel erfahren Sie, wie Sie die MetaTrader 5-Plattform zum Sprechen bringen. Wie wäre es, wenn wir den EA unterhaltsamer gestalten? Der Handel an den Finanzmärkten ist oft zu langweilig und eintönig, aber wir können diesen Job weniger anstrengend machen. Bitte beachten Sie, dass dieses Projekt für Menschen mit Suchtneigung gefährlich sein kann. Aber im Allgemeinen macht es die Dinge einfach weniger langweilig.
preview
Entwicklung eines Replay-Systems — Marktsimulation (Teil 05): Hinzufügen einer Vorschau

Entwicklung eines Replay-Systems — Marktsimulation (Teil 05): Hinzufügen einer Vorschau

Es ist uns gelungen, einen Weg zu finden, das Replay-System (Marktwiederholungssystem) auf realistische und zugängliche Weise umzusetzen. Lassen Sie uns nun unser Projekt fortsetzen und Daten hinzufügen, um das Wiedergabeverhalten zu verbessern.
preview
Strukturen in MQL5 und Methoden zum Drucken deren Daten

Strukturen in MQL5 und Methoden zum Drucken deren Daten

In diesem Artikel werden wir uns die Strukturen von MqlDateTime, MqlTick, MqlRates und MqlBookInfo ansehen sowie die Methoden zum Drucken von deren Daten. Um alle Felder einer Struktur auszudrucken, gibt es die Standardfunktion ArrayPrint(), die die im Array enthaltenen Daten mit dem Typ der behandelten Struktur in einem praktischen Tabellenformat anzeigt.
preview
Selbstoptimierende Expert Advisors mit MQL5 und Python erstellen

Selbstoptimierende Expert Advisors mit MQL5 und Python erstellen

In diesem Artikel werden wir erörtern, wie wir Expert Advisors erstellen können, die in der Lage sind, Handelsstrategien auf der Grundlage der vorherrschenden Marktbedingungen eigenständig auszuwählen und zu ändern. Wir werden etwas über Markov-Ketten lernen und wie sie algorithmischen Händler helfen können.
Grafik in der Bibliothek DoEasy (Teil 80): Die Objektklasse "Geometrischer Animationsrahmen"
Grafik in der Bibliothek DoEasy (Teil 80): Die Objektklasse "Geometrischer Animationsrahmen"

Grafik in der Bibliothek DoEasy (Teil 80): Die Objektklasse "Geometrischer Animationsrahmen"

In diesem Artikel werde ich den Code der Klassen aus den vorhergehenden Artikeln optimieren und die geometrische Animationsrahmen-Objektklasse erstellen, die es uns ermöglicht, regelmäßige Polygone mit einer bestimmten Anzahl von Scheitelpunkten zu zeichnen.
Zeitreihen in der Bibliothek DoEasy (Teil 59): Objekt zum Speichern der Daten eines Ticks
Zeitreihen in der Bibliothek DoEasy (Teil 59): Objekt zum Speichern der Daten eines Ticks

Zeitreihen in der Bibliothek DoEasy (Teil 59): Objekt zum Speichern der Daten eines Ticks

Ab diesem Artikel beginnen wir mit der Erstellung von Bibliotheksfunktionen für die Arbeit mit Preisdaten. Heute erstellen wir eine Objektklasse, die alle Preisdaten speichert, die mit einem weiteren Tick angekommen sind.
Zeitreihen in der Bibliothek DoEasy (Teil 44): Kollektionsklasse der Objekte von Indikatorpuffern
Zeitreihen in der Bibliothek DoEasy (Teil 44): Kollektionsklasse der Objekte von Indikatorpuffern

Zeitreihen in der Bibliothek DoEasy (Teil 44): Kollektionsklasse der Objekte von Indikatorpuffern

Der Artikel befasst sich mit der Erstellung einer Kollektionsklasse der Objekte von Indikatorpuffern. Ich werde die Fähigkeit testen, eine beliebige Anzahl von Puffern für Indikatoren zu erstellen und mit ihnen zu arbeiten (die maximale Anzahl von Indikatorpuffern, die in MQL erstellt werden können, beträgt 512).
preview
MQL5 Handels-Toolkit (Teil 1): Entwicklung einer EX5-Bibliothek zur Positionsverwaltung

MQL5 Handels-Toolkit (Teil 1): Entwicklung einer EX5-Bibliothek zur Positionsverwaltung

Lernen Sie, wie Sie ein Entwickler-Toolkit für die Verwaltung verschiedener Positionsoperationen mit MQL5 erstellen können. In diesem Artikel zeige ich Ihnen, wie Sie eine Funktionsbibliothek (ex5) erstellen können, die einfache bis fortgeschrittene Positionsverwaltungsoperationen durchführt, einschließlich der automatischen Behandlung und Meldung der verschiedenen Fehler, die bei der Bearbeitung von Positionsverwaltungsaufgaben mit MQL5 auftreten.
preview
DoEasy. Steuerung (Teil 4): Paneel-Steuerung, Parameter für Padding und Dock

DoEasy. Steuerung (Teil 4): Paneel-Steuerung, Parameter für Padding und Dock

In diesem Artikel werde ich die Handhabung der Parameter von Padding (interne Einzüge/Rand auf allen Seiten eines Elements) und Dock (die Art und Weise, wie sich ein Objekt in seinem Container befindet) implementieren.
preview
Verständnis von Programmierparadigmen (Teil 1): Ein verfahrenstechnischer Ansatz für die Entwicklung eines Price Action Expert Advisors

Verständnis von Programmierparadigmen (Teil 1): Ein verfahrenstechnischer Ansatz für die Entwicklung eines Price Action Expert Advisors

Lernen Sie die Programmierparadigmen und ihre Anwendung in MQL5-Code kennen. In diesem Artikel werden die Besonderheiten der prozeduralen Programmierung untersucht und anhand eines praktischen Beispiels in die Praxis umgesetzt. Sie lernen, wie Sie einen Price Action Expert Advisor mit dem EMA-Indikator und Kerzen-Kursdaten entwickeln. Außerdem führt der Artikel in das Paradigma der funktionalen Programmierung ein.
preview
Selbstoptimierende Expert Advisors in MQL5 erstellen

Selbstoptimierende Expert Advisors in MQL5 erstellen

Bauen wir Expert Advisor, die in die Zukunft blicken und sich an jeden Markt anpassen können.
preview
DoEasy. Steuerung (Teil 20): Das WinForms-Objekt SplitContainer

DoEasy. Steuerung (Teil 20): Das WinForms-Objekt SplitContainer

In diesem Artikel werde ich mit der Entwicklung des SplitContainer-Steuerelements aus dem MS Visual Studio-Toolkit beginnen. Diese Steuerelement besteht aus zwei Feldern, die durch eine vertikale oder horizontale bewegliche Trennwand getrennt sind.
Methode zur Fehlerbestimmung im Code durch Kommentieren
Methode zur Fehlerbestimmung im Code durch Kommentieren

Methode zur Fehlerbestimmung im Code durch Kommentieren

Der Artikel beschreibt eine Methode zur Suche nach Fehlern in dem MQL4 Code, die auf Kommentieren basiert. Die Methode erweist sich als nützlich im Fall von auftretenden Problemen während der Kompilierung, verusacht durch Fehler in einem ziemlich großen Code.