Die Handelssignale mehrerer Währungen überwachen (Teil 1): Entwicklung der Anwendungsstruktur

8 April 2020, 17:49
Alexander Fedosov
0
514

Inhaltsverzeichnis

Einführung

Im Zuge der Weiterentwicklung der Plattform MetaTrader 5 entstehen immer mehr Möglichkeiten und neue Werkzeuge für die Arbeit mit Devisenmärkten, Börsen usw. Einer der sich aktiv entwickelnden Aspekte ist der Algo-Handel: neu geschaffene automatisierte Handelssysteme setzen verschiedene anspruchsvolle Handelsideen präzise um. Dennoch bevorzugt ein Teil der Marktteilnehmer nach wie vor den manuellen Handel. Sie schaffen Handelssysteme auf der Grundlage von Signalen, die bestimmten Regeln und Algorithmen folgen und in denen die endgültige Entscheidung über den Markteintritt von Menschen getroffen wird. Dieser Ansatz hat einen Nachteil gegenüber einem automatisierten Handelssystem: Selbst bei streng und klar definierten Regeln gibt es einen Faktor der menschlichen Subjektivität. Dennoch zeigen viele manuelle Handelssysteme positive Ergebnisse.

Selbst beim manuellen Handel folgt der Händler einem bestimmten Operationsalgorithmus und einer Abfolge von Aktionen, die sich als fünf Hauptaufgaben darstellen lassen:

  • Definieren eines Handelssignals.
  • Definition der Markteintrittsregeln und der Eintrittsart.
  • Offene Positionen verwalten.
  • Definieren von Marktausstiegssignalen.
  • Definieren von Marktaustrittsregeln.

Beim manuellen Handel impliziert jede dieser Aufgaben eine Interaktion des Händlers sowohl mit dem Terminal (Eröffnen, Schließen und Verwalten von Positionen) als auch mit dem Handelssystem (Auffinden von Signalen auf den relevanten Märkten mit bestimmten technischen Mitteln). All diese Aktionen können viel Zeit in Anspruch nehmen und erfordern vom Händler außerdem Aufmerksamkeit, Konzentration und Disziplin. Der Zweck dieser Artikelserie ist es, die Händler, die Operationen manuell ausführen, zu entlasten. Lassen Sie uns Schritt für Schritt eine bequeme, flexible Mehrwährungsanwendung erstellen, die die Erzeugung von Handelssignalen ermöglicht und die Händler bei der Suche nach den gewünschten Signalen unterstützt.


Die Grundstruktur der Anwendung

Bevor wir mit der Implementierung der Anwendung fortfahren, sollten wir ihre Hauptblöcke und ihre interne Struktur sowie die Reihenfolge der Interaktionen zwischen ihnen bestimmen. Wie bei den meisten modernen Anwendungen gibt es zwei Schlüsselpunkte:

  • Erststart. Während des Erststarts macht sich die Anwendung mit der Handelsumgebung vertraut, erhält die für den Betrieb erforderlichen Daten und ermöglicht es dem Benutzer, die erforderlichen Parameter einzustellen und sich alle in der Schnittstelle gewählten Präferenzen zu merken.
  • Sekundärer Start. Dies ist der Start einer bereits konfigurierten Anwendung. In der Regel arbeitet die Anwendung in dieser Phase direkt nach den vorher festgelegten Einstellungen. Die Anwendung kann jedoch teilweise rekonfiguriert werden oder der Benutzer kann zum ersten Start zurückkehren.

Abb.1 Die Grundstruktur der Anwendung.

Wie aus der Abbildung ersichtlich ist, unterscheiden sich die Reihenfolge des Erst- und Zweitstarts nur in der Reihenfolge der Schritte. Sehen wir uns nun an, was die Erst- und Zweitstartreihenfolge umfassen sollte.


Erststart der Anwendung

Die oben genannten Aufgaben sind primär für den Erststart. Je nach Broker und Kontoart können jedoch Hunderte von Handelsinstrumenten im Market Watch des MetaTrader 5-Terminals vorhanden sein. Es handelt sich um einen großen Datensatz, und es ist unwahrscheinlich, dass eine Anwendung so universell ist, dass sie alle präsentierten Daten benötigt. Darüber hinaus sind die meisten Systeme auf einen bestimmten Markt, bestimmte Währungspaare oder sogar eine bestimmte Börse in einem bestimmten Zeitrahmen zugeschnitten.

Wir brauchen also ein Werkzeug zum Filtern und Auswählen aller Handelsinstrumente, die zum Auffinden von Signalen und zum Handel verwendet werden, sowie Werkzeuge zur Auswahl der erforderlichen Zeitrahmen.

Daher besteht die Struktur der Erstauflage aus drei aufeinander folgenden Schritten:

  • Auswahl von Symbolen für den Einsatz.
  • Auswahl der Zeitrahmen für den Einsatz.
  • Erstellen eines Handelssignals.

Schritt 1. Erstellen wir nun relevante Layouts der Implementierung der entsprechenden Funktionen für das zukünftige Monitoring.

Abb.2 Schritt 1: Symbole für den Handel auswählen.

Betrachten wir die Oberflächenelemente und die Funktionen, die im ersten Schritt der ersten Einführung enthalten sind, genauer:

  1. Die Kopfzeile mit dem Namen der Anwendung und mit Informationen über die Schrittnummer und ihren Namen. In diesem Fall wird er wie folgt aussehen: Schritt 1: Symbol auswählen.
  2. Eine Gruppe von Schaltflächen für eine schnelle Auswahl häufig verwendeter Gruppen, wie z.B. Alle, Major, Kreuzpaare. Die Schaltflächen sind als Schalter implementiert, was an der Majors-Schaltfläche zu erkennen ist: Die Symbolgruppe ist ausgewählt, wenn die Schaltfläche aktiv ist (blau), und sie ist nicht ausgewählt, wenn der Zustand der Schaltfläche inaktiv ist (grau).
  3. Ein editierbares Feld für die Eingabe eines benutzerdefinierten Namens für den ausgewählten Symbolsatz. Es wird benötigt, wenn Sie einen individuellen Symbolsatz erstellen. Es kann z.B. verwendet werden, wenn mehrere verschiedene Einstellungen oder Strategievarianten im Monitor verwendet werden.
  4. Die Schaltfläche Laden lädt den zuvor erstellten Satz ausgewählter Symbole mit dem Namen aus dem Eingabefeld (Punkt 3). Die Aktion wird auch direkt mit der Taste L ausgeführt.
  5. Die Schaltfläche Speichern speichert den zuvor erstellten Satz ausgewählter Symbole mit dem Namen aus dem Eingabefeld (Punkt 3). Die Aktion wird direkt mit der Taste S ausgeführt.
  6. Eine Reihe von Kontrollkästchen mit Symbolnamen. Sie enthält die vollständige Liste der Symbole aus dem Market Watch, die für dieses Handelskonto verfügbar sind.
  7. Schaltfläche für den Übergang zum nächsten Schritt der anfänglichen Einrichtung der Anwendung. 

Abb.3 Aktive und Gesamtzahl der verfügbaren Symbole.

Bei der programmtechnischen Umsetzung dieses Schrittes ist zu bedenken, dass die Gesamtzahl der Symbole (Abb.3) die Höhe der Anwendung überschreiten kann. Deshalb ist es notwendig, die automatische Höhenanpassung zu aktivieren.

Schritt 2. Gehen wir nun zum nächsten Schritt über: Wir wählen den Zeitrahmen. Da die Anzahl der Zeitrahmen in MetaTrader 5 konstant ist, ist die Erstellung eines Layouts für den zweiten Schritt einfacher.


Abb.4 Schritt 2: Auswahl der Zeitrahmen für den Einsatz.

Der zweite Schritt besteht aus den folgenden Schritten:

  1. Die Kopfzeile mit dem Anwendungsnamen und dem aktuellen Einrichtungsschritt. In diesem Fall ist es Schritt 2: Zeitrahmen auswählen.
  2. Eine Gruppe voreingestellter Schaltflächen hat den gleichen Zweck wie im ersten Schritt: die schnelle Auswahl von häufig verwendeten Gruppen. In diesem Fall können Sie entweder alle Zeitrahmen (ALL), höhere Zeitrahmen (Senior) oder niedrigere Zeitrahmen (Junior) auswählen.
  3. Eine Reihe von Ankreuzfeldern mit den Namen aller verfügbaren Zeitrahmen.
  4. Schaltflächen, um zu Schritt 1 (Zurück) oder zum nächsten Schritt (Weiter) zu navigieren.

Schritt 3. Bevor wir ein Layout für die Erstellung von Signalen erstellen, müssen wir das Format des Mehrwährungsmonitors sowie den Satz grafischer Werkzeuge bestimmen, die für die Anzeige und die Anzeige von Handelssignalen verwendet werden.


Abb.5 Schema der Anzeigeeinheit.

Abb. 5 zeigt die Standard-Signalanzeigeeinheit und die fünf Hauptkomponenten. Betrachten wir sie im Detail:

  1. Rahmen. Der Rahmen der Anzeigeeinheit hat eine Eigenschaft, seine Farbe.
  2. Hintergrund. Der Hintergrund hat ebenfalls eine Farbeigenschaft.
  3. Bild. Das grafische Element ist ein bmp-Bild.
  4. Kennzeichnung. Das Textelement hat die folgenden Eigenschaften: Farbe, Größe und Wert.
  5. Tooltip. Der Tooltip verfügt über einen Text.

Wie Sie erraten können, können verschiedene Kombinationen von Eigenschaften der oben beschriebenen Elemente für bestimmte Aufgaben, Indikatoren, Signale, deren Sätze und Typen konfiguriert werden. Schauen wir uns nun den dritten Schritt der Ersteinrichtung an.

Abb. 6 Schritt 3: Handelssignale erzeugen.

Achten Sie auf zwei Hauptelemente: eine Schaltfläche, die ein Signal zur Liste der Signale (Signalliste) hinzufügt, und die Liste der Signale mit dem Namen und einer Bearbeitungsoption (über die Schaltfläche Bearbeiten). Ein Klick auf die Schaltfläche Edit öffnet ein zusätzliches Fenster mit den Signaleinstellungen. Lassen Sie uns nun die Standardeinstellungen implementieren. Die verfügbaren Einstellungen werden weiter ausgebaut.


Abb.7 Prototyp für das Fenster zur Erstellung und Bearbeitung von Handelssignalen.

Betrachten wir ein Beispiel für den Einsatz mit einem neuen und einem zuvor erstellten Signal:

  1. Ein Klick auf Signal hinzufügen öffnet ein Signal-Editierfenster. Im ersten Punkt wählen Sie den Typ des Indikators, auf dessen Grundlage das Handelssignal erstellt wird. 
  2. Je nach dem im Abschnitt Indikator-Einstellungen gewählten Indikator werden die relevanten Einstellungen für diesen Indikator angezeigt.
  3. Im nächsten Abschnitt wird Ihnen angeboten, die Bedingungen für das Auftauchen des Signals festzulegen. Diese Einstellung hängt auch von dem gewählten Indikator ab.
  4. In diesem Prototyp wird das Auftauchen eines Signals (Regel) am Beispiel des RSI-Indikators gezeigt. In diesem Fall ist es der RSI-Wert von 70 oder höher.
  5. Eine Option im Abschnitt Label ermöglicht es, festzulegen, wie eine Textbeschriftung im Indikatorblock verwendet werden soll. Sie können entweder den Indikatorwert anzeigen oder eine eigene Textkennzeichnung hinzufügen.
  6. Die Farbe des angegebenen Text-Labels kann im Abschnitt 'Label-Farbe' eingestellt werden.
  7. Umschaltoption. 'Use Background' ermöglicht die Einstellung der Hintergrundfarbe für den Signalblock.
  8. Umschaltoption. Mit 'Use Border' können Sie die Farbe des Rahmens für den Signalblock bestimmen.
  9. Umschaltoption. 'Use Tooltip' erlaubt das Hinzufügen eines Pop-up-Kommentars für das aktuelle Signal.
  10. Umschaltoption. 'Use Image' ermöglicht das Hinzufügen eines Grafikelements aus einer gegebenen Liste zum Signalblock.
  11. 'Timeframes' ermöglicht die Konfiguration der Liste der Zeitrahmen, in denen das konfigurierte Signal gesucht wird. 

Sobald die erforderlichen Signale hinzugefügt und konfiguriert sind, gehen Sie zum Monitor für Handelssignale. Damit ist die Erstkonfiguration abgeschlossen. Weitere Schritte betreffen den Hauptteil der Anwendung.

Sekundärer Start der Anwendung

Wenn die Anwendung zum zweiten Mal auf einem neuen oder anderen Chart des geöffneten Terminals neu gestartet wird, wird auf die Daten zugegriffen, die während des ersten Starts gesammelt wurden. Deshalb werden die Auswahlfenster für Symbole und Zeitrahmen übersprungen und man gelangt gleich zur laufenden Überwachung. Wie in Abb.1 zu sehen ist, können wir jedoch jederzeit zur Anfangsphase des Starts zurückkehren und die vorhandenen Handelssignale bearbeiten oder neue hinzufügen.

Abb.8 Das Hauptfenster der Handelsüberwachung.

Das Hauptfenster des Monitors öffnet sich während des Sekundärstarts. Betrachten wir die hier angezeigten Hauptgruppen von Elementen und die vorhergehenden Einstellungen, die sie beeinflusst haben.

  1. Die vertikale Liste der in Schritt 1 der Erstauflage ausgewählten Symbole. Dies sind die Hauptsymbole, die mit den in Market Watch im Terminal ausgewählten Symbolen übereinstimmen.
  2. Die in Schritt 2 des Erststarts ausgewählten Zeitrahmen. 
  3. Eine Reihe von Signalblöcken, die den ausgewählten Zeitrahmen und Symbolen entsprechen.
  4. Schaltflächen in der Kopfzeile des Fensters, von links nach rechts: Einstellung, Minimieren des Fensters, Schließen der Anwendung.   

Achten Sie auf die Schaltfläche für die Einstellungen. Während eines sekundären Starts ermöglicht sie das Umschalten der Erzeugung/Editierung von Handelssignalen (Abb.6) sowie das Umschalten in den Modus Initiale Einstellung.

Erstellung des Anwendungsrahmens

Nachdem wir nun die Hauptstruktur unserer zukünftigen Anwendung festgelegt haben, lassen Sie uns einen Ordner erstellen, in dem sich alle Dateien des Monitors befinden werden. Im Verzeichnis <Data Folder>\MQL5\Experts erstellen wir einen Ordner mit dem Titel Signal Monitor. Erstellen wir dann in diesem Ordner die folgenden Dateien:

  • Signal Monitor.mq5 — die Hauptanwendungsdatei.
  • Program.mqh — diese Datei wird die Hauptanwendungsklasse CProgramm enthalten; eine Grafikbibliothek wird damit verbunden.
  • MainWindow.mqh — eine Include-Datei, die eine Implementierung von Methoden enthält, die für die Erstellung des Hauptanwendungsfensters erforderlich sind.
  • SetWindow.mqh — eine Include-Datei mit den Methoden, die die visuellen und logischen Komponenten des Einstellungsfensters implementieren (Abb.6-7).
  • StepWindow.mqh — eine Include-Datei mit den Methoden zur Implementierung der schrittweisen Einstellungsschnittstelle während des Erststarts.

Wenn alles richtig gemacht wird, haben wir folgende Dateistruktur, wie in Abb.9 dargestellt:

Abb.9 Dateistruktur der Anwendung.

Jetzt brauchen wir nur noch die Grafikbibliothek zu verbinden und alle Dateien in einem System zusammenzuführen. Zuerst öffnen wir die Dateien Signal Monitor, MainWindow, SetWindow, StepWindow und verbinden mit ihnen die Datei mit der Hauptanwendungsklasse Programm.

//--- Include application class
#include "Program.mqh"

Öffnen wir nun Programm.mqh und binden die Grafikbibliothek ein, sowie die Dateien mit den wichtigsten Oberflächenelementen.

#include <EasyAndFastGUI\WndEvents.mqh>
//+------------------------------------------------------------------+
//| Class for creating an application                                |
//+------------------------------------------------------------------+
class CProgram
{
public:
   CProgram(void);
   ~CProgram(void);
};
//+------------------------------------------------------------------+
//| Add Controls                                                     |
//+------------------------------------------------------------------+
#include "MainWindow.mqh"
#include "SetWindow.mqh"
#include "StepWindow.mqh"
//+------------------------------------------------------------------+
//| Constructor                                                      |
//+------------------------------------------------------------------+
CProgram::CProgram(void)
{
}
//+------------------------------------------------------------------+
//| Destructor                                                       |
//+------------------------------------------------------------------+
CProgram::~CProgram(void)
{
}
//+------------------------------------------------------------------+

Damit ist die anfängliche Einrichtung der Anwendung abgeschlossen. Im nächsten Artikel werden wir die Hauptoberflächenfenster erstellen, ihre Interaktion konfigurieren und sie mit den in diesem Artikel beschriebenen Steuerelementen füllen.


Schlussfolgerung

Das angehängte Archiv enthält alle besprochenen Dateien, die sich in den entsprechenden Ordnern befinden. Für den korrekten Einsatz legen Sie den Ordner MQL5 in das Stammverzeichnis des Terminals. Um das Stammverzeichnis des Terminals zu öffnen, in dem sich der Ordner MQL5 befindet, muss man die Tastenkombination Strg+Umschalt+D im MetaTrader 5 Terminal drücken oder das Kontextmenü, wie in Abb. 10 unten gezeigt, verwenden.


Abb.10 Öffnen des MQL5-Ordners im MetaTrader 5 Terminal-Stamm


Übersetzt aus dem Russischen von MetaQuotes Software Corp.
Originalartikel: https://www.mql5.com/ru/articles/7417

Beigefügte Dateien |
MQL5.zip (456.03 KB)
Ökonometrischer Ansatz zur Ermittlung von Marktmustern: Autokorrelation, Heatmaps und Streudiagramme Ökonometrischer Ansatz zur Ermittlung von Marktmustern: Autokorrelation, Heatmaps und Streudiagramme

Der Artikel stellt eine erweiterte Studie über jahreszeitliche Merkmale vor: Autokorrelations-Heatmaps und Streudiagramme. Der Zweck des Artikels ist es zu zeigen, dass das "Marktgedächtnis" saisonaler Natur ist, was durch eine maximale Korrelation von Zuwächsen beliebiger Ordnung ausgedrückt wird.

Kontinuierliche Walk-Forward-Optimierung (Teil 3): Eine Roboters für Autoadaptierung anpassen 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.

Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXXI): Schwebende Handelsanfragen - Positionseröffnung unter bestimmten Bedingungen Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXXI): Schwebende Handelsanfragen - Positionseröffnung unter bestimmten Bedingungen

Ausgehend von diesem Artikel werden wir eine Funktionsweise entwickeln, die es den Benutzern ermöglicht, unter bestimmten Bedingungen mit schwebenden Anfragen zu handeln, z.B. bei Erreichen eines bestimmten Zeitlimits, Überschreiten eines bestimmten Gewinns oder Schließen einer Position durch Stop-Loss.

Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXXII): Schwebende Handelsanfragen - Orders unter bestimmten Bedingungen platzieren Bibliothek für ein leichtes und schnelles Entwickeln vom Programmen für den MetaTrader (Teil XXXII): Schwebende Handelsanfragen - Orders unter bestimmten Bedingungen platzieren

Wir setzen die Entwicklung der Funktionsweisen fort, die es den Benutzern ermöglicht, mit schwebenden Anfragen zu handeln. In diesem Artikel werden wir die Möglichkeit einführen, Pending-Orders unter bestimmten Bedingungen zu platzieren.