Como funcionam os buffers no MetaTrader 5

Eles armazenam e organizam os dados calculados, que serão exibidos no gráfico

por

Joabe Barbosa

26 de dezembro de 2024

4 min

Os buffers no MetaTrader 5 são uma parte essencial do desenvolvimento de indicadores técnicos e desempenham um papel fundamental para armazenar e exibir os dados calculados em um gráfico. Este guia detalhado explica como os buffers funcionam e como utilizá-los corretamente.

1. O que são buffers no MetaTrader 5?

Buffers são arrays especiais usados para armazenar valores calculados de indicadores técnicos. Eles permitem que o MetaTrader 5 desenhe linhas, histogramas, ou outros elementos visuais diretamente no gráfico.

Cada buffer corresponde a uma série de dados, como:

  • Valores de preço (abertura, fechamento, máxima, mínima).
  • Resultados de cálculos personalizados.
  • Linhas ou histogramas de indicadores.

LEIA MAIS: Como Programar Robôs no MetaTrader 5

2. Configuração Básica de Buffers

Declaração de Buffers

Buffers são declarados como arrays no código MQL5 e devem ser vinculados ao sistema gráfico.

mql5

double Buffer1[]; // Declaração de um buffer
double Buffer2[]; // Declaração de outro buffer

Ligação ao Gráfico

A função SetIndexBuffer é usada para conectar os buffers ao sistema gráfico do MetaTrader.

mql5

SetIndexBuffer(0, Buffer1); // Liga o primeiro buffer ao índice 0
SetIndexBuffer(1, Buffer2); // Liga o segundo buffer ao índice 1

Cada índice está associado a um buffer e, consequentemente, a um estilo de linha ou representação gráfica.

3. Definindo Propriedades do Buffer

Você pode configurar como o buffer será exibido no gráfico utilizando a função SetIndexStyle.

mql5

SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, clrBlue); // Configura linha azul sólida
SetIndexStyle(1, DRAW_HISTOGRAM, STYLE_SOLID, 2, clrRed); // Configura histograma vermelho

Os estilos disponíveis incluem:

  • DRAW_LINE: Linhas contínuas.
  • DRAW_HISTOGRAM: Histogramas.
  • DRAW_ARROW: Seta nos gráficos.
  • Outros (consulte a documentação oficial).

4. Alimentando os Buffers com Dados

Os valores dos buffers devem ser preenchidos durante a execução da função OnCalculate.

Exemplo:

Vamos criar um indicador que calcula a média móvel simples (SMA).

mql5

#property indicator_separate_window
#property indicator_buffers 1 // Número de buffers
#property indicator_color1 clrBlue // Cor do buffer 1

double Buffer1[]; // Declaração do buffer

int OnInit()
{
   SetIndexBuffer(0, Buffer1); // Conecta Buffer1 ao índice 0
   SetIndexStyle(0, DRAW_LINE, STYLE_SOLID, 2, clrBlue); // Configura estilo
   return(INIT_SUCCEEDED);
}

int OnCalculate(const int rates_total, // Total de barras no gráfico
                const int prev_calculated,// Barras calculadas anteriormente
                const datetime &time[], // Tempo das barras
                const double &open[], // Preço de abertura
                const double &high[], // Preço máximo
                const double &low[], // Preço mínimo
                const double &close[], // Preço de fechamento
                const long &tick_volume[],// Volume de ticks
                const long &volume[], // Volume real
                const int &spread[]) // Spread
{
   int start = prev_calculated > 0 ? prev_calculated – 1 : 0;

   for (int i = start; i < rates_total; i++){
        Buffer1[i] = iMA(NULL, 0, 14, 0, MODE_SMA, PRICE_CLOSE, i); // Calcula SMA
   }
   return(rates_total);
}

5. Regras Importantes

  • Tamanho dos Buffers: O tamanho dos buffers é automaticamente ajustado pelo terminal. Não é necessário redimensioná-los manualmente.
  • Valores Inválidos: Para evitar exibições erradas no gráfico, atribua o valor EMPTY_VALUE aos índices do buffer que não possuem dados válidos.

mql5

Buffer1[i] = EMPTY_VALUE; // Ignorar este índice

  • Número de Buffers: Declare o número de buffers usados com a diretiva #property indicator_buffers.

6. Teste no Gráfico

  • Salve o código do indicador em MQL5/Indicators.
  • Compile o código no MetaEditor.
  • Aplique o indicador no gráfico.
  • Observe como os valores do buffer são desenhados em tempo real.

7. Aplicações Práticas

Os buffers podem ser usados para criar:

  • Linhas de suporte e resistência.
  • Histogramas de volume.
  • Indicadores complexos com várias séries de dados.

LEIA MAIS: Novo estudo da FGV mostra que 5% dos day traders experientes ganharam mais de R$ 10 mil por mês

Buffers são uma ferramenta poderosa para programar indicadores personalizados no MetaTrader 5. Com a prática, você pode utilizá-los para criar visualizações detalhadas e precisas que ajudarão na análise técnica e no desenvolvimento de estratégias.

Para você: Os principais insights para começar bem a semana!

*Ao clicar em “Inscreva-se” você estará concordando com a Política de Privacidade.

Joabe Barbosa

Joabe Barbosa

Mestre em Economia, Graduando em Ciência da Computação

ÚLTIMAS

Weekly QUANTCODE

A newsletter com insights do mundo dos investimentos, direto no seu e-mail

*Ao clicar em “Inscreva-se” você estará concordando com a Política de Privacidade.