Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Bibliotecas

A biblioteca MasterWindows - biblioteca para MetaTrader 5

Visualizações:
1281
Avaliação:
(34)
Publicado:
2016.12.27 11:18
\MQL5\Include\ \MQL5\Experts\
Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Em "MQL5 para "Novatos": Como Desenhar e Construir Classes de Objetos" temos a descrição de como você pode criar uma interface amigável para seus programas. A implementação de janelas interativas baseia-se no uso da biblioteca das classes MasterWindows.

Fig. 1. Exemplo do uso da biblioteca MasterWindows

Fig. 1. Exemplo do uso da biblioteca MasterWindows

A biblioteca do MasterWindows consiste em três classes base:

  • A classe base CCell:
    //+------------------------------------------------------------------+
    //| A base CELL da classe CCell                                      |
    //+------------------------------------------------------------------+
    class CCell
      {
    private:
    protected:
       bool              on_event;      // Flag do manipulador de eventos
       ENUM_OBJECT       type;          // Tipo de célula
    public:
       WinCell           Property;      // Propriedades da célula
       string            name;          // Nome da célula
       //+---------------------------------------------------------------+
       // Construtor de classe
       void              CCell();
       virtual     // Método: desenhar um objeto
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // O método do evento manipulado OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    
  • A classe base CRow, consiste em células da classe CCell:
    //+------------------------------------------------------------------+
    //| A base ROW da classe CRow                                        |
    //+------------------------------------------------------------------+
    class CRow
      {
    protected:
       bool              on_event;      // Flag do manipulador de eventos
    public:
       string            name;          // Nome da linha
       WinCell           Property;      // Propriedades da linha
       //+---------------------------------------------------------------+
       // Construtor de classe
       void              CRow();
       virtual     // Método: desenhe uma linha
       void              Draw(string m_name,
                              int m_xdelta,
                              int m_ydelta,
                              int m_bsize);
       virtual     // O método do evento manipulado OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    
  • A classe base CWin, consiste em linhas da classe CRow:
    //+------------------------------------------------------------------+
    //| A base Window da classe CWin                                     |
    //+------------------------------------------------------------------+
    class CWin
      {
    private:
       void              SetXY(int m_corner);// O método para calcular coordenadas
    protected:
       bool              on_event;   // Flag do manipulador de eventos
    public:
       string            name;       // Nome da janela
       int               w_corner;   // canto inferior
       int               w_xdelta;   // Margem vertical
       int               w_ydelta;   // Margem horizontal
       int               w_xpos;     // A coordenada X do ponto inferior
       int               w_ypos;     // A coordenada Y no ponto inferior
       int               w_bsize;    // A largura da janela
       int               w_hsize;    // A altura da janela
       int               w_h_corner; // O canto inferior do modo HIDE
       WinCell           Property;   // Propriedades da janela
       //---
       CRowType1         STR1;       // Declarando a classe "row"
       CRowType2         STR2;       // Declarando a classe "row"
       CRowType3         STR3;       // Declarando a classe "row"
       CRowType4         STR4;       // Declarando a classe "row"
       CRowType5         STR5;       // Declarando a classe "row"
       CRowType6         STR6;       // Declarando a classe "row"
       //+---------------------------------------------------------------+
       // Construtor de classe
       void              CWin();
       // Método de obtenção de dados
       void              SetWin(string m_name,
                                int m_xdelta,
                                int m_ydelta,
                                int m_bsize,
                                int m_corner);
       virtual     // Método: desenhar uma janela
       void              Draw(int &MMint[][3],
                              string &MMstr[][3],
                              int count);
       virtual     // O método de processamento do evento OnEventTick
       void              OnEventTick();
       virtual     // O método do evento manipulado OnChartEvent
       void              OnEvent(const int id,
                                 const long &lparam,
                                 const double &dparam,
                                 const string &sparam);
      };
    
    

E dez classes derivadas.

O anexo contém modelos e exemplos de código onde a biblioteca MasterWindows é usada. Todos os códigos foram gerados usando o construtor da janela visual MasterWindows para MQL5. Os programas de teste são modelos, ou seja, eles não possuem funcionalidade (exceto para duas funções: fechar e ocultar a janela).

Você pode usar qualquer número e combinação de linhas em uma janela. A figura mostra as versões básicas de linhas e o cabeçalho da janela:

Fig. 2. Versões básicas da interfaces de janelas.

Fig. 2. Opções e possibilidades básicas da biblioteca

Por exemplo, para o artigo "Testando a Performance do Cálculo das Médias Móveis em MQL5", criamos a seguinte interface usando a biblioteca proposta.

Fig. 3. Exemplo de uso da biblioteca.

Fig. 3. Um exemplo de utilização da biblioteca MasterWindows

Recomendações:

  • Para uma melhor visualização das janelas de interface criadas, use esquemas gráficos com um fundo preto.

Traduzido do russo pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/ru/code/15059

Preço Preço

Uma etiqueta de preço é adicionada à direita do preço com parâmetros ajustáveis.

XMA_BBx7_Cloud_Digit XMA_BBx7_Cloud_Digit

Três Bandas Bollinger são canais baseados em uma média móvel, desenhadas como uma nuvem colorida, com a exibição dos últimos valores como etiquetas de preços e a possibilidade de arredondar os níveis de Bollinger até um número necessário de dígitos.

XMA_BBx7_Cloud_Digit_HTF XMA_BBx7_Cloud_Digit_HTF

O indicador XMA_BBx7_Cloud_Digit vem com a opção de seleção do timeframe disponível nos parâmetros de entrada.

XMA_KLx7_Cloud XMA_KLx7_Cloud

Three Keltner são canais baseados em uma média móvel, desenhados como uma nuvem colorida, com a exibição dos últimos valores em etiquetas de preços.