Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el terminal MetaTrader 5
Librerías

Librería MasterWindows - librería para MetaTrader 5

Visualizaciones:
859
Ranking:
(34)
Publicado:
2016.12.27 13:28
Actualizado:
2016.12.27 13:28
\MQL5\Include\
ClassUnit.mqh (15.4 KB) ver
ClassRow.mqh (22.18 KB) ver
ClassWin.mqh (8.13 KB) ver
\MQL5\Experts\
test1.mq5 (9.14 KB) ver
test2.mq5 (6.85 KB) ver
test3.mq5 (7.73 KB) ver
¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

En el artículo «MQL5 para «Dummies»: cómo diseñar y construir clases de objetos» se muestra cómo se puede crear una interfaz conveniente para sus programas. La implementación de las ventanas interactivas se basa en el uso de la librería de las clases MasterWindows.

Fig. 1. Opción de la aplicación de la librería MasterWindows

Fig. 1. Opción de la aplicación de la librería MasterWindows


La librería MasterWindows se compone de tres clases base:

  • clase base, la celda CCell:
    //+------------------------------------------------------------------+
    //| Clase base, la celda  CCell                                      |
    //+------------------------------------------------------------------+
    class CCell
      {
    private:
    protected:
       bool              on_event;      // bandera de procesamiento de eventos
       ENUM_OBJECT       type;          // tipo de la celda
    public:
       WinCell           Property;      // propiedades de la celda
       string            name;          // nombre de la celda
    
       // Constructor de la clase
       void              CCell();
       virtual     // Método: dibujar el objeto
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Método del procesamiento del evento OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
  • clase base, la línea CRow, se compone de las celdas de la clase CCell:
    //+------------------------------------------------------------------+
    //| Clase base, la línea  CRow                                       |
    //+------------------------------------------------------------------+
    class CRow
      {
    protected:
       bool              on_event;      // bandera de procesamiento de eventos
    public:
       string            name;          // nombre de la línea
       WinCell           Property;      // propiedades de la línea
       //+---------------------------------------------------------------+
       // Constructor de la clase
       void              CRow();
       virtual     // Método: dibujar la línea
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // Método del procesamiento del evento OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
  • la clase base, ventana CWin, se compone de las línea de la clase CRow:
    //+------------------------------------------------------------------+
    //| Clase base, la ventana  CWin                                         |
    //+------------------------------------------------------------------+
    class CWin
      {
    private:
       void              SetXY(int m_corner);// Método del cálculo de coordenadas
    protected:
       bool              on_event;  // bandera de procesamiento de eventos
    public:
       string            name;      // nombre de la ventana
       int               w_corner;   // esquina de anclaje
       int               w_xdelta;   // margen vertical
       int               w_ydelta;   // margen horizontal
       int               w_xpos;     // coordenada X del punto de anclaje
       int               w_ypos;     // coordenada Y del punto de anclaje
       int               w_bsize;    // ancho de la ventana
       int               w_hsize;    // alto de la ventana
       int               w_h_corner; // punto de anclaje del modo HIDE
       WinCell           Property;   // propiedades de la ventana
       //---
       CRowType1         STR1;       // declaración de la línea de la clase
       CRowType2         STR2;       // declaración de la línea de la clase
       CRowType3         STR3;       // declaración de la línea de la clase
       CRowType4         STR4;       // declaración de la línea de la clase
       CRowType5         STR5;       // declaración de la línea de la clase
       CRowType6         STR6;       // declaración de la línea de la clase
       //+---------------------------------------------------------------+
       // Constructor de la clase
       void              CWin();
       // Métodos de obtención de datos
       void              SetWin(string m_name,
                                int m_xdelta,
                                int m_ydelta,
                                int m_bsize,
                                int m_corner);
       virtual     // Método: dibujar la ventana del formulario
       void              Draw(int &MMint[][3],
                              string &MMstr[][3],
                              int count);
       virtual     // Método del procesamiento del evento OnEventTick
       void              OnEventTick();
       virtual     // Método del procesamiento del evento OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    

y 10 herederos.

Las plantillas y los ejemplos de los códigos donde se utiliza la librería se adjuntan. Todos los códigos fueron generados usando el constructor visual de ventanas MasterWindows for MQL5. Los programas de pruebas representan unas maquetas, es decir, no llevan la funcionalidad (aparte de dos funciones: cerrar y ocultar la ventana).


El número de las líneas en la ventana es ilimitado, y en una combinación necesaria. En la imagen se muestran las versiones base de las líneas y el encabezado de la ventana:

Fig. 2. Versiones base de las ventanas de la interfaz.

Fig. 2. Versiones base y las posibilidades de la librería

Por ejemplo, para el artículo «Pruebas de rendimiento computacional de los promedios móviles en MQL5» fue creada esta interfaz con el uso de dicha librería.

Fig. 3. Ejemplo del uso de la librería.

Fig. 3. Ejemplo del uso de la librería MasterWindows

Recomendaciones:
  • Para la mejor visualización de las ventanas de la interfaz, por favor, utilice los esquemas gráficos con el fondo negro.

Traducción del ruso realizada por MetaQuotes Ltd
Artículo original: https://www.mql5.com/ru/code/15059

Price Price

Marca de precio que se ubica a la derecha del precio cuyos parámetros se puede variar.

XMA_BBx7_Cloud_Digit XMA_BBx7_Cloud_Digit

Tres canales de Bollinger construidos a base de una media móvil en forma de una nube de color, mostrando los últimos valores en forma de marcas de precio, y con la posibilidad de redondear los niveles de Bollinger a una cantidad necesaria de dígitos.

XMA_BBx7_Cloud_Digit_HTF XMA_BBx7_Cloud_Digit_HTF

El indicador XMA_BBx7_Cloud_Digit permite cambiar el período de tiempo del indicador en los parámetros de entrada.

XMA_KLx7_Cloud XMA_KLx7_Cloud

Tres canales de Keltner construidos a base de una media móvil en forma de una nube de color, mostrando los últimos valores en forma de marcas de precio.