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
Bibliotheken

Die MasterWindows Bibliothek - Bibliothek für den MetaTrader 5

Ansichten:
985
Rating:
(34)
Veröffentlicht:
2016.12.16 16:00
\MQL5\Include\
ClassRow.mqh (22.18 KB) ansehen
ClassWin.mqh (8.13 KB) ansehen
\MQL5\Experts\
test1.mq5 (9.14 KB) ansehen
test2.mq5 (6.85 KB) ansehen
test3.mq5 (7.73 KB) ansehen
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Der Artikel "MQL5 für "Dummies": Wie man Objektklassen designt und erstellt" beschreibt, wie man benutzerfreundliche Interfaces für Programme erstellt. Die Implementierung von interaktiven Fenstern basiert auf der Verwendung der MasterWindows-Klassenbibliothek.

Abb. 1. Beispiel für die Verwendung der MasterWindows Bibliothek

Abb. 1. Beispiel für die Verwendung der MasterWindows Bibliothek

Die MasterWindows Bibliothek besteht aus drei Basisklassen:

  • Die CCell Basisklasse:
    //+------------------------------------------------------------------+
    //| The base CELL class CCell                                        |
    //+------------------------------------------------------------------+
    class CCell
      {
    private:
    protected:
       bool              on_event;      // Flat für Event-Handling
       ENUM_OBJECT       type;          // Zelltyp
    public:
       WinCell           Property;      // Zelleigenchaften
       string            name;          // Zellenname
       //+---------------------------------------------------------------+
       // Klassen Konstruktor
       void              CCell();
       virtual     // Methode: zeichne ein Objekt
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Die OnChartEvent event handling Methode
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    
  • Die CRow Basisklasse, besteht aus Zellen der CCell Klasse:
    //+------------------------------------------------------------------+
    //| Die ROW Basisklasse CRow                                         |
    //+------------------------------------------------------------------+
    class CRow
      {
    protected:
       bool              on_event;      // Flat für Event-Handling
    public:
       string            name;          // Zeilenname
       WinCell           Property;      // Zeileneigenschaften
       //+---------------------------------------------------------------+
       // Klassen Konstruktor
       void              CRow();
       virtual     // Methode: zeichne eine Zeile
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Die OnChartEvent event handling Methode
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    
  • Die CWin Basisklasse, bestehet aus CRow Klassen:
    //+------------------------------------------------------------------+
    //| Die Basisfensterklasse CWin                                      |
    //+------------------------------------------------------------------+
    class CWin
      {
    private:
       void              SetXY(int m_corner);// Methode zur Berechnung von Koordinaten
    protected:
       bool              on_event;      // Flag für Event-Handling
    public:
       string            name;       // Fenstername
       int               w_corner;   // Ankerecke
       int               w_xdelta;   // Vertikale Einrückung
       int               w_ydelta;   // Horizontale Einrückung
       int               w_xpos;     // Die X-Koordinate des Ankerpunktes
       int               w_ypos;     // Die Y-Koordinate des Ankerpunktes
       int               w_bsize;    // Die Breite des Fensters
       int               w_hsize;    // Die Höhe des Fensters
       int               w_h_corner; // Die Ankerecke des HIDE-Modus
       WinCell           Property;   // Fenstereigenschaften
       //---
       CRowType1         STR1;       // Declaring the class row
       CRowType2         STR2;       // Declaring the class row
       CRowType3         STR3;       // Declaring the class row
       CRowType4         STR4;       // Declaring the class row
       CRowType5         STR5;       // Declaring the class row
       CRowType6         STR6;       // Declaring the class row
       //+---------------------------------------------------------------+
       // Klassen Konstruktor
       void              CWin();
       // Methode zum Beziehen von Daten
       void              SetWin(string m_name,
                                int m_xdelta,
                                int m_ydelta,
                                int m_bsize,
                                int m_corner);
       virtual     // Methode: zeichne ein Fenster
       void              Draw(int &MMint[][3],
                              string &MMstr[][3],
                              int count);
       virtual     // Die OnEventTick Event Verarbeitungs-Methode
       void              OnEventTick();
       virtual     // Die OnChartEvent event handling Methode
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    

und 1o abgeleitete Klassen.

Die Anlage enthält Vorlagen und Code-Beispiele, in denen die MasterWindows-Bibliothek verwendet wird. Alle Codes wurden mit dem visuellen Fenster Konstruktor MasterWindows für MQL5generiert. Testprogramme sind Modelle, d.h. sie enthalten keine Funktionalität (mit Ausnahme von zwei Funktionen: Schließen und Ausblenden des Fensters).

Sie können eine beliebige Anzahl und Kombination von Zeilen in einem Fenster verwenden. Die Abbildung zeigt die Basisversionen der Zeilen und die Fenster-Header:

Abb. 2. Basic-Versionen von Fenster-Interfaces.

Abb. 2. Grundlegende Optionen und Möglichkeiten der Bibliothek

Wir haben zum Beispiel für den "Testen von Moving Durchschnitte Leistungsberechnung in MQL5"-Artikel die folgende Schnittstelle mit Hilfe der vorgestellten Bibliothek erstellt.

Abb.3. Verwendungsbeispiel für die Bibliothek.

Abb.3. Beispiel für die Verwendung der MasterWindows Bibliothek

Empfehlungen:

  • Verwenden Sie für eine bessere Anzeige der erstellten Interface-Fenster grafische Systeme mit schwarzen Hintergrund.

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

Price Price

Preisbeschriftung, die zur rechten Seite des Preises hinzugefügt wird - mit anpassbaren Parametern.

XMA_BBx7_Cloud_Digit XMA_BBx7_Cloud_Digit

Drei Bollinger Bänder Kanäle basierend auf einem gleitenden Durchschnitt, gezeichnet als farbige Wolke mit Anzeige der letzten Wert als Preislabels und der Möglichkeit die Bollinger-Levels auf eine gewünschte Anzahl von Stellen zu runden.

XMA_BBx7_Cloud_Digit_HTF XMA_BBx7_Cloud_Digit_HTF

Der XMA_BBx7_Cloud_Digit Indikator mit der Option TimeFrames in den Eingabeparametern auszuwählen.

XMA_KLx7_Cloud XMA_KLx7_Cloud

Drei Keltner Kanäle basierend auf einem gleitenden Durchschnitt, gezeichnet als farbige Wolke mit Anzeige der letzten Werte als Preislabels.