Como funciona a atualização de Ticks() e a do gráfico?

Para adicionar comentários, por favor Faça o login ou registrar
André Barbisan
107
André Barbisan  

Olá pessoal,

Tenho alguns robôs (EAs) no MT5 que "dependem" bastante da atualização recente de preços do ativo.

Uso ao função OnTick() para receber estas atualizações de preço. Mas as vezes noto que algumas atualizações não são recebidas neste evento, porém o gráfico atualiza uma máxima ou mínima de um candle.

Alguém sabe explicar como funciona estas atualizações? São independentes? Como são gerenciados (recebidos) os eventos de atualização dos candles "em real-time"?

Obrigado!

Rogerio Giannetti Torres
3161
Rogerio Giannetti Torres  
Olá André Barbisan:


Leia o parágrafo sobre o evento NewTick.

Documentação sobre MQL5: Programas MQL5 / Eventos do Terminal Cliente
Documentação sobre MQL5: Programas MQL5 / Eventos do Terminal Cliente
  • www.mql5.com
Imediatamente após o terminal cliente carregar um programa (uma Expert Advisor ou um indicador customizado) e começar o processo de inicialização de variáveis globais, o evento Init será enviado, e será processado pelo handler de evento OnInit(), caso exista. Este evento também é gerado após um instrumento financeiro e / ou prazo gráfico ser...
Daniel Paiva Ribeiro
322
Daniel Paiva Ribeiro  
André Barbisan:


No texto no comentário anterior está escrito... "No caso de uma nova cotação ser recebida enquanto a função OnTick estiver processando a cotação anterior, a nova cotação será ignorada pelo Expert Advisor, porque o evento correspondente não será enfileirado."... acredito que seja isso.

André Barbisan
107
André Barbisan  
Rogerio Giannetti Torres:

Leia o parágrafo sobre o evento NewTick.

Obrigado Rogério!

Realmente o evento NewTick só processa uma cotação por vez e "descarta" as que chegam neste interim. Ou seja, claramente "perde" cotações.

Ai fica a pergunta: qual a outra forma que seja eficiente de não perder cotações? Me refiro principalmente se esta cotação for mínima ou máximo do candle atual. Usando a função CopyRates()?

Ou seja, o que é mais rápido: a atualização do gráfico (que suponho que possa pegar esta informação via CopyRates()) ou a de algum outro evento?

Obrigado!

André Barbisan
107
André Barbisan  
Daniel Paiva Ribeiro:

No texto no comentário anterior está escrito... "No caso de uma nova cotação ser recebida enquanto a função OnTick estiver processando a cotação anterior, a nova cotação será ignorada pelo Expert Advisor, porque o evento correspondente não será enfileirado."... acredito que seja isso.

Obrigado Daniel!

Veja minha resposta acima para o Rogério. O problema é esse mesmo e conhecido.

A questão é como mitigá-lo? Alguma sugestão?

Abraços.

Francisco Gomes Da Silva
124
Francisco Gomes Da Silva  
André Barbisan:

Obrigado Daniel!

Veja minha resposta acima para o Rogério. O problema é esse mesmo e conhecido.

A questão é como mitigá-lo? Alguma sugestão?

Abraços.

olá, sugiro a leitura desse artigo https://www.mql5.com/pt/articles/197

Cálculos paralelos no MetaTrader 5
Cálculos paralelos no MetaTrader 5
  • www.mql5.com
Quase todos os PCs modernos são capazes de realizar múltiplas tarefas simultaneamente - devido à presença de diversos núcleos de processador. Seu número está crescendo a cada ano - 2, 3, 4, 6 núcleos... A Intel demonstrou recentemente um processador experimental funcional de 80 núcleos (sim, não é um erro de digitação - infelizmente, este...
André Barbisan
107
André Barbisan  
Francisco Gomes Da Silva:

olá, sugiro a leitura desse artigo https://www.mql5.com/pt/articles/197

Obrigado!

Para adicionar comentários, por favor Faça o login ou registrar