![MQL5 - Linguagem para estratégias de negociação inseridas no terminal do cliente MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
Você está perdendo oportunidades de negociação:
- Aplicativos de negociação gratuitos
- 8 000+ sinais para cópia
- Notícias econômicas para análise dos mercados financeiros
Registro
Login
Você concorda com a política do site e com os termos de uso
Se você não tem uma conta, por favor registre-se
A impressão e o alerta não são assíncronos?
Eu queria tornar estas funções assíncronas. Tentei uma implementação através do ChartEvent - funciona. Mas é muito lento. Eu tinha desenterrado isto.
Desistiu de uma função tão cara em lugares críticos.
Sobre o tema Alerta.
Até agora, podemos dizer com certeza que o Alerta em lugares críticos não é possível. A assíncronia é necessária.
Reproduziu os freios SymbolInfoTick. E sem teste de estresse. A necessidade prática o faz escrever dessa maneira.
Siga estas instruções para uma rápida repetição.
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
Ordem SíncronaEnviar relatórios de execução bem sucedida mais rapidamente do que ping para o servidor comercial
fxsaber, 2020.09.30 20:36
Em uma máquina rápida, o resultado com 30 caracteres em Market Watch.
Espero não ser o único que está reproduzindo. É claro, o atraso não é tão grande quanto mostrado anteriormente. Mas será possível chegar ao fundo das causas muito mais rapidamente aqui.
A ZZY TimeCurrentMsc não é inserida na MQL5 por alguma razão, apesar de repetidas solicitações.
Desistiu de uma função tão cara em lugares críticos.
Este é um inconveniente significativo. Porque o modelo de evento MQL é incompleto - não há evento zero, ou seja, o evento que é chamado quando não há outros eventos na fila. Ele pode ser emulado através de um evento personalizado. Mas com este inconveniente em mente, o modelo baseado em eventos não tem sentido para aqueles que estão interessados em velocidade.
EventoChartCustom é caro.
Que tal semChartFirst()?
Que tal sem ChartFirst()?
É mais caro enviar para a ficha de outra pessoa do que para a sua própria ficha.
Esta é uma falha significativa. Porque o modelo de evento MQL é incompleto - não há evento nulo, ou seja, um evento que é chamado quando não há outros eventos na fila. Ele pode ser emulado através de um evento personalizado. Mas com este inconveniente em mente, o modelo baseado em eventos não faz sentido para aqueles que estão interessados em velocidade
O OnTimer permite fazer chamadas de fundo com freqüência de até 16 ms.
Correto, ou seja, perdemos pelo menos16ms para nada (podemos voltar no mínimo).E não poderíamos perdê-los se houvesse um evento zero grátis ou eventos personalizados grátis. E agora o modelo do evento no caso abaixo funciona de forma limitada:
Fórum sobre comércio, sistemas automatizados de comércio e testes de estratégia comercial
MT5 e velocidade em ação
fxsaber, 2020.10.06 01:27
Você está completamente fora do circuito. Digamos que você precisa abrir duas posições na OnTick. O primeiro OrderSend é de alguns milissegundos. Depois disso, você tem que fazer um instantâneo. E então o segundo OrderSend deve ser chamado.
Somente o OnTick pode ser executado por centenas de milissegundos. E você sugere fotografar um pouco do OnTimer.
Sobre o tema Alerta.
Por enquanto, é seguro dizer que o Alerta não pode ser usado em lugares críticos. A assíncronia é necessária.
Alerta com uma impressão, você pode tentar substituí-la por uma escrita rápida em algum lugar.
Vem-me à memória um quadrado nativo
Eu não estava sugerindo um instantâneo, estava respondendo uma pergunta direta sobre o temporizador de milissegundos.
Muitas vezes uso o fato de que o Testador tem exatamente um timer de um milissegundo, não um segundo timer. Comprovação.
Resultado.
Há exatamente 29 ms entre o tempo de abertura e fechamento da posição.