- OnStart
- OnInit
- OnDeinit
- OnTick
- OnCalculate
- OnTimer
- OnTrade
- OnTradeTransaction
- OnBookEvent
- OnChartEvent
- OnTester
- OnTesterInit
- OnTesterDeinit
- OnTesterPass
OnChartEvent
É chamada em EAs e indicadores quando ocorre o evento ChartEvent. A função é projetada para processar mudanças no gráfico causadas por ações do usuário ou pelo funcionamento de programas MQL5
void OnChartEvent()
|
Parâmetros
id
[in] Identificador do evento a partir da enumeração ENUM_CHART_EVENT.
lparam
[in] Parâmetro do evento de tipo long
dparam
[in] Parâmetro do evento de tipo double
sparam
[in] Parâmetro do evento de tipo string
Valor retornado
Sem valor retornado
Observação
Existem 11 tipos de eventos que podem ser processados usando a função predefinida OnChartEvent() . Para eventos personalizados, são fornecidos 65 535 identificadores no intervalo de CHARTEVENT_CUSTOM a CHARTEVENT_CUSTOM_LAST. Para gerar um evento personalizado, você deve usar a função EventChartCustom().
Breve descrição dos eventos da enumeração ENUM_CHART_EVENT:
- CHARTEVENT_KEYDOWN pressionamento do teclado quando a janela do gráfico está em foco;
- CHARTEVENT_MOUSE_MOVE deslocamento do mouse e pressionamento dos botões do mouse (se para o gráfico estiver definida a propriedade CHART_EVENT_MOUSE_MOVE=true);
- CHARTEVENT_OBJECT_CREATE criação do objeto gráfico (se para o gráfico estiver definida a propriedade CHART_EVENT_OBJECT_CREATE=true);
- CHARTEVENT_OBJECT_CHANGE alteração das propriedades do objeto através do diálogo de propriedades;
- CHARTEVENT_OBJECT_DELETE remoção do objeto gráfico (se para o gráfico estiver definida a propriedade CHART_EVENT_OBJECT_DELETE=true);
- CHARTEVENT_CLICK clique do mouse no gráfico;
- CHARTEVENT_OBJECT_CLICK clique do mouse no objeto gráfico que pertence ao gráfico;
- CHARTEVENT_OBJECT_DRAG deslocamento do objeto gráfico com o mouse;
- CHARTEVENT_OBJECT_ENDEDIT fim da edição de texto no campo inserido do objeto gráfico Edit (OBJ_EDIT);
- CHARTEVENT_CHART_CHANGE alteração do gráfico;
- CHARTEVENT_CUSTOM+n identificador do evento personalizado, onde n está no intervalo de 0 a 65 535. CHARTEVENT_CUSTOM_LAST contém o último identificador válido de evento personalizado (CHARTEVENT_CUSTOM+65535).
Todos os programas MQL5 trabalham em fluxos diferentes do fluxo principal do aplicativo. O fluxo principal do terminal é responsável pelo processamento de todas as mensagens de sistema do Windows e, como resultado dele, gera mensagens do Windows para seu próprio aplicativo. Por exemplo, o deslocamento do mouse no gráfico (evento WM_MOUSE_MOVE) gera várias mensagens de sistema para a plotagem subsequente da janela do aplicativo, bem como envia mensagens internas para EAs e para indicadores que estão sendo executados neste gráfico. Neste caso, pode acontecer que o fluxo principal do aplicativo ainda não consiga processar a mensagem de sistema WM_PAINT (e, portanto, ainda não plote a gráfico alterado), enquanto o EA ou indicador já tenha recebido o evento sobre o movimento do cursor do mouse. Assim, a propriedade do gráfico CHART_FIRST_VISIBLE_BAR será alterada somente após a plotagem do gráfico.
Para cada tipo de evento, os parâmetros de entrada da função OnChartEvent() possuem determinados valores necessários para manipular este evento. A tabela lista os eventos e valores que são transferidos através dos parâmetros.
Evento |
Valor do parâmetro id |
Valor do parâmetro lparam |
Valor do parâmetro dparam |
Valor do parâmetro sparam |
---|---|---|---|---|
Evento de teclado |
CHARTEVENT_KEYDOWN |
código de tecla pressionada |
Número de pressionamentos da tecla gerados durante o tempo em que é mantida pressionada |
Valor de string da bitmask que descreve o status dos botões do teclado |
Eventos do mouse (se para o gráfico estiver definida a propriedade CHART_EVENT_MOUSE_MOVE=true) |
CHARTEVENT_MOUSE_MOVE |
Coordenada X |
Coordenada Y |
Valor de string da bitmask que descreve o status dos botões do mouse |
Evento da roda do mouse (se para o gráfico estiver definida a propriedade CHART_EVENT_MOUSE_WHEEL=true) |
CHARTEVENT_MOUSE_WHEEL |
Sinalizadores de estados das teclas e dos botões do mouse, coordenadas X e Y do cursor. A descrição é dada no exemplo |
Valor Delta de rolagem da roda do mouse |
|
Evento de criação do objeto gráfico (se para o gráfico for definida a propriedade CHART_EVENT_OBJECT_CREATE=true) |
CHARTEVENT_OBJECT_CREATE |
|
|
Nome do objeto gráfico criado |
Evento de alteração das propriedades do objeto através do diálogo de propriedades |
CHARTEVENT_OBJECT_CHANGE |
|
|
Nome do objeto gráfico alterado |
Evento de remoção do objeto gráfico (se para o gráfico estiver definida a propriedade CHART_EVENT_OBJECT_DELETE=true) |
CHARTEVENT_OBJECT_DELETE |
|
|
Nome do objeto gráfico excluído |
Evento de clique no gráfico |
CHARTEVENT_CLICK |
Coordenada X |
Coordenada Y |
|
Evento de clique do mouse no objeto gráfico |
CHARTEVENT_OBJECT_CLICK |
Coordenada X |
Coordenada Y |
Nome do objeto gráfico no qual ocorreu o evento |
Evento de movimento do objeto gráfico com o mouse |
CHARTEVENT_OBJECT_DRAG |
|
|
Nome do objeto gráfico movido |
Evento de fim da edição de texto no campo inserido do objeto gráfico "Caixa de edição" |
CHARTEVENT_OBJECT_ENDEDIT |
|
|
Nome do objeto gráfico "Campo de entrada" no qual foi concluída a edição de texto |
Evento de redimensionamento do gráfico ou alteração das propriedades do gráfico através do diálogo de propriedades |
CHARTEVENT_CHART_CHANGE |
|
|
|
Evento personalizado com número N |
CHARTEVENT_CUSTOM+N |
Valor definido pela função EventChartCustom() |
Valor definido pela função EventChartCustom() |
Valor definido pela função EventChartCustom() |
Exemplo de um ouvinte dos eventos do gráfico:
//+------------------------------------------------------------------+
|
Veja também
EventChartCustom, Tipos de eventos do gráfico, Funções de processamento de eventos, Execução do programa, Evento do terminal do cliente