Download MetaTrader 5

Watch how to download trading robots for free

Interesting script?
So post a link to it -
let others appraise it

You liked the script? Try it in the MetaTrader 5 terminal

2016.04.14 10:47
The MasterWindows Library

The MasterWindows Library - library for MetaTrader 5

| English 日本語 Deutsch Русский 中文

Views:
1385
Rating:
votes: 23
\MQL5\Include\
classunit.mqh (15.4 KB)view
classrow.mqh (22.18 KB)view
classwin.mqh (8.13 KB)view
\MQL5\Experts\
test1.mq5 (9.14 KB)view
test2.mq5 (6.85 KB)view
test3.mq5 (7.73 KB)view

The "MQL5 for "Dummies": How to Design and Construct Object Classes" articles describes how you can create a user-friendly interface for your programs. Implementation of interactive windows is based on the use of the MasterWindows class library.

Fig. 1. Example of the MasterWindows library use

Fig. 1. Example of the MasterWindows library use

Description:

The MasterWindows library consists of three base classes:

  • the base CCell class:
    //+------------------------------------------------------------------+
    //| The base CELL class CCell                                        |
    //+------------------------------------------------------------------+
    class CCell
      {
    private:
    protected:
       bool              on_event;      // Event handling flag
       ENUM_OBJECT       type;          // Cell type
    public:
       WinCell           Property;      // Cell properties
       string            name;          // Cell name
       //+---------------------------------------------------------------+
       // Class constructor
       void              CCell();
       virtual     // Method: draw an object
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // The OnChartEvent event handling method
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
  • the base CRow class, consists of cells of the CCell class:
    //+------------------------------------------------------------------+
    //| The base ROW class CRow                                          |
    //+------------------------------------------------------------------+
    class CRow
      {
    protected:
       bool              on_event;      // Event handling flag
    public:
       string            name;          // Row name
       WinCell           Property;      // Row properties
       //+---------------------------------------------------------------+
       // Class constructor
       void              CRow();
       virtual     // Method: draw a row
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // The OnChartEvent event handling method
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
  • the base CWin class, consists of rows of the CRow class:
    //+------------------------------------------------------------------+
    //| The base Window class CWin                                       |
    //+------------------------------------------------------------------+
    class CWin
      {
    private:
       void              SetXY(int m_corner);// The method for calculating coordinates
    protected:
       bool              on_event;   // Event handling flag
    public:
       string            name;       // Window name
       int               w_corner;   // Anchor corner
       int               w_xdelta;   // Vertical indent
       int               w_ydelta;   // Horizontal indent
       int               w_xpos;     // The X coordinate of the anchor point
       int               w_ypos;     // The Y coordinate of the anchor point
       int               w_bsize;    // The width of the window
       int               w_hsize;    // The height of the window
       int               w_h_corner; // The anchor corner of the HIDE mode
       WinCell           Property;   // Window properties
       //---
       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
       //+---------------------------------------------------------------+
       // Class constructor
       void              CWin();
       // Data obtaining method
       void              SetWin(string m_name,
                                int m_xdelta,
                                int m_ydelta,
                                int m_bsize,
                                int m_corner);
       virtual     // Method: draw a window
       void              Draw(int &MMint[][3],
                              string &MMstr[][3],
                              int count);
       virtual     // The OnEventTick event processing method
       void              OnEventTick();
       virtual     // The OnChartEvent event handling method
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    

and 1o derived classes.

The attachment contains templates and code samples where the MasterWindows library is used. All codes have been generated using the visual window constructor MasterWindows for MQL5. Test programs are models, i.e. have no functionality (except for two functions: close and hide the window).

Image:

You can use any number and combination of rows in a window. The figure shows the basic versions of rows and the window header:

Fig. 2. Basic versions of interface windows.

Fig. 2. Basic options and possibilities of the library

For example, for the "Testing Performance of Moving Averages Calculation in MQL5" article, we have created the following interface using the proposed library.

Fig. 3. Library use example.

Fig. 3. An example of using the MasterWindows library

Recommendations:

  • For a better display of created interface windows, use graphical schemes with a black background.

Translated from Russian by MetaQuotes Software Corp.
Original code: https://www.mql5.com/ru/code/15059

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

The Acceleration/Deceleration Indicator (AC) measures acceleration and deceleration of the current driving force.

Average Directional Movement Index (ADX) Average Directional Movement Index (ADX)

The Average Directional Movement Index Indicator (ADX) helps to determine if there is a price trend.

LinesProfitLoss LinesProfitLoss

Calculates profit (loss) of the current orders on the symbol.

FFC - Forex Factory Calendar FFC - Forex Factory Calendar

Modified version of FF Calendar Indicator with new features.