![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
Ter uma série de eventos OnTimer de menos de um segundo.
E ser capaz de medir alguns processos em milissegundos.
Não compreendi a ideia com "...(int delay=0)" de todo, foi por isso que a escrevi como uma treta.
Como compreenderam, neste caso o meu lema é: "Abaixo todos os avarentos se conseguirem passar sem eles". A única coisa a fazer é permitir o atraso de geração do primeiro evento Temporizador a nível de terminal pelo tempo escolhido por um utilizador. Não estou a menosprezar a importância do vosso código, especialmente porque simplesmente ainda não o vi.
Como prevê organizar o primeiro atraso do evento a partir do temporizador?
O mesmo segundo temporizador será iniciado no terminal e os eventos do temporizador serão gerados para o Expert Advisor num determinado momento. Tudo é exactamente o mesmo que eu já sugeri.
Como prevê organizar o primeiro atraso do evento a partir do temporizador?
O mesmo segundo temporizador seria iniciado no terminal e num determinado momento os eventos do temporizador começariam a ser gerados para o Expert Advisor. Tudo é absolutamente o mesmo que eu já sugeri.
É assim que eu imagino. Tendo encontrado a função EventSetTimer(14400, 7029) no OnInit() , o terminal activará o temporizador interno e gerará o primeiro evento do temporizador exactamente aos 7029 segundos após o início do programa (digamos, aos 12-00), como o utilizador desejar. Outros eventos temporais serão gerados a intervalos de uma vez a cada quatro horas. Um evento por 4 horas, não 14400 eventos, onde 13399 eventos temporais não têm significado para o utilizador.
Esta abordagem, na minha opinião, é radicalmente diferente daquela que sugeriu. Porque na minha variante o segundo temporizador interno (contando 7029 segundos) só funcionará por um tempo limitado após a inicialização do Expert Advisor, e parará o seu trabalho sem entupir a fila de eventos. A sua variante proporciona uma geração contínua de cada segundo evento, do primeiro ao último minuto de trabalho do perito, dos quais apenas a cada 14400 evento terá pelo menos algum peso para um utilizador.Ter uma série de eventos OnTimer de menos de um segundo.
E ser capaz de medir alguns processos em milissegundos.
Na realidade, o parâmetro actual"int segundos// número de segundos" define a periodicidade dos eventos do temporizador, não alguns "atrasos para o OnTimer". Aprender a matemática. Em relação aos milissegundos, pelo menos leia a primeira página do fio para começar.
Não percebi a ideia com "...(int delay=0)" de todo, foi por isso que escrevi que é um disparate.
Estou a ver. É um pouco do tipo "só dizer antes de dar por isso". Tudo bem, isso acontece :) Todos nós queremos por vezes partilhar a nossa visão da beleza com os outros.
É assim que eu o vejo. Tendo encontrado a função EventSetTimer(14400, 7029) no OnInit() , o terminal activará o segundo temporizador interno e gerará o primeiro evento Temporizador exactamente 7029 segundos após o início do programa (digamos, às 12-00), como o utilizador desejar. Outros eventos temporais serão gerados a intervalos de uma vez a cada quatro horas. Um evento por 4 horas, não 14400 eventos, onde 13399 eventos temporais não têm significado para o utilizador.
Esta abordagem, penso eu, é radicalmente diferente da que sugeriu. Porque na minha variante o temporizador de segundos interno (contando 7029 segundos) só funcionará por um tempo limitado após a inicialização da EA, e deixará de funcionar, sem entupir a fila de eventos. A sua variante proporciona uma geração contínua de cada segundo evento, do primeiro ao último minuto de trabalho do perito, dos quais apenas a cada 14400 evento terá pelo menos algum peso para um utilizador.Ok
Em função OnInit start timer EventSetTimer(7029);
Na função OnTimer na primeira chegada, desactivar o temporizador EventKillTimer( ) anterior e iniciar um novo EventSetTimer(1440) temporizador;
Na função OnTimer na primeira chegada, desactivar o temporizador EventKillTimer() anterior e iniciar um novo EventSetTimer(1440) temporizador;
Ok
Em OnInit function start timer EventSetTimer(7029);
Na função OnTimer em primeiro lugar, desactivar o temporizador anterior EventKillTimer() e iniciar um novo EventSetTimer(1440);
Irá funcionar correctamente? Alguém disse não há muito tempo atrás que a função EventSetTimer é essencialmente destinada a ser chamada uma vez do init.
Ok
Em OnInit function start timer EventSetTimer(7029);
Na função OnTimer em primeiro lugar, desactivar o temporizador anterior EventKillTimer() e iniciar o novo EventSetTimer(1440);
É assim que o tenho feito desde os tempos antigos. No entanto, no testador, esta abordagem não funcionou durante algum tempo. Comutado para balcões no testador.
Mas é tudo lírico. Os milissegundos são muito desejáveis. Associo-me aos desejos.
Agora preciso de uma resolução de 100 ms de tempo, mas tenho um tal impulso agora e não sei do que vou precisar amanhã. Não gostaria de ter um limite de bits tão elevado, 1000 ms é demasiado espesso. Milissegundos é o padrão. Se alguém tolamente transbordar a fila - é a sua tragédia (há sempre muitas formas muito acessíveis de fazer cair o programa também com o terminal).
Já não é possível ir a milissegundos.
Quantos EAs já escritos irão começar a gerar 1000 vezes mais eventos temporais do que o autor pretendia?