Características da linguagem mql5, subtilezas e técnicas - página 100
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
Um tal deslize pode levar dezenas de milissegundos para ser concluído.
Um tal deslize pode durar dezenas de milissegundos.
O que é que isso significa?
Lembro-me que há muito tempo atrás o Sleep() era mencionado em processos paralelos
O que é que isso significa?
Exactamente o que ele disse.
Um tal deslize pode durar dezenas de milissegundos.
Não dezenas, mas 15,625 milissegundos.
Eu tenho usado a construção há muito tempo:
Não dezenas, mas 15,625 milissegundos.
Eu tenho usado o design há muito tempo:
Resultado
Resultado
Calcule o tempo médio.
Acumule SleepTime e depois divida-o pelo número de iterações após o fim do laço.
Caso contrário, o resultado que acabou de apresentar parece assustador para mentes imaturas. Mostrar também o tempo mínimo ao mesmo tempo.
PS. A função Sleep( ) no MQL5 não é um redirecionamento para a função win api ::Sleep(). Ou melhor, se o valor for inferior a 100, é um redirecionamento. Mas acima de 100 é um laço com api de vitória escorrega dentro dele para que possa ser interrompido pelo IsStopped.
Há mais um ponto subtil. Se milissegundos <=0, nós prependemos 1. Ou seja, nós nunca chamamos ::Sleep(0).
O PPS importa a função Sleep do kernel32.dll e faz o mesmo experimento com ela
Calcule o tempo médio.
Acumule SleepTime e depois divida pelo número de iterações após o ciclo estar completo.
Não me referia ao tempo médio, mas a uma possibilidade de espigões. Eu os encontrei quando esperava que o histórico comercial estivesse sincronizado com o resultado do OrderSend. Eu estava esperando usando o Sleep(0). Acabou por ser impossível.
PS. A função Sleep( ) no MQL5 não é um redirecionamento para a função win api ::Sleep(). Bem, se o valor for inferior a 100, é um redireccionamento. Mas acima de 100 é um laço com api de vitória escorrega dentro dele para que possa ser interrompido pelo IsStopped.
Há mais um ponto subtil. Se milissegundos <=0, nós prependemos 1. Ou seja, nós nunca chamamos ::Sleep(0).
Obrigado pelos detalhes. Eu não sabia que o Sleep(5000) pode ser terminado através do IsStopped().
Não se tratava do tempo médio, mas da possibilidade de espigões. Eu os encontrei enquanto esperava pela sincronização do histórico de negociação com o resultado do OrderSend. Eu estava esperando usando o Sleep(0). Acontece que isso não pode ser feito dessa maneira.
fxsaber:
Obrigado pelos detalhes. Não sabia que o Sleep(5000) poderia ser terminado via IsStopped().
https://www.mql5.com/ru/docs/common/sleep
A função tem uma verificação integrada do estado da bandeira de paragem da EA a cada 0,1 segundos.
Portanto, o sistema operacional Windows nunca foi um sistema em tempo real.
Sinceramente, eu nem sei o que significa ou onde na MQL5 você pode encontrá-lo.