Discussão do artigo "Guia Prático MQL5: Processamento de Eventos Típicos do Gráfico"

 

Novo artigo Guia Prático MQL5: Processamento de Eventos Típicos do Gráfico foi publicado:

Em meu artigo eu gostaria de descrever as capacidades e o aspecto prático de usar o OnChartEvent() com eventos típicos (padrão) pré-definidos pelos desenvolvedores em MQL5. Os artigos em MQL5 e a Base de Código já contêm exemplos de como usar esse manipulador.

No entanto, meu objetivo é analisar este instrumento no contexto da programação orientada a eventos (EOP). Eu acredito que esse manipulador pode ser utilizado com sucesso tanto para sistemas de negociação totalmente automatizados quanto para os semi-automáticos.


1. Evento "ChartEvent"

Bem, para começar, vamos esclarecer o que representa um evento como esse.

De acordo com a documentação, o evento ChartEvent pode aparecer quando se trabalha com um gráfico, em especial, nos seguintes casos:

  • pressionar uma tecla do teclado quando uma janela do gráfico está em foco.
  • criar um objeto gráfico.
  • remover um objeto gráfico.
  • clicar em um objeto gráfico.
  • arrastar um objeto gráfico com um mouse.
  • terminar de editar um texto do campo de texto de um objeto gráfico LabelEdit.

Assim, este evento traz interatividade e permite interagir com um gráfico. Além disso, essa interação pode ser resultado de uma negociação manual, bem como de algumas operações algorítmicas (negociação automatizada).

Os desenvolvedores em MQL5 classificam o evento ChartEvent por tipos especificados na enumeração ENUM_CHART_EVENT.

É importante notar que esta lista tem uma série de eventos definidos pelo usuário, que funcionam como uma reserva oculta para servir ao programador. Os desenvolvedores do MQL5 fornecem 65.535 IDs de eventos personalizados.

Para trabalhar com eventos personalizados, há uma função geradora especial chamada EventChartCustom() que está disponível para suprir as necessidades do programador. No entanto, este artigo não leva em conta os eventos personalizados.


Autor: Dennis Kirichenko

Razão: