Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Expert Advisors

Control panel MCM für mehrwährungsfähige Expert Advisors und Indikatoren - Experte für den MetaTrader 5

Ansichten:
1681
Rating:
(41)
Veröffentlicht:
2016.08.05 14:52
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Einleitung

Einer der Vorteile der Programmiersprache MQL5 besteht darin, dass man Werkzeuge für Indikatoren und Expert Advisors im realen Mehrwährungsmodus erstellen kann. Dies belegt auch das von mir in Code Base veröffentlichte Skript “Multicurrency OnTickMarketWatch tick event handler”.

Die Verwendung der Variante aus dem Skript schafft viele Unannehmlichkeiten. Zum Beispiel kann die Warteliste der Ereignisse durch eine hohe Anzahl eingehender Ticks in der OnChartEvent() Funktion überflutet werden. Die Warnung aus der Dokumentation:

Alle auftretenden Ereignisse werden in eine gemeinsame Warteliste eingetragen. Auf diese Weise werden die Ereignisse eines nach dem anderen in der Reihenfolge des Eingangs bearbeitet. Eine Ausnahme bildet das NewTick Ereignis. Wenn es ein solches Ereignis in der Warteliste bereits gibt oder es gerade bearbeitet wird, wird ein neues NewTick Ereignis nicht in die Warteliste eingetragen.
Die Warteliste der Ereignisse hat begrenzte Kapazitäten. Wenn sie voll ist, werden alte Ereignisse gelöscht, ohne bearbeitet zu werden, damit es ausreichend Platz für neue Ereignisse gibt. Aus diesem Grund ist es empfehlenswert, effiziente Event-Handler zu schreiben und Endlosschleifen nicht zu verwenden.

Manchmal muss man nur beim Erscheinen eines neuen Balkens handeln oder Indikatoren berechnen. Oder den Handel des Mehrwährungsexperten auf irgendeinem Symbol dringend stoppen, ohne seine Arbeit zu unterbrechen. Oder, z.B. die Periode eines Symbols ändern, ohne die Arbeit des Mehrwährungsexperten einzustellen. Und vieles mehr... Häufig gehören dazu Daten aus einer externen Umgebung, in welcher der Indikator oder EA arbeiten.

Gerade für das Einstellen der Umgebung, in welcher der Mehrwährungsindikator oder Expert Advisor arbeitet, wurde das Bedienfeld "Control panel MCM" (Control panel the MultiCurrency Mode) für den Mehrwährungsmodus entworfen.

Übrigens kann dieses Panel auch im Handel mit einem Währung eingesetzt werden.


Vorteile der für Wettbewerb erstellten Version "Control panel MCM"

Funktionalität
Die angebotene Version verfügt über das für die Verwendung des Mehrwährungsmodus erforderliche Minimum an Funktionen, und zwar:

  • Hinzufügen/Löschen von Symbolen für Handel oder Analyse.
  • Verfolgen die Ereignisse "Neuer Tick" oder "Neuer Balken" für jedes Symbol und jede Periode.
  • Ändern alle oben beschriebenen Einstellungen, ohne dabei die Arbeit des Expert Advisors oder Indikators unterbrechen oder einstellen zu müssen.
  • Sie können das Panel auf dem Chart installieren, und dann Expert Advisors und Indikatoren auf den Chart ziehen.
  • Das Panel kann auch als Bestandteil eines Indikators oder Experten verwendet werden. Es wird mit ihnen gestartet.
  • Dies beschränkt auf keinem Fall Ihre Kreativität beim Erstellen mehrwährungsfähiger Indikatoren und Expert Advisors. Sie brauchen den Code von Control panel MCM nicht Ihrem Indikator oder Expert Advisor hinzufügen.

Schauen Sie sich das Menü des Panels "Control panel MCM" an und Sie finden einen zusätzlichen Service, der allerdings in der Version für den Wettbewerb nicht enthalten ist.

Eine erweiterte Beschreibung der Funktionen von "Control panel MCM" finden Sie unten im Abschnitt "Arbeit mit dem Panel für die Steuerung des Mehrwährungsmodus".

Funktionelle Einschränkungen: beim Neustart des Panels werden Einstellungen nicht gespeichert; darüber hinaus gibt es keine zusätzlichen Module, die die Grundfunktionen erweitern.


Installieren und Bedienen

Es ist sehr einfach, "Control panel MCM" zu installieren. Das können Sie auf drei Weisen machen:

  • Fügen Sie den Indikator "iControl panel MCM" - die Engine des Panels - dem gewünschten Chart hinzu.
  • Starten Sie das Skript "scControl panel MCM". Das Skript wurde als Beispiel erstellt, es startet den Indikator "iControl panel MCM".
  • Aktivieren Sie den Start des Panels von Ihrem Indikator oder Expert Advisor aus. Das Beispiel befindet sich in der Datei "exControl panel MCM".

In der letzten Variante wird das Panel in einem Fenster zusammen mit Ihrem Indikator oder Expert Advisor geladen. In den ersten zwei wird nur das Panel selbst installiert. Weiter kann Ihr EA oder Indikator in diesem Fenster installiert werden, diese müssen mit Control panel MCM kompatibel sein. Die einzige Anforderung an die Kompatibilität der MQL-Programme ist das Vorhandensein des standardmäßigen Event-Handlers OnChartEvent().


Interface

Das Interface ist einfach und wurde als traditionelles Menü implementiert. Die Größe und Farben werden über die Einstellungen des Indikators gesetzt. Das Panel und die Buttons des Panels sehen folgendermaßen aus:

Einstellen von Farben und der Größe des Indikators iControl panel MCM


Ergonomie in der alltäglichen Tätigkeit

Hier ist auch alles sehr einfach. Das Panel selbst wird nur am Anfang benötigt, um notwendige Ereignisse für den Mehrwährungsexperten zu konfigurieren. Die Fenstergröße wird an die Chartfenstergröße angepasst. Wenn das Menü zu lang ist, erscheint eine vertikale Linie zum Scrollen. Nach dem Einstellen kann das Panel minimiert werden, und es wird in der linken unteren Ecke "schlafen". Es ist klein und stört die Arbeit nicht.

Minimiertes Panel iControl panel MCM

Die Größe des Panels kann durch das Ändern der Schriftgröße in den "Einstellungen" des Indikators geändert werden. Die standardmäßige Schriftgröße ist 10:

Einstellung der Schriftgröße des Indikators iControl panel MCM

Ein Panel für Blondinen könnte z.B. so aussehen:

Emo-Version:

Farben einstellen für iControl panel MCM


Benutzerfreundlichkeit

Das Menü des Panels ist intuitiv bedienbar und besteht aus nur wenigen Tasten.

Die Menü-Taste von Control panel MCM enthält zusätzliche Werkzeuge, die die Möglichkeiten des Panel erweitern (in dieser Version nicht vorhanden):

Zusätzliche Tools des Panels iControl panel MCM

Die Menü-Taste "Chart" enthält Einstellungen des Symbols und der Periode des aktuellen Charts. Wenn Sie ein anderes Symbol oder Periode wählen, können die Parameter des aktuellen Charts geändert werden:

Änderung von Parametern des aktuellen Charts von iControl panel MCM

Mit der Menü-Taste "Events" kann man Symbole für Handel und Analyse im Laufe der Arbeit hinzufügen/löschen (ohne die Arbeit des Expert Advisor/Indikators zu stoppen) sowie die gewünschten Events für ausgewählte Symbole einstellen. Diese Events kann man mithilfe der OnChartEvent() Funktion im Expert Advisor oder Indikator verfolgen.

Im Menü werden nur die Symbole angezeigt, die im Marktübersicht-Fenster ausgewählt wurden. Sie können ein Event nach Ihrem Geschmack auswählen oder mehrere Events miteinander kombinieren. Sie werden alle bearbeitet. Nun braucht man sich keine Gedanken über das Auftreten eines neuen Balkens auf verschiedenen Zeitrahmen zu machen, darum kümmert sich das Panel und informiert Sie über dieses Event über den Event-Handler OnChartEvent():

Event "Neuer Balken" von iControl panel MCM  

Die Menü-Taste "Hilfe" wurde aus rein egoistischen Gründen erstellt - meine Urheberschaft zu beweisen und Sie ans Forum weiterenzuleiten:

Hilfe von iControl panel MCM


Know-How oder interessanter Ansatz

Mein Know-How habe ich bereits in “Multicurrency Tick-Handler OnTickMarketWatch” veröffentlicht. Aber dieses Panel enthält zusätzliche Lösungen und beseitigt die Nachteile des alten Skripts:

  • "Control panel MCM" ist ein Service, der nicht standardmäßig im Terminal implementiert wird. Es erlaubt Ihnen, den Mehrwährungsmodus über den Event-Handeler OnChartEvent() zu nutzen und Einstellungen zu ändern, ohne die Arbeit Ihres Expert Advisors ode Indikators unterbrechen zu müssen.
  • Für die Generierung von Ereignissen für den standardmäßigen Event-Handler OnChartEvent() verwendet das Panel seine Agenten, die entsprechende Ereignisse für den Mehrwährungsexperten liefern. Dies hilft den Mehrwährungsexperten durch die Thread-Parallelisierung zu "entlasten". Mit Agenten meine ich Indikatoren, die von Control panel MCM auf dem gewünschten Symbol gestartet werden.
  • Das Panel kann sowohl als ein unabhängiges Werkzeug verwendet werden, als auch in Expert Advisors oder Indikatoren eingefügt werden. So kann man es flexibel nutzen.
  • Control panel MCM beschränkt nicht die Kreativität von Programmierern bei der Erstellung mehrwährungsfähiger Indikatoren und Expert Advisors. Darüber hinaus brauchen Sie den Code des Panels in den Ihren Code zu schreiben.
  • Das Panel setzt (oder zumindest tut so) einen neuen Standard der Architektur von Expert Advisors und Indikatoren. IMHO natürlich. Wenn ich Zeit habe, veröffentliche ich hier ein Paar Beispiele.


Informationen über Events und Alerts

Dafür hat das Panel eine Statusbar, wo alle Ereignisse und Aktionen angezeigt werden. Zwar gibt es ein Modul "Journal", ich habe es aber absichtlich aus bösem Willen nicht hinzugefügt.


Einige Besonderheiten von Control panel MCM.

Installation des Panels.

Entpacken Sie die Zip-Datei "Control panel MCM.rar" in ein mql5-Verzeichnis, um das Panel zu installieren. Beim Entpacken erhalten Sie mehrere Dateien:

  • /mql5/experts/exControl panel MCM.mq5 - ein Beispiel für den Experten, der die Vorlage verwendet;
  • /mql5/scripts/scControl panel MCM.mq5 - ein Skript, das das Panel startet;
  • /mql5/indicators/iControl panel MCM.mq5 - einen Indikator - die Engine von Control panel MCM;
  • /mql5/indicators/Spy Control panel MCM.mq5 - einen Indikator - den Agenten von Control panel MCM;
  • /mql5/include/Control panel MCM.mqh - Funktionen und Klassen von Control panel MCM.

Kompilieren Sie den Experten, das Skript und beide Indikatoren.

Panel starten

Das Panel wird ganz einfach gestartet: starten die den Indikator "iControl panel MCM.mq5" auf einem beliebigen Symbol und Zeitrahmen. Fertig. Nun können Sie mit dem Panel spielen. Dem Chart können alle mit Control panel MCM kompatiblen EAs und Indikatoren hinzugefügt werden.

Für mich persönlich ist es besonders praktisch, das Panel direkt im Experten zu starten. Starten wir den Experten "exControl panel MCM":

Ein Beispiel für die Verwendung von iControl panel MCM

Zusätzlich habe ich meinen eigenen Mehrwährungsindikator MultiTrend hinzugefügt, der extra für die Verwendung mit dem Panel entwickelt wurde. Der Indikator zeigt den Dollar-Kurs (die rosa Linie) anhand der Analyse der vier Währungspaare.

Der Code des Expert Advisors ist unten angeführt:

//+------------------------------------------------------------------+ 
//|                                                   MultiTrend.mq5 | 
//|                                            Copyright 2010, Lizar | 
//|                            https://www.mql5.com/de/users/Lizar   | 
//+------------------------------------------------------------------+ 
#define VERSION       "1.00 Build 2 (09 Dec 2010)" 
#property copyright   "Copyright 2010, Lizar"
#property link        "https://www.mql5.com/ru/users/Lizar"
#property version     VERSION
#property description "Der Expert Advisot demonstriert die Arbeit des Panels für die Steuerung des Mehrwährungsmodus"
#property description "\Control panel MCM\" (Control panel the MultiCurrency Mode)."
input color bg_color=Gray;        // Menüfarbe 
input color font_color=Gainsboro; //  
input color select_color=Yellow;  // Farbe des markierten Textes 
input int font_size=10;         // Schriftgröße 
#include <Control panel MCM.mqh> //<--- Include-Datei  Control panel MCM 
//+------------------------------------------------------------------+ 
//| Expert initialization function                                   | 
//+------------------------------------------------------------------+ 
int OnInit()
  {    //--- Initialisierung von Control panel MCA.     
//--- Man kann Parameter für Farben nicht setzen (Standardfarben werden verwendet).      
   InitControlPanelMCM(bg_color,font_color,select_color,font_size);
//---    
  return(0);   
  } 
//+------------------------------------------------------------------+ 
//| Expert deinitialization function                                 | 
//+------------------------------------------------------------------+ 
void OnDeinit(const int reason)
  {
   DeinitControlPanelMCM();   //<--- Deinitialisierung von Control panel MCA:  
  }
//+-------------------------------------------------------------------+ 
//| OnChartEvent event handler. Die Funktion kann                     | 
//| wie in der Dokumentation beschrieben verwendet werden.            | 
//|                                                                   | 
//| Zusammen mit Control panel MCM stellt die Funktion ein gutes Tool | 
//| für den Mehrwährungshandel dar.                                   | 
//+-------------------------------------------------------------------+ 
void OnChartEvent(const int id, // Identifikator  des Ereignisses:                                  
                  // Wenn id-CHARTEVENT_CUSTOM==0 - Initialisierung, entspricht dem Moment prev_calculated==0
                  // Wenn id-CHARTEVENT_CUSTOM!=0 - die Position des Symbols im Marktübersicht-Fenster                 
                  const long&   lparam, // Zeitrahmen              
                  const double& dparam, // Preis                 
                  const string& sparam  // Symbol                 
                  )
  {
   if(id>=CHARTEVENT_CUSTOM)
     {
      Print(TimeToString(TimeCurrent(),TIME_SECONDS)," -> id=", id-CHARTEVENT_CUSTOM,
                         ":  ",sparam," ",EventDescription(lparam)," price=",dparam);
     }
  }
//+------------------------------------------------------------------+ 


Eingabeparameter OnChartEvent()

Das Bedienfeld generiert Events und überträgt diese auf den installierten Chart, um diese Events dann im Expert Advisor oder Indikator mithilfe der Funktion OnChartEvent() zu berarbeiten. Die Eingabeparameter dieser Funktion sind (in unserem Fall) folgenderweise zu interpretieren:

  • id - Identifikator des Events:
    wenn id-CHARTEVENT_CUSTOM !=0 - Position des Symbols im Fenster "Marktübersicht";
  • lparam; - Event-Flag vom Agenten des Panels. Die Flaggen entsprechen der Aufzählung ENUM_CHART_EVENT_SYMBOL, die Sie am Anfang der Datei Control panel MCM.mqh finden, die Beschreibung ist unten im Text angeführt.
  • dparam - Preis des Ticks oder Eröffnungspreis eines neuen Balkens in einem bestimmten Zeitrahmen.
  • sparam - Name des Symbols, für welches ein Ereignis eingegangen ist


Liste der Ereignisse in Control panel MCM

Über lparam kann das Panel je nach Einstellungen bis zu 64 unterschiedliche Ereignisse für ein Symbol übermitteln. In dieser Version kann Control panel MCM folgende Ereignisse übermitteln:

  • Ereignis "Intialisierung" (Initialization);
  • Ereignis "neuer Tick" (tick);
  • Ereignis "neuer Balken" im M1-Chart;
  • Ereignis "neuer Balken" im M2-Chart;
  • Ereignis "neuer Balken" im M3-Chart;
  • Ereignis "neuer Balken" im M4-Chart;
  • Ereignis "neuer Balken" im M5-Chart;
  • Ereignis "neuer Balken" im M6-Chart;
  • Ereignis "neuer Balken" im M10-Chart;
  • Ereignis "neuer Balken" im M12-Chart;
  • Ereignis "neuer Balken" im M15-Chart;
  • Ereignis "neuer Balken" im M20-Chart;
  • Ereignis "neuer Balken" im M30-Chart;
  • Ereignis "neuer Balken" im Stundenchart (H1);
  • Ereignis "neuer Balken" im 2-Stunden Chart (H2);
  • Ereignis "neuer Balken" im 3-Stunden Chart (H3);
  • Ereignis "neuer Balken" im 4-Stunden Chart (H4);
  • Ereignis "neuer Balken" im 6-Stundenchart (H6);
  • Ereignis "neuer Balken" im 8-Stundenchart (H8);
  • Ereignis "neuer Balken" im 12-Stundenchart (H12);
  • Ereignis "neuer Balken" im Tageschart (D1);
  • Ereignis "neuer Balken" im Wochenchart (W1);
  • Ereignis "neuer Balken" im Monatschart (MN1);

In Klammern ist die Beschreibung des Ereignisses angeführt, das die Funktion EventDescription() liefert. Die Funktion selbst ist auch am Anfang der Datei Control panel MCM.mqh nach der Aufzählung ENUM_CHART_EVENT_SYMBOL zu finden.

Das Ereignis "Initialisierung" entspricht dem Moment, in dem der Input-Parameter prev_calculated auf dem Symbol, von welchem das Ereignis eingegangen ist, auf Null gesetzt wird. Aus diesem Grund müssen wir entsprechende Maßnahmen ergreifen. Den Indikator für dieses Symbol zum Beispiel neu berechnen.


Einstellen von Ereignissen

Die Ereignisse, die von Agenten des Bedienfeldes gesendet werden, lassen sich mit der Taste "Ereignisse" einstellen. Wenn Sie auf die Taste klicken, erscheint eine Liste mit allen Symbolen, die in der Marktübersicht vorhanden sind. Um Ereignisse zu aktivieren, klicken Sie doppelt auf dem gewünschten Symbol. Am besten ganz langsam, um es richtig zu genießen.

Wenn Ereignisse für ein Symbol schon vorher ausgewählt wurden (dieses Symbol wird beleuchtet), reicht es einmal darauf zu klicken. Da erscheint die Liste der Ereignisse. Man kann ein oder mehrere Events auswählen, sie alle werden im mehrwährungsfähigen Expert Advisor bearbeitet. Um Änderungen anzuwenden, klicken Sie auf "Ereignisse aktivieren/deaktivieren" für alle gewünschten Symbole.

Auswahl der Ereignisse von iControl panel MCM

Das Arbeitsergebnis vom EA zusammen mit dem Panel:

Ein Beispiel für die Arbeit des Indikators iControl panel MCM

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/215

PricePointer, RoundNumberMarker, PeriodSeparator + Vorlage PricePointer, RoundNumberMarker, PeriodSeparator + Vorlage

Mit diesem Set von Indikatoren können Sie wichtige Preis-Points auf den Chart hinzufügen sowie Anfang/Ende von Perioden markieren. Die Indikatoren informieren auch über die Annäherung des Preises zu Tagestief/Tageshoch oder zu historischen Maxima und Minima.

HLR_HTF_Signal HLR_HTF_Signal

Der HLR_HTF_Signal Indikator zeigt die Trendrichtung und Signale basierend auf dem HLRSign Indikator.

FAT PANEL FAT PANEL

Ein Panel für den Wettbewerb "Das beste grafische Bedienfeld in MQL5". Das Panel zeichnet sich durch die Möglichkeit aus, Handelsstrategien im visuellen Modus zu erstellen.

Bibliothek von Hash-Funktionen und Umwandlungen in andere Zahlensysteme Bibliothek von Hash-Funktionen und Umwandlungen in andere Zahlensysteme

Die Bibliothek enthält Algorithmen universeller Hash-Funktionen: adler32, CRC-32 und MaHash8v64 sowie Funktionen zur Umwandlung aus dem Dezimalsystem in ein Base-Zahlensystem und umgekehrt.